📄 zlg8279_1.lst
字号:
C51 COMPILER V7.06 ZLG8279_1 04/12/2005 09:46:28 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ZLG8279_1
OBJECT MODULE PLACED IN ZLG8279_1.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE ZLG8279_1.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函数声明,变量定义--------------------------------------------------------
2 #include <reg51.h>
3 sbit ZLG7289_CS=P1^4; // ZLG7289_CS--P1.4
4 sbit ZLG7289_CLK=P1^5; // ZLG7289_CLK-- P1.5
5 sbit ZLG7289_DATA=P1^6; // ZLG7289_DATA-- P1.2
6 sbit ZLG7289_KEY =P1^7; // ZLG7289_KEY-- P1.3
7 #define RunKey 0x33
8 #define StopKey 0x22
9 //-----------------------接口定义--------------------------------------------------------
10 #define ZLG7289_RESET 0xa4 //复位
11 #define ZLG7289_TEST 0xbf //测试
12 #define ZLG7289_RLC 0xa3 //循环左移
13 #define ZLG7289_RRC 0xa2 //循环右移
14 #define ZLG7289_RL 0xa1 //左移
15 #define ZLG7289_RR 0xa0 //右移
16 #define ZLG7289_DECODE0 0x80 //译码方式0
17 #define ZLG7289_DECODE1 0xc8 //译码方式1
18 #define ZLG7289_UNDECODE 0x90 //译码方式2: 不译码
19 #define ZLG7289_HIDE 0x98 //消隐
20 #define ZLG7289_FLASH 0x88 //闪烁
21 #define ZLG7289_SEGON 0xe0 //段亮
22 #define ZLG7289_SEGOFF 0xc0 //段灭
23 #define ZLG7289_READ 0x15 //读
24 //-------------------------------- ------------------------------------------------------------------
25 // 函数名称: delay
26 // 入口参数: N
27 // 函数功能:延时子程序,实现(16*N+24)us的延时
28 // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
29 //--------------------------------------------------------------------------------------------------
30 void delay(unsigned int N)
31 {
32 1 int i;
33 1 for(i=0;i<N;i++);
34 1 }
35 /*--------------------------------------------
36 调用方式: void ZLG7289_LongDelay(void)
37 函数说明 >500ms
38 --------------------------------------------*/
39 void ZLG7289_LongDelay(void)
40 {
41 1 unsigned char i;
42 1 for (i=0;i<7;i++)
43 1 delay(5000); //定时80ms
44 1 }
45 //-----------------------------------------------------------------------
46 //调用方式:void ZLG7289_ShortDelay(void)
47 //函数说明:=500ms
48 //------------------------------------------------------------------------
49 void ZLG7289_ShortDelay(void)
50 {;}
51 //-----------------------------------------------------------------------
52 //调用方式:ZLG7289_SendByte
53 //入口参数: out_byte
54 //函数说明:送指令
55 //------------------------------------------------------------------------
C51 COMPILER V7.06 ZLG8279_1 04/12/2005 09:46:28 PAGE 2
56 void ZLG7289_SendByte( unsigned char out_byte)
57 {
58 1 unsigned char i;
59 1 ZLG7289_CS=0;
60 1 ZLG7289_LongDelay();
61 1 for(i=0;i<8;i++)
62 1 {
63 2 if(out_byte&0x80) { ZLG7289_DATA=1; }
64 2 else { ZLG7289_DATA=0; }
65 2 ZLG7289_CLK=1;
66 2 ZLG7289_ShortDelay();
67 2 ZLG7289_CLK=0;
68 2 ZLG7289_ShortDelay();
69 2 out_byte=out_byte<<1;
70 2 }
71 1 ZLG7289_DATA=0;
72 1 }
73 //-----------------------------------------------------------------------
74 //调用方式:void WRITE_ZLG7289(unsigned char command, unsigned char dta)
75 //入口参数: command,dta
76 //函数说明:写函数
77 //------------------------------------------------------------------------
78 void WRITE_ZLG7289(unsigned char command, unsigned char dta)
79 {
80 1 ZLG7289_SendByte( command );
81 1 ZLG7289_SendByte( dta );
82 1 }
83 //-----------------------------------------------------------------------
84 //调用方式:unsigned char ZLG7289_ReceiveByte(void)
85 //返回值: 接收到的数据
86 //函数说明:接受一个BYTE函数
87 //------------------------------------------------------------------------
88 unsigned char ZLG7289_ReceiveByte(void)
89 {
90 1 unsigned char i, in_byte;
91 1 ZLG7289_DATA=1;
92 1 ZLG7289_LongDelay();
93 1 for(i=0;i<8;i++)
94 1 {ZLG7289_CLK=1;
95 2 ZLG7289_ShortDelay();
96 2 in_byte=in_byte<<1;
97 2 if(ZLG7289_DATA) { in_byte=in_byte|0x01; }
98 2 ZLG7289_CLK=0;
99 2 ZLG7289_ShortDelay();
100 2 }
101 1 ZLG7289_DATA=0;
102 1 return (in_byte);
103 1 }
104 //-----------------------------------------------------------------------
105 //调用方式:unsigned char ZLG7289_GetKey()
106 //返回值: 接收到的按键值
107 //函数说明:读键盘函数
108 //------------------------------------------------------------------------
109 unsigned char ZLG7289_GetKey()
110 {
111 1 unsigned char key;
112 1 if(!ZLG7289_KEY)
113 1 {
114 2 ZLG7289_SendByte(ZLG7289_READ);
115 2 key=ZLG7289_ReceiveByte();
116 2 switch( key )
117 2 {
C51 COMPILER V7.06 ZLG8279_1 04/12/2005 09:46:28 PAGE 3
118 3 case RunKey:
119 3 case StopKey:
120 3 while(!ZLG7289_KEY);
121 3 default: return(0xff);
122 3 }
123 2 }
124 1 return(0xff);
125 1 }
126 //-----------------------------------------------------------------------
127 //主函数形式
128 //------------------------------------------------------------------------
129 main()
130 {
131 1 ZLG7289_SendByte(0xa4);//复位
132 1 WRITE_ZLG7289(0x80,0);//显示‘0’
133 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 160 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -