找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6356|回复: 0
收起左侧

51单片机:1602液晶显示欢迎界面源程序

[复制链接]
ID:103513 发表于 2016-1-17 00:56 | 显示全部楼层 |阅读模式

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code table[]="hello! jasper";   //写字符串时用“”而不是{ }了
  5. uchar code table1[]="   xm.dabiao    ";
  6. sbit lcden=P3^4;
  7. sbit lcdrs=P3^5;
  8. sbit dula=P2^6;     
  9. sbit wela=P2^7;  
  10. uchar num;
  11. void delay(uint z)     //延时
  12. {
  13. uint x,y;
  14. for(x=z;x>0;x--)
  15.   for(y=110;y>0;y--);
  16. }
  17. void write_com(uchar com) //写指令函数
  18. {
  19. lcdrs=0;   
  20. P0=com;
  21. delay(5);   
  22. lcden=1;   
  23. delay(5);
  24. lcden=0;
  25. }
  26. void write_data(uchar date)   //写数据 函数
  27. {
  28. lcdrs=1;
  29. P0=date;
  30. delay(5);
  31. lcden=1;
  32. delay(5);
  33. lcden=0;
  34. }
  35. void init()
  36. {
  37. dula=0;           //初始化,关断数码管
  38. wela=0;
  39. lcden=0;
  40. write_com(0x38);     
  41. write_com(0x0e);   
  42. write_com(0x06);  
  43. write_com(0x01);  
  44. // write_com(0x80);  
  45. write_com(0x80+0x10);  
  46. }
  47. void main()
  48. {
  49. init();
  50. for(num=0;num<13;num++)  
  51. {        
  52.   write_data(table[num]);  
  53.   delay(20);  
  54. }
  55. // write_com(1);   //清屏
  56. //----------------------------再写第二行
  57. write_com(0x80+0x51);   
  58. for(num=0;num<16;num++)
  59. {
  60.   write_data(table1[num]);
  61.   delay(20);
  62. }
  63. for(num=0;num<16;num++)
  64. {
  65.   write_com(0x18);   //由code控制位 表算得18,整屏左移
  66.   delay(160);  
  67. }
  68. while(1);
  69. }
  70. //-------------------------
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表