?? hd7279.lst
字號:
C51 COMPILER V7.50 HD7279 06/30/2006 15:37:21 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE HD7279
OBJECT MODULE PLACED IN hd7279.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE hd7279.c OMF2 BROWSE DEBUG
line level source
1 #include "reg668.h"
2 #include "absacc.h"
3 #define uchar unsigned char
4
5 /*HD7279 指令*/
6
7 #define CMD_RESET 0xa4/*復位(清除)指令0xa4*/
8 #define CMD_TEST 0xbf/*測試指令0xbf*/
9 #define CMD_RTL_CYCLE 0xa3/*循環左移指令0xa3*/
10 #define CMD_RTR_CYCLE 0xa2/*循環右移指令0xa2*/
11 #define CMD_RTL_UNCYCLE 0xa1/*左移指令0xa1*/
12 #define CMD_RTR_UNCYCLE 0xa0/*右移指令0xa0*/
13 #define CMD_DECODE0 0x80/*譯碼方式0 0x80*/
14 #define CMD_UDECODE 0x90/*不譯碼方式 0x90*/
15 #define CMD_BLINKCTL 0x88/*閃爍控制0x88*/
16 #define CMD_ACTCTL 0x98/*削隱控制0x98*/
17 #define CMD_SEGON 0xe0/*段點亮指令0xe0*/
18 #define CMD_SEGOFF 0xc0/*段關閉指令0xc0*/
19 #define CMD_READKEY 0x15/*讀鍵盤數據指令0x15*/
20 #define CMD_8255 XBYTE[0X7FF3]
21 #define pa XBYTE[0x7ff0]//(*(char*)0x8000)
22 #define pb XBYTE[0x7ff1]//(*(char*)0x8001)
23 #define pc XBYTE[0x7ff2]//(*(char*)0x8002)
24 void long_delay(void) reentrant;
25 void short_delay(void) reentrant;
26
27 /*定HD7279引腳(I/O口)*/
28
29 sbit HD7279KEY=P1^7;/*按鍵有效輸出端*/
30 sbit HD7279DIO=P2^4;/*串行數據輸入/輸出端*/
31 sbit HD7279CLK=P3^4;/*同步時鐘輸入端*/
32 sbit HD7279CS=P3^5;/*片選端*/
33
34 /****************************************************************************
35 Function:send_byte
36 Parameter:Uc_Outbyte
37 Retrun:None
38 Description:向HD7279發送一個字節,包括指令,數據
39 *****************************************************************************/
40 void send_byte(uchar Uc_Outbyte) reentrant
41 {
42 1 uchar i;
43 1 HD7279CS=0;
44 1 long_delay();
45 1 //HD7279CLK=0;
46 1 for(i=0;i<8;i++)
47 1 {
48 2 if(Uc_Outbyte)//下載數據
49 2 {
50 3 HD7279DIO=1;
51 3 }
52 2 else
53 2 {
54 3 HD7279DIO=0;
55 3 }
C51 COMPILER V7.50 HD7279 06/30/2006 15:37:21 PAGE 2
56 2
57 2 short_delay();
58 2 HD7279CLK=1;
59 2 short_delay();
60 2 HD7279CLK=0;
61 2 Uc_Outbyte<<=1;
62 2 }
63 1 HD7279DIO=0;
64 1 // HD7279CS=1;
65 1 }
66 /****************************************************************************
67 Function:write7279
68 Parameter:cmd,data
69 Retrun:None
70 Description:向HD7279發送要顯示的數據和譯碼方式
71 *****************************************************************************/
72 void WriteHd7279(uchar cmd,uchar dta) reentrant
73 {
74 1 send_byte(cmd);
75 1 send_byte(dta);
76 1 }
77
78
79 /****************************************************************************
80 Function:long_delay
81 Parameter:None
82 Retrun:None
83 Description:長延時
84 *****************************************************************************
85 *************************************************************************************/
86 void long_delay(void) reentrant
87 {
88 1 uchar i;
89 1 for(i=0;i<0x30;i++);
90 1 }
91 /****************************************************************************
92 Function:short_delay
93 Parameter:None
94 Retrun:None
95 Description:短延時
96 *****************************************************************************/
97 void short_delay(void) reentrant
98 {
99 1 uchar i;
100 1 for(i=0;i<8;i++);
101 1 }
102 /****************************************************************************
103 Function:Testhd7279
104 Parameter:None
105 Retrun:None
106 Description:測試HD7279一二三位紅綠燈依次各亮一次
107 *****************************************************************************/
108 void Testhd7279(void) reentrant
109 {
110 1 WriteHd7279(CMD_UDECODE,0xaa);
111 1 long_delay();
112 1 long_delay();
113 1 WriteHd7279(CMD_UDECODE,0x55);
114 1 long_delay();
115 1 long_delay();
116 1 WriteHd7279(CMD_UDECODE+1,0xaa);
117 1 long_delay();
C51 COMPILER V7.50 HD7279 06/30/2006 15:37:21 PAGE 3
118 1 long_delay();
119 1 WriteHd7279(CMD_UDECODE+1,0x55);
120 1 long_delay();
121 1 long_delay();
122 1 WriteHd7279(CMD_UDECODE+2,0xaa);
123 1 long_delay();
124 1 long_delay();
125 1 WriteHd7279(CMD_UDECODE+2,0x55);
126 1 long_delay();
127 1 long_delay();
128 1
129 1
130 1 }
131
132
133 /*主程序*/
134 main (uchar i,uchar j)
135 {
136 1 int tmr;
137 1 Testhd7279( );
138 1 long_delay();
139 1 while (1)
140 1 {
141 2 for (tmr=0;tmr<0x2000;tmr++); // 上電延時
142 2 send_byte(CMD_RESET); // 復位HD7279A
143 2 WriteHd7279(i,j); // 按不譯碼方式顯示
144 2 long_delay();
145 2 }
146 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 258 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -