lcd drive.lst
来自「12位ADmax1241和1602液晶显示的一个经典的例子,文件里包括prote」· LST 代码 · 共 120 行
LST
120 行
C51 COMPILER V8.05a LCD_DRIVE 09/01/2008 14:47:36 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LCD_DRIVE
OBJECT MODULE PLACED IN LCD DRIVE.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE LCD DRIVE.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include "LCD1602.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define High 1
6 #define Low 0
7 int t;
8 sbit cs=P1^7;
9 sbit sclk=P1^6;
10 sbit dout=P1^5;
11 sbit P30=P3^0;
12 sbit P31=P3^1;
13 sbit P32=P3^2;
14 sbit P33=P3^3;
15 sbit P34=P3^4;
16 sbit P35=P3^5;
17 sbit P36=P3^6;
18 sbit P37=P3^7;
19 unsigned char a[5];
20 unsigned char b[5];
21 unsigned char TempBuffer[10];
22
23 /***************************************
24 max1241读转换结果
25 ****************************************/
26 uint read_max1241()
27 {
28 1 uint voltage_temp=0;
29 1 uchar ucloop=12;
30 1 cs=High;
31 1 //dout=low;
32 1 sclk=Low;
33 1 cs=Low;
34 1 while(dout==0);//EOC信号为高表示转换结束
35 1 sclk=High;
36 1 sclk=Low;
37 1 while(ucloop--)
38 1 {
39 2 sclk=High;//上升沿数据稳定并读出
40 2 voltage_temp<<=1;
41 2 if(dout==1)
42 2 voltage_temp+=1;
43 2 sclk=Low;
44 2 };
45 1 //sclk=low;
46 1 cs=High;
47 1 return voltage_temp;
48 1 }
49
50 void IntToStr(unsigned char *str, unsigned char n)
51 {
52 1 char i, j;
53 1 t=read_max1241();
54 1 b[0]=(t/10000)%10; //取得整数值到数组
55 1 b[1]=(t/1000)%10;
C51 COMPILER V8.05a LCD_DRIVE 09/01/2008 14:47:36 PAGE 2
56 1 b[2]=(t/100)%10;
57 1 b[3]=(t/10)%10;
58 1 b[4]=(t/1)%10;
59 1 for(i=0; i<5; i++)
60 1 a[i]=b[i];
61 1 for(i=0; i<5; i++) //转成ASCII码
62 1 a[i]=a[i]+'0';
-
63 1 for(i=0; a[i]=='0' && i<=3; i++);
64 1 for(j=5-n; j<i; j++) //填充空格
65 1 { *str=' '; str++; }
66 1 for(; i<5; i++)
67 1 { *str=a[i]; str++; } //加入有效的数字
68 1 *str='\0';
69 1 }
70
71 void Delay1ms(unsigned int count)
72 {
73 1 unsigned int i,j;
74 1 for(i=0;i<count;i++)
75 1 for(j=0;j<120;j++);
76 1 }
77
78 main()
79 {
80 1 LCD_Initial();
81 1 GotoXY(0,0);
82 1 Print("The 1602LCD Test");
83 1 GotoXY(0,1);
84 1 Print("Input NO.: ");
85 1
86 1 while(1)
87 1 {
88 2 IntToStr(&TempBuffer[0],5);
89 2 GotoXY(11,1);
90 2 Print(&TempBuffer[0]);
91 2 Delay1ms(100);
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 536 ----
CONSTANT SIZE = 35 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 4
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?