标题: 1602对照Proteus自带数据手册编写可仿真! [打印本页]

作者: 坚持比什么都难    时间: 2015-5-8 22:03
标题: 1602对照Proteus自带数据手册编写可仿真!
新手第一次对着数据手册写代码
多多包涵 1602.rar (31.63 KB, 下载次数: 155)




作者: admin    时间: 2015-5-9 01:09
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit RW=P2^0;
  5. sbit RS=P2^1;
  6. sbit EN=P2^2  ;
  7. uchar i;
  8. uchar code table[]={"QQ:779833075"};//ACII码1602可识别
  9. uchar code table1[]={"huanying jiaoliu"};
  10. void write_com(uchar com);
  11. void delay(uint z);
  12. void init()
  13. {
  14. EN=0;
  15. RW=0;
  16. RS=1;
  17. write_com(0x01);//清屏
  18. write_com(0x03);//初始化
  19. write_com(0x06);//地址加一位,屏幕变化
  20. write_com(0x0f);//打开屏幕,显示光标,光标闪烁
  21. write_com(0x17);//光标移动一位dd加一位
  22. write_com(0x3f);//2行显示
  23.         write_com(0x80);//地址寻位

  24.        

  25. }
  26. void delay(uint z)
  27. { uint x,y;
  28.         for(x=z;x>0;x--)
  29.                 for(y=110;y>0;y--);
  30. }
  31. void write_com(uchar com)
  32. { RS=0;
  33.         P0=com;
  34.   delay(5);
  35.   EN=1;
  36.         delay(5);
  37.         EN=0;
  38.         RS=1;
  39. }
  40. void write_date(uchar date)
  41. {
  42.         RS=1;
  43.         P0=date;
  44.   delay(5);
  45.   EN=1;
  46.         delay(5);
  47.         EN=0;
  48.         RS=1;
  49. }
  50. void main()

  51. {        init();
  52.        
  53.         for(i=0;i<12;i++)
  54.         write_date(table[i]);
  55.         write_com(0xc0);
  56.         for(i=0;i<16;i++)
  57.   write_date(table1[i]);
  58.         while(1);
  59. }
  60.        
  61.        
  62.   
  63.        
  64.        
复制代码





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