📄 ledkey.lst
字号:
C51 COMPILER V8.01 LEDKEY 08/04/2006 19:27:58 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE LEDKEY
OBJECT MODULE PLACED IN ledkey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ledkey.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 //************************************************************************* //
3 //
4 //
5 // COPYRIGHT (c) 2006 BY FOSHAN LX.
6 // -- ALL RIGHTS RESERVED --
7 //
8 // File Name: UFMAIN.C
9 // Author: guobin
10 // Created: 2006/04/20
11 // Modified:
12 // Revision: 2.0
13 //
14 //*************************************************************************
15 */
16
17 //CPU: P89LPC932A1 8K Flash 256+512Byte RAM
18 //Crystal:12MHz Fosc=12M
19 //DIVM=0 CCLK=Fosc=12M
20 //Single INS=6M=166ns
21
22 #include <stdio.h>
23 #include <string.h>
24
25 #include "hardware.h"
26
27 unsigned char LLEDData,RLEDData;
28 bit bdata CLRFlag;
29 unsigned char KeyCount;
30 bit bdata KeyReleaseFlag;
31 unsigned char KeyEvent;
32 unsigned char TestData;
33
34 void (*ISP)();
35
36 //P00(O) P01(O) P02(O) P03(O) P04(O) P05(O) P06(O) P07(O)
37 //P10(O) P11(I) P12(O) P13(I/O) P14(I) P15(I) P16(O) P17(O)
38 //P20(I/O) P21(I/O) P22(I/O) P23(I/O) P24(I/O) P25(I/O) P26(I/O) P27(I/O)
39 void GPIO_Initial(void)
40 {
41 1 P0M1=0x00;
42 1 P0M2=0x00;
43 1 P1M1=0x20;
44 1 P1M2=0x00;
45 1 P2M1=0x00;
46 1 P2M2=0x00;
47 1 }
48
49 void ISP_Initial(void)
50 {
51 1 ISP=0x1F00;
52 1 if(!Key)
53 1 ISP();
54 1
55 1 SSTAT=0xFA;
C51 COMPILER V8.01 LEDKEY 08/04/2006 19:27:58 PAGE 2
56 1 BRGCON=0x00;
57 1 AUXR1=0x40;
58 1 SCON=0x50;
59 1 BRGR1=0x04; //cystal=12M baund=9600(0x04d2)-----baund=cclk/((brgr1,brgr0)+16)
60 1 BRGR0=0xD2;
61 1 BRGCON=0x03;
62 1 }
63
64 /*
65 位段编码对应关系:
66 数码管位:a b c d e f g dp
67 74HC164: Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
68 Q对应输出1点亮相应的位,比如显示1---写74HC164数据01100000(0x60)
69 */
70 code UCHAR LEDCode[]= //数码管编码表
71 {
72 0xFC, //'0'
73 0x60, //'1'
74 0xDA, //'2'
75 0xF2, //'3'
76 0x66, //'4'
77 0xB6, //'5'
78 0xBE, //'6'
79 0xE0, //'7'
80 0xFE, //'8'
81 0xF6, //'9'
82 };
83
84 /*
85 写74HC164函数
86 入口参数:写1个字节数据
87 出口参数:无
88 */
89 void HC164(UCHAR Dat)
90 {
91 1 UCHAR i;
92 1
93 1 HC164_CLK=0;
94 1 for(i=0;i<8;i++)
95 1 {
96 2 if(Dat&0x01) //移为顺序:LSB位先移出
97 2 HC164_AB=1;
98 2 else
99 2 HC164_AB=0;
100 2 HC164_CLK=1;
101 2 HC164_CLK=0;
102 2 Dat>>=1;
103 2 }
104 1 }
105
106 void ScanLEDOutput(void)
107 {
108 1 NLEDR=NLEDL=1;
109 1 if(CLRFlag)
110 1 {
111 2 CLRFlag=0;
112 2 HC164(LEDCode[RLEDData]);
113 2 NLEDR=0;
114 2 }
115 1 else
116 1 {
117 2 CLRFlag=1;
C51 COMPILER V8.01 LEDKEY 08/04/2006 19:27:58 PAGE 3
118 2 HC164(LEDCode[LLEDData]);
119 2 NLEDL=0;
120 2 }
121 1 }
122
123 void T0_Initial(void)
124 {
125 1 TMOD&=0xf0;
126 1 TMOD|=0x01;
127 1 TH0=0x8A; //5MS
128 1 TL0=0xD0;
129 1 TR0=1;
130 1 ET0=1;
131 1 EA=1;
132 1 }
133
134 void T0_IRQ(void) interrupt 1
135 {
136 1 TH0=0x8A;
137 1 TL0=0xD0;
138 1
139 1 ScanLEDOutput();
140 1
141 1 if(Key)
142 1 {
143 2 KeyCount=0;
144 2 KeyReleaseFlag=1;
145 2 }
146 1 else
147 1 {
148 2 KeyCount++;
149 2 if((KeyCount==20)&&KeyReleaseFlag)
150 2 {
151 3 KeyEvent=1;
152 3 KeyReleaseFlag=0;
153 3 }
154 2 }
155 1 }
156
157 void main(void)
158 {
159 1 GPIO_Initial();
160 1
161 1 ISP_Initial();
162 1
163 1 T0_Initial();
164 1
165 1 while(1)
166 1 {
167 2 if(KeyEvent)
168 2 {
169 3 KeyEvent=0;
170 3 TestData++;
171 3 if(TestData==100)
172 3 TestData=0;
173 3 LLEDData=TestData/10;
174 3 RLEDData=TestData%10;
175 3 }
176 2 }
177 1 }
178
179
C51 COMPILER V8.01 LEDKEY 08/04/2006 19:27:58 PAGE 4
180
181
182
183
184
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -