1 Star 0 Fork 1

AeiouJx/ElectronicScale

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
lcd.LST 4.39 KB
一键复制 编辑 原始数据 按行查看 历史
AeiouJx 提交于 2021-06-25 11:15 . first
C51 COMPILER V9.01 LCD 06/04/2021 20:46:20 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: D:\Program Files (x86)\Keil_v4\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*
3 FileName : lcd.c
4 Author : Tkz
5 Date : 2021.02.5
6 */
7
8 #include "lcd.h"
9
10 void ReadBusy(void) //忙检测函数,判断bit7是0,允许执行;1禁止
11 {
12 1 unsigned char statu; //
13 1 LCD1602_DATAPINS = 0xff;
14 1 LCD1602_RS = 0;
15 1 LCD1602_RW = 1;
16 1 do
17 1 {
18 2 LCD1602_EN = 1;
19 2 statu = LCD1602_DATAPINS;
20 2 LCD1602_EN = 0; //使能,用完就拉低,释放总线
21 2 }while(statu & 0x80);
22 1 }
23
24 void Lcd1602_Delay1ms(unsigned int c) //误差 0us
25 {
26 1 unsigned char a,b;
27 1 for (; c>0; c--)
28 1 {
29 2 for (b=199;b>0;b--)
30 2 {
31 3 for(a=1;a>0;a--);
32 3 }
33 2 }
34 1 }
35
36 /* LCD1602写入命令 */
37 void LcdWriteCom(unsigned char com) //写入命令
38 {
39 1 ReadBusy();
40 1 LCD1602_EN = 0; //使能
41 1 LCD1602_RS = 0; //选择写入命令 数据/命令选择端(H/L) 1/0
42 1 LCD1602_RW = 0; //选择写入 读/写选择端(H\L) 1/0
43 1
44 1 LCD1602_DATAPINS = com; //放入命令
45 1 Lcd1602_Delay1ms(1); //等待数据稳定
46 1
47 1 LCD1602_EN = 1; //写入时序
48 1 Lcd1602_Delay1ms(5); //保持时间
49 1 LCD1602_EN = 0;
50 1 }
51
52 /* LCD1602写入数据 */
53 void LcdWriteData(unsigned char dat) //写入数据
54 {
55 1 ReadBusy();
C51 COMPILER V9.01 LCD 06/04/2021 20:46:20 PAGE 2
56 1 LCD1602_EN = 0; //使能清零
57 1 LCD1602_RS = 1; //选择输入数据
58 1 LCD1602_RW = 0; //选择写入
59 1
60 1 LCD1602_DATAPINS = dat; //写入数据
61 1 Lcd1602_Delay1ms(1);
62 1
63 1 LCD1602_EN = 1; //写入时序
64 1 Lcd1602_Delay1ms(5); //保持时间
65 1 LCD1602_EN = 0;
66 1 }
67 void delay_ms(unsigned char ms);
68 /* LCD1602初始化 */
69 void Lcd1602Init(void) //LCD初始化子程序
70 {
71 1 LcdWriteCom(0x38); //开显示 5*8,8位数据
72 1 LcdWriteCom(0x0c); //开显示不显示光标
73 1 //LcdWriteCom(0x0f); // 显示光标并闪烁
74 1 LcdWriteCom(0x06); //写一个指针加1
75 1 LcdWriteCom(0x01); //清屏
76 1 LcdWriteCom(0x80); //设置数据指针起点
77 1
78 1 //LcdWriteCom(0x80);
79 1 LcdWriteStr(" Welcome To Use ");
80 1 LcdWriteCom(0x80+0x40);
81 1 LcdWriteStr("Electronic Scale");
82 1 }
83
84
85
86 /* 按指定位置显示字符串 */
87 void LcdWriteStr(unsigned char * str){
88 1 while(*str != '\0'){
89 2 LcdWriteData(*str++);
90 2 }
91 1 }
92
93
94
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 175 ----
CONSTANT SIZE = 34 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/AeiouJx/electronic-scale.git
git@gitee.com:AeiouJx/electronic-scale.git
AeiouJx
electronic-scale
ElectronicScale
master

搜索帮助