微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第77节:窗口里通过移动光标设置参数的液晶屏菜单程序

第77节:窗口里通过移动光标设置参数的液晶屏菜单程序

时间:11-22 来源:互联网 点击:

  1. 序也是这样写的
  2. for(j=0;j
  3. {
  4. WriteCommand(y+j+0x80); //垂直地址
  5. WriteCommand(x+0x80); //水平地址
  6. for(i=0;i
  7. {
  8. ucTemp=ucArray[j*x_amount+i+uiOffSetAddr]; //uiOffSetAddr是字模数组的偏移地址
  9. if(ucFbFlag==1)//反白显示
  10. {
  11. ucTemp=~ucTemp;
  12. }
  13. LCDWriteData(ucTemp);
  14. // delay_short(30000);//把上一节这个延时函数去掉,加快刷屏速度
  15. }
  16. }
  17. WriteCommand(0x36); //开显示缓冲指令
  18. }
  19. void SendByteToLcd(unsigned char ucData)//发送一个字节数据到液晶模块
  20. {
  21. unsigned char i;
  22. for ( i = 0; i < 8; i++ )
  23. {
  24. if ( (ucData < i) & 0x80 )
  25. {
  26. LCDSID_dr = 1;
  27. }
  28. else
  29. {
  30. LCDSID_dr = 0;
  31. }
  32. LCDCLK_dr = 0;
  33. LCDCLK_dr = 1;
  34. }
  35. }
  36. void SPIWrite(unsigned char ucWData, unsigned char ucWRS) //模拟SPI发送一个字节的命令或者数据给液晶模块的底层驱动
  37. {
  38. SendByteToLcd( 0xf8 + (ucWRS < 1) );
  39. SendByteToLcd( ucWData & 0xf0 );
  40. SendByteToLcd( (ucWData < 4) & 0xf0);
  41. }
  42. void WriteCommand(unsigned char ucCommand) //发送一个字节的命令给液晶模块
  43. {
  44. LCDCS_dr = 0;
  45. LCDCS_dr = 1;
  46. SPIWrite(ucCommand, 0);
  47. delay_short(90);
  48. }
  49. void LCDWriteData(unsigned char ucData)//发送一个字节的数据给液晶模块
  50. {
  51. LCDCS_dr = 0;
  52. LCDCS_dr = 1;
  53. SPIWrite(ucData, 1);
  54. }
  55. void LCDInit(void) //初始化函数内部包括液晶模块的复位
  56. {
  57. LCDRST_dr = 1;//复位
  58. LCDRST_dr = 0;
  59. LCDRST_dr = 1;
  60. }
  61. void delay_short(unsigned int uiDelayShort) //延时函数
  62. {
  63. unsigned int i;
  64. for(i=0;i
  65. {
  66. ;
  67. }
  68. }
  69. void delay_long(unsigned int uiDelayLong)
  70. {
  71. unsigned int i;
  72. unsigned int j;
  73. for(i=0;i
  74. {
  75. for(j=0;j<500;j++)//内嵌循环的空指令数量
  76. {
  77. ; //一个分号相当于执行一条空语句
  78. }
  79. }
  80. }


总结陈词:
这一节讲了在一个窗口里设置不同的参数,如果有几个窗口的情况下,该如何编程?欲知详情,请听下回分解-----在多个窗口里通过移动光标来设置不同参数的液晶屏菜单程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top