📄 zlg7289a.lst
字号:
C51 COMPILER V8.06 ZLG7289A 03/15/2008 14:51:26 PAGE 1
C51 COMPILER V8.06, COMPILATION OF MODULE ZLG7289A
OBJECT MODULE PLACED IN zlg7289A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE zlg7289A.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG52.H>
2 #include <main.h>
3 #include <zlg7289A.h>
4
5
6 //键值号 输入键 ENTER | 测量键 MEASURE | 右移键 -> | 减少键 - | 增加键 + | 设置键 OPTION
7 // 7 15 23 31 39 47
8 //数码管位地址 通道号 数据(千位) 数据(百位) 数据(十位) 数据(个位) 四个发光管
9 // 7 6 5 4 3 2
10
11 // 按方式0译码时:对应显示0-9数字和"-,E,H,L,P,空(无显示)"
12 // 按方式1译码时:对应显示0-9数字和A-F字符
13
14
15 //键值变量
16 uchar symble=0xFF; //初始态设为无键值按下的返回值
17
18 //延时子程序 参数×10us=延时数
19 //参数:10us的倍数
20
21 void delayus(uchar us)
22 {
23 1 uchar i;
24 1 us=us*3;
25 1 for(i=0;i<us;i++);
26 1
27 1 }
28
29
30
31 //纯指令操作函数
32 //参数:纯指令关键字
33
34 void SingleCommand(uchar command)
35 {
36 1 uchar i;
37 1 CS_ZLG7289A=LOW;
38 1 CLK_ZLG7289A=0;
39 1 delayus(3);
40 1 for(i=8;i>=1;i--) //发送八位数据
41 1 {
42 2 DIO_ZLG7289A=command&0x08;
43 2 command=command<<1;
44 2 CLK_ZLG7289A=HIGH;
45 2 delayus(1);
46 2 CLK_ZLG7289A=LOW;
47 2 delayus(1);
48 2 }
49 1 CS_ZLG7289A=HIGH;
50 1 delayus(1);
51 1 }
52
53
54 //带参数指令操作函数
55 //参数:带参数指令关键字command; 数码管位置position(如无位置参数则设为0); 参数data_8bit
C51 COMPILER V8.06 ZLG7289A 03/15/2008 14:51:26 PAGE 2
56
57 void BiCommand(uchar command,uchar positoin,uchar data_8bit)
58 {
59 1 uchar i;
60 1 command=command+positoin;
61 1 CS_ZLG7289A=LOW;
62 1 CLK_ZLG7289A=0;
63 1 delayus(3);
64 1 for(i=8;i>=1;i--) //发送八位数据
65 1 {
66 2 DIO_ZLG7289A=command&0x08;
67 2 command=command<<1;
68 2 CLK_ZLG7289A=HIGH;
69 2 delayus(1);
70 2 CLK_ZLG7289A=LOW;
71 2 delayus(1);
72 2 }
73 1 delayus(2);
74 1 for(i=8;i>=1;i--) //发送八位数据
75 1 {
76 2 DIO_ZLG7289A=data_8bit&0x08;
77 2 data_8bit=data_8bit<<1;
78 2 CLK_ZLG7289A=HIGH;
79 2 delayus(1);
80 2 CLK_ZLG7289A=LOW;
81 2 delayus(1);
82 2 }
83 1 CS_ZLG7289A=HIGH;
84 1 delayus(1);
85 1 }
86
87 //读键盘操作函数
88 //参数:无
89 //返回值:键值
90
91 uchar ReadKey()
92 {
93 1 uchar i;
94 1 uchar data_in=0; //接收数据存储单元
95 1 uchar command=ReadKeyCom; //读键盘命令
96 1 CS_ZLG7289A=LOW;
97 1 CLK_ZLG7289A=0;
98 1 delayus(3);
99 1 for(i=8;i>=1;i--) //发送八位数据
100 1 {
101 2 DIO_ZLG7289A=command&0x08;
102 2 command=command<<1;
103 2 CLK_ZLG7289A=HIGH;
104 2 delayus(1);
105 2 CLK_ZLG7289A=LOW;
106 2 delayus(1);
107 2 }
108 1 DIO_ZLG7289A=HIGH; //端口置为接收状态
109 1 delayus(2);
110 1 for(i=8;i>=1;i--) //接收八位数据
111 1 {
112 2 CLK_ZLG7289A=HIGH;
113 2 delayus(1);
114 2 data_in=data_in<<1;
115 2 data_in=DIO_ZLG7289A|data_in;
116 2 CLK_ZLG7289A=LOW;
117 2 delayus(1);
C51 COMPILER V8.06 ZLG7289A 03/15/2008 14:51:26 PAGE 3
118 2 }
119 1 CS_ZLG7289A=HIGH;
120 1 delayus(1);
121 1 return(data_in);
122 1 }
123
124
125 //数码管显示
126 //参数:数码管位置地址 position 显示方式:dfuction (DownDataCom_0; DownDataCom_1; DownDataCom等)
127 //
128 //显示数据:ddata
129 void LedShow(uchar position,uchar dfuction,uchar ddata,uchar dp)
130 {
131 1 uchar data_high,data_low;
132 1 if(dfuction==DownDataCom_0||dfuction==DownDataCom_1||DownDataCom) //下载数据
133 1 {
134 2 data_high=position+2;
135 2 data_low=ddata+dp;
136 2 BiCommand(dfuction,data_high,data_low);
137 2 }
138 1 if(dfuction==TwinkleCom) //闪烁控制
139 1 {
140 2 data_high=position+2;
141 2 BiCommand(dfuction,data_high,0);
142 2 }
143 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 215 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -