找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2620|回复: 3
收起左侧

STC15W408AS单片机LCD1602-4线接法源程序

[复制链接]
ID:486426 发表于 2020-4-1 07:24 | 显示全部楼层 |阅读模式
  1. #include "STC15F-15W.h"
  2. #include "LCD16024L1.h"

  3. /******** 数据定义 ******/
  4. unsigned char code uctech[] = {"0123456789ABCDEF"};
  5. unsigned char code net[] = {"www.51hei.com"};
  6. void main(void)
  7. {
  8. delay_ms(300); //启动等待,等 LCD 讲入工作状态
  9. LCD_init();  //初始化
  10. delay_ms(5);  //延时片刻 (可不要 )
  11. LCD_str(0, 0, uctech);
  12. LCD_str(0, 1, net);
  13. while(1);
  14. }
复制代码
  1. /*这两个程序通过了STC15W408AS单片机系统的验证,主频11.0592NHz时。请坛友指正!*/
  2. #ifndef __LCD16024L1_H__
  3. #define __LCD16024L1_H__
  4. unsigned char bdata C;  //在位寻址区定义字符变量C
  5. sbit C7=C^7;
  6. sbit C6=C^6;
  7. sbit C5=C^5;
  8. sbit C4=C^4;
  9. sbit C3=C^3;
  10. sbit C2=C^2;
  11. sbit C1=C^1;
  12. sbit C0=C^0;
  13. sbit RS=P5^5;
  14. //sbit RW=P1^2;
  15. sbit EN=P5^4;
  16. sbit I4=P3^4;
  17. sbit I5=P3^5;
  18. sbit I6=P3^6;
  19. sbit I7=P3^7;
  20. /****************延时***************/
  21. void delay_ms(unsigned int i)
  22. {
  23.   unsigned int t;
  24. while(i--)
  25. {
  26.   for(t=0;t<123;t++);
  27. }
  28. }
  29. /***用LCD1602高四位数据线写入命令**/
  30. void write_com(unsigned char command)
  31. {
  32.   C=command;
  33.   RS=0;
  34. //RW=0;
  35. EN=0;   //写命令
  36. delay_ms(1);
  37. I7=C7;
  38. I6=C6;
  39. I5=C5;
  40. I4=C4;
  41. EN=1;
  42. delay_ms(6); //延时
  43. EN=0;   //下降沿将数据写入LCD1602
  44. delay_ms(1);
  45. I7=C3;
  46. I6=C2;
  47. I5=C1;
  48. I4=C0;
  49. EN=1;
  50. delay_ms(1); //延时
  51. EN=0;   //下降沿将数据写入LCD1602
  52. }
  53. /**用LCD1602高四位数据线写入数据**/
  54. void write_dat(unsigned char dat)
  55. {
  56.   C=dat;
  57.   RS=1;
  58. //RW=0;
  59. EN=0;
  60. delay_ms(1);
  61. I7=C7;
  62. I6=C6;
  63. I5=C5;
  64. I4=C4;
  65. EN=1;
  66. delay_ms(6);  //延时
  67. EN=0;
  68. delay_ms(1);
  69. I7=C3;
  70. I6=C2;
  71. I5=C1;
  72. I4=C0;
  73. EN=1;
  74.     delay_ms(1);  //延时
  75. EN=0;
  76. }
  77. /********LCD1602初始化*************/
  78. void LCD_init(void)
  79. {
  80. write_com(0x02);         
  81. write_com(0x28);         
  82. write_com(0x0c);         
  83. write_com(0x80);         
  84. write_com(0x01);  //清屏
  85. }
  86. /*******设置LCD1602列、行**********/
  87. void LCD_sor(unsigned char x,unsigned y)
  88. {
  89.   unsigned char address;
  90. if(y==0)
  91.   address=0x80+x;
  92. else
  93.   address=0xC0+x;
  94. write_com(address);
  95. }
  96. /*******************/
  97. void LCD_str(unsigned x,unsigned char y,unsigned char *str)
  98. {
  99.   LCD_sor(x,y);
  100. while((*str)!='\0')
  101. {
  102.   write_dat(*str);
  103.   str++;
  104. }
  105. }
  106.   #endif
复制代码


全部资料51hei下载地址:
STC15W408-4LINE.rar (22.93 KB, 下载次数: 55)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:585455 发表于 2020-9-22 10:14 | 显示全部楼层
正在練習這個小小單片機,很需要範例來理解,幫助很大。
回复

使用道具 举报

ID:821788 发表于 2020-9-22 10:26 | 显示全部楼层
有没有硬件原理图哦?
回复

使用道具 举报

ID:585455 发表于 2020-9-23 09:01 | 显示全部楼层
裝了測試,lcd不能顯示,哪裡搞錯了嗎?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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