标题: 单片机字符型液晶显示姓名与学号实验 [打印本页]

作者: Luyouyang    时间: 2018-1-6 19:38
标题: 单片机字符型液晶显示姓名与学号实验
应用keil和PROTEUS软件仿真字符型液晶模块的控制方法,能够显示相应的字符;
并利用硬件电路完成上述功能。

1.docx

909.89 KB, 下载次数: 15, 下载积分: 黑币 -5

里面有C程序


作者: admin    时间: 2018-1-8 01:58
字符型液晶显示实验
应用keil和PROTEUS软件仿真字符型液晶模块的控制方法,能够显示相应的字符;利用硬件电路完成上述功能。
源程序清单:
  1. #include<reg51.h>

  2. #include<intrins.h>

  3. #define uchar unsigned char

  4. #define uint unsigned int



  5. sbit rs=P2^7;

  6. sbit rw=P2^6;

  7. sbit  e=P2^5;



  8. uchar table1[]={"姓名:黄子晗"};

  9. uchar table2[]={"学号:2154126"};



  10. void write_12864com(uchar com);

  11. void write_12864dat(uchar dat);

  12. void initinal(void);

  13. void display (void);



  14. void delay_50us(uint t)

  15. {   uchar j;

  16.     for(;t>0;t--)

  17.                  for(j=19;j>0;j--);

  18. }



  19. void delay_50ms(uint t)

  20. {   uint j;

  21.     for(;t>0;t--)

  22.                  for(j=6245;j>0;j--);

  23. }



  24. void main(void)

  25. {   initinal();

  26.     while(1)

  27.               {   display();

  28.                   while(1);

  29.               }

  30. }



  31. void initinal(void)

  32. {   delay_50ms(2);

  33.     write_12864com(0x30);

  34.               delay_50us(4);

  35.     write_12864com(0x30);

  36.               delay_50us(4);

  37.     write_12864com(0x0f);

  38.               delay_50us(4);

  39.     write_12864com(0x01);

  40.               delay_50us(240);

  41.     write_12864com(0x06);

  42.               delay_50us(10);

  43. }



  44. void write_12864com(uchar com)

  45. {   rw=0;

  46.     rs=0;

  47.               delay_50us(1);

  48.               P0=com;

  49.               e=1;

  50.               delay_50us(10);

  51.               e=0;

  52.               delay_50us(2);

  53. }



  54. void write_12864dat(uchar dat)

  55. {   rw=0;

  56.     rs=1;

  57.               delay_50us(1);

  58.               P0=dat;

  59.               e=1;

  60.               delay_50us(10);

  61.               e=0;

  62.               delay_50us(2);

  63. }



  64. void display(void)

  65. {   uchar i,j;

  66.     write_12864com(0x90);

  67.     for(i+0;i<12;i++)

  68.               {   write_12864dat(table1[i]);

  69.                   delay_50us(1);

  70.               }

  71.     write_12864com(0x98);

  72.               for(j<0;j<14;j++)

  73.               {   write_12864dat(table2[j]);

  74.                   delay_50us(1);

  75.               }

  76. }
复制代码



三、联合调试与运行
如图,在烧录程序成功后,12864上出现了相应的姓名与学号。



作者: LJ博    时间: 2020-2-25 15:30
有仿真图吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1