Guest User

Untitled

a guest
Feb 19th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1.  
  2. #define DATAOUT 11//MOSI
  3. #define DATAIN 12//MISO
  4. #define SPICLOCK 13//sck
  5. #define SLAVESELECT 10//ss
  6. #define REGISTERSET 9
  7. // opcodes
  8.  
  9. #define CLR 1
  10. #define HOME 2
  11. #define ON 0x0F
  12. #define FUN_INIT 57
  13. #define BIAS_SET 28
  14. #define POWER_CTL 82
  15. #define FOLLOWER_CTL 105
  16. #define CONTRAST_SET 116
  17. #define ENTRY_MODE_SET 6
  18.  
  19. byte clr;
  20.  
  21. char spi_transfer(volatile char data)
  22. {
  23. SPDR = data; // Start the transmission
  24. while (!(SPSR & (1<<SPIF))) // Wait for the end of the transmission
  25. {
  26. };
  27. return SPDR; // return the received byte
  28. }
  29.  
  30. void lcd_print(char *data) {
  31. int i=0;
  32. while(data[i]!=0) {
  33. digitalWrite(REGISTERSET, HIGH);
  34. spi_transfer(data[i]);
  35. digitalWrite(REGISTERSET, LOW);
  36. delay(1);
  37. i++;
  38. }
  39. }
  40.  
  41. void setup(void) {
  42. pinMode(DATAOUT, OUTPUT);
  43. pinMode(DATAIN, INPUT);
  44. pinMode(SPICLOCK,OUTPUT);
  45. pinMode(SLAVESELECT,OUTPUT);
  46. pinMode(REGISTERSET,OUTPUT);
  47. digitalWrite(SLAVESELECT,HIGH);
  48. SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);
  49. clr=SPSR;
  50. clr=SPDR;
  51. delay(10);
  52. digitalWrite(SLAVESELECT,LOW);
  53.  
  54. spi_transfer(FUN_INIT); //function set
  55. delay(30);
  56. spi_transfer(BIAS_SET);
  57. delay(30);
  58. spi_transfer(POWER_CTL);
  59. delay(30);
  60. spi_transfer(FOLLOWER_CTL);
  61. delay(30);
  62. spi_transfer(CONTRAST_SET);
  63. delay(30);
  64. spi_transfer(ON); //write enable
  65. delay(30);
  66. spi_transfer(CLR); //write enable
  67. delay(30);
  68. spi_transfer(ENTRY_MODE_SET);
  69. delay(30);
  70.  
  71. lcd_print("I rawk like hell");
  72.  
  73.  
  74. }
  75.  
  76. void loop() {
  77. delay(500);
  78. }
Add Comment
Please, Sign In to add comment