📄 zlg7289demo1.lst
字号:
C51 COMPILER V7.07 ZLG7289DEMO1 11/17/2007 15:12:40 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE ZLG7289DEMO1
OBJECT MODULE PLACED IN ZLG7289Demo1.OBJ
COMPILER INVOKED BY: E:\keil\C51\Bin\c51.exe ZLG7289Demo1.c DB OE
stmt level source
1 /*
2 ZLG7289Demo1.c
3 ZLG7289 演示程序
4 说明:
5 采用查询INT 引脚状态的方式读取键盘值
6 新的版和旧的版有两处需要修改的:数组和数组变换的地方
7 */
8 #include "ZLG7289.h"
9 #include<intrins.h>
10 #define NOP() _nop_()
11 /*
12 函数:Delay()
13 功能:延时0.01~655.36s
14 参数:
15 t>0 时,延时(t*0.01)s
16 t=0 时,延时655.36s
17 说明:
18 晶振采用11.0592MHz
19 */
20 void Delay(unsigned int t)
21 {
22 1 do
23 1 {
24 2 TH0 = 0xDC;
25 2 TL0 = 0x00;
26 2
27 2 TR0 = 1;
28 2 while ( !TF0 );
29 2 TF0 = 0;
30 2 TR0 = 0;
31 2 } while (--t);
32 1 }
33
34
35 void main()
36 {
37 1 code char DispDat[16] =
38 1 {//字母AbCdEFgHIJkLoPqs 的字形数据
39 1 0x77,0x1F,0x4E,0x3D,0x4F,0x47,0x7B,0x37,
40 1 0x06,0x38,0x07,0x0E,0x1D,0x67,0x73,0x5B
41 1 };
42 1 //新的版
43 1 unsigned char ChangeSwitch[16]={0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14};
44 1 //旧的版
45 1 //unsigned char ChangeSwitch[16]={0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x0f,0x06,0x05,0x04,0x03,0x02,0x01,0x
-00,0x07};
46 1 unsigned char mod;
47 1 unsigned char x;
48 1 bit dp;
49 1 unsigned char dat;
50 1 unsigned char k;
51 1 unsigned char n;
52 1
53 1 TMOD = 0x01;
54 1 Delay(30); //延时300ms,等待ZLG7289 复位完毕
C51 COMPILER V7.07 ZLG7289DEMO1 11/17/2007 15:12:40 PAGE 2
55 1 ZLG7289_Init(8); //调用ZLG7289 的初始化函数
56 1 Delay(100);
57 1 //测试
58 1 ZLG7289_Test();
59 1 Delay(200);
60 1 //复位
61 1 ZLG7289_Reset();
62 1 Delay(100);
63 1 for ( x=0; x<8; x++ )
64 1 {
65 2 ZLG7289_Download(1,x,1,x);
66 2 }
67 1 //用译码方式0 和方式1 下载数据,并显示
68 1
69 1 for ( mod=0; mod<2; mod++ )
70 1 {
71 2 for ( dat=0; dat<16; dat++ )
72 2 {
73 3 dp = 0;
74 3 for ( x=0; x<8; x++ )
75 3 {
76 4 ZLG7289_Download(mod,x,dp,dat);
77 4 }
78 3 Delay(80);
79 3 dp = 1;
80 3 for ( x=0; x<8; x++ )
81 3 {
82 4 ZLG7289_Download(mod,x,dp,dat);
83 4 }
84 3 Delay(90);
85 3 }
86 2 Delay(100);
87 2 }
88 1
89 1 //用不译码的方式显示自己定义的数据
90 1
91 1 for ( n=0; n<16; n++ )
92 1 {
93 2 dp = 0;
94 2 dat = DispDat[n];
95 2 for ( x=0; x<8; x++ )
96 2 {
97 3 ZLG7289_Download(2,x,dp,dat);
98 3 }
99 2 Delay(80);
100 2 }
101 1 Delay(100);
102 1 //显示0.1234567
103 1 ZLG7289_Download(1,0,1,0);
104 1 for ( x=1; x<8; x++ )
105 1 {
106 2 dat = x;
107 2 ZLG7289_Download(1,x,0,dat);
108 2 }
109 1 Delay(100);
110 1 //循环左移
111 1 for ( n=0; n<8; n++ )
112 1 {
113 2 ZLG7289_ROL();
114 2 Delay(120);
115 2 }
116 1 Delay(100);
C51 COMPILER V7.07 ZLG7289DEMO1 11/17/2007 15:12:40 PAGE 3
117 1 //循环右移
118 1 for ( n=0; n<8; n++ )
119 1 {
120 2 ZLG7289_ROR();
121 2 Delay(120);
122 2 }
123 1 //左移2 位
124 1 for ( n=0; n<2; n++ )
125 1 {
126 2 ZLG7289_SHL();
127 2 Delay(150);
128 2 }
129 1 //右移3 位
130 1 for ( n=0; n<3; n++ )
131 1 {
132 2 ZLG7289_SHR();
133 2 Delay(150);
134 2 }
135 1 //显示01234567
136 1 for ( x=0; x<8; x++ )
137 1 {
138 2 dat = x;
139 2 ZLG7289_Download(1,x,0,dat);
140 2 }
141 1 Delay(100);
142 1 //闪烁控制
143 1 dat = 0xFE;
144 1 for ( n=0; n<8; n++ ) //逐位闪烁
145 1 {
146 2 ZLG7289_Flash(dat);
147 2 dat <<= 1; dat++; //数据0xFE 循环左移
148 2 Delay(150);
149 2 }
150 1 ZLG7289_Flash(0x5A); //多位可以同时闪烁
151 1 Delay(200);
152 1 ZLG7289_Flash(0xFF); //停止闪烁
153 1 Delay(100);
154 1 //消隐控制
155 1 dat = 0xFE;
156 1 for ( n=0; n<8; n++ )
157 1 {
158 2 ZLG7289_Hide(dat);
159 2 dat <<= 1; dat++; //数据0xFE 循环左移
160 2 Delay(150);
161 2 }
162 1 ZLG7289_Hide(0x5A); //多位可以同时消隐
163 1 Delay(200);
164 1 ZLG7289_Hide(0xFF); //停止消隐
165 1 Delay(100);
166 1 //复位
167 1 ZLG7289_Reset();
168 1 Delay(100);
169 1 //段点亮
170 1 for ( n=0; n<64; n++ )
171 1 {
172 2 dat = n;
173 2 ZLG7289_SegOn(dat);
174 2 Delay(30);
175 2
176 2 }
177 1 //段关闭
178 1 for ( n=0; n<64; n++ )
C51 COMPILER V7.07 ZLG7289DEMO1 11/17/2007 15:12:40 PAGE 4
179 1 {
180 2 dat = n;
181 2 ZLG7289_SegOff(dat);
182 2 Delay(30);
183 2 }
184 1 //键盘测试
185 1 ZLG7289_Reset();
186 1 for (;;)
187 1 {
188 2 if ( ZLG7289_pinINT == 0 ) //有键按下
189 2 {
190 3 //读取按键值
191 3 k = ZLG7289_Key();
192 3 //显示按键值
193 3 //char ChangeSwitch[16]={0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x0f,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07
-};
194 3 //int ChangeSwitch[16]={14,13,12,11,10,9,8,15,6,5,4,3,2,1,0,7};
195 3 //新的版
196 3 k=ChangeSwitch[k];
197 3 //旧的版
198 3 //k=ChangeSwitch[k-48];
199 3 dat = k / 10;
200 3 ZLG7289_Download(1,1,0,dat);
201 3 dat = k - dat * 10;
202 3 ZLG7289_Download(1,0,0,dat);
203 3 //等待按键抬起
204 3 while ( !ZLG7289_pinINT );
205 3 }
206 2 Delay(5);
207 2 }
208 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 696 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 21
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -