📄 de.lst
字号:
C51 COMPILER V8.04 DE 11/02/2007 13:39:47 PAGE 1
C51 COMPILER V8.04, COMPILATION OF MODULE DE
OBJECT MODULE PLACED IN de.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE de.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********************************************************************
2 /* 文件名称: de.C
3 /* 文件标识: none
4 /* 适用器件: C8051F120
5 /* 摘 要: 本文件是键盘子程序;使用外部22.1184MHz晶振.
6 /* 当前版本:1.0
7 /* 作 者:李国涛
8 /* 完成日期:2007年11月2日
9 /***********************************************************************/
10
11 /**********************************************************************/
12 //INCLUDE引用外部头文件
13
14 #include <c8051f120_VarantReg.h>
15 #include <ABSACC.H>
16 #include "da-i.c"
17
18 /**********************************************************************/
19
20 /************************************************************************
21 // 常量及全局变量定义
22 ************************************************************************/
23 /***********************************************************************/
24
25 unsigned char Key_Value_Table[48]={ 0x53,0x30,0x31,0x53,0x30,0x32,0x53,0x30,0x33,0x53,0x30,0x34, //S01,S02
-,S03,S04
26 0x53,0x30,0x35,0x53,0x30,0x36,0x53,0x30,0x37,0x53,0x30,0x38, //S05,S06
-,S07,S08
27 0x53,0x30,0x39,0x53,0x31,0x30,0x53,0x31,0x31,0x53,0x31,0x32, //S09,S10
-,S11,S12
28 0x53,0x31,0x33,0x53,0x31,0x34,0x53,0x31,0x35,0x53,0x31,0x36};//S13,S14
-,S15,S16
29
30 uchar rs232_send_size;
31 uchar key; //key 是执行keyscan读取的值
32 uchar temp; //temp是执行KeySPI的结果
33
34 /* TIMER0 INI */
35 bit time_1ms_flag;
36 bit time_10ms_flag;
37 bit time_50ms_flag;
38 bit time_100ms_flag;
39 bit time_500ms_flag;
40 bit time_1s_flag;
41 bit time_60s_flag;
42 sbit P3_5=P3^5;
43 sbit P2_4=P2^4;
44 sbit P2_5=P2^5;
45 sbit P2_6=P2^6;
46 uchar time_1ms;
47 uchar time_10ms;
48 uchar time_50ms;
49 uchar time_100ms;
50 uchar time_500ms;
51 uchar time_1s;
C51 COMPILER V8.04 DE 11/02/2007 13:39:47 PAGE 2
52 uchar time_60s;
53 bit send_flag ;
54 /************************************************************************/
55
56 /************************************************************************
57
58 * 函数名称:send_232;
59
60 * 函数功能描述:向232发送字符到SBUF0;
61
62 ************************************************************************/
63
64 void send_232(send_232_end,uchar send_232_code[])
65 {
66 1 if(rs232_send_size<send_232_end)
67 1
68 1 {
69 2 SBUF0=send_232_code[rs232_send_size];
70 2 rs232_send_size++;
71 2 }
72 1 }
73
74 /******************************************************
75 * 函数名称:serial_0();
76 *
77 * 函数功能描述:UART0采用定时中断的方式通过串0口发送字符,字符个数为3个
78 *
79 * 输入参数:none
80 *
81 * 返回数据:none;
82 ******************************************************/
83
84 void serial_0(void) interrupt 4
85 {
86 1 if ( TI0 )
87 1 {
88 2 send_232(3,&Key_Value_Table[3*temp-3]);
89 2 TI0=0;
90 2 }
91 1 if ( RI0 )
92 1 {
93 2 RI0=0;
94 2 }
95 1 }
96
97 /*********************************************************
98
99 * 函数名称:delay();
100 *
101 * 函数功能描述:是一个延时程序;
102 *
103 * 输入参数:x1
104 *
105 * 返回数据:none;
106
107 ********************************************************/
108
109 void delay(int x1)
110 {
111 1 unsigned int y1;
112 1 for (y1=1;y1<x1;y1++);
113 1 }
C51 COMPILER V8.04 DE 11/02/2007 13:39:47 PAGE 3
114
115 /**********************************************************
116 *将按键的原代码转化为1--16
117
118 * 函数名称:char KeySPI();
119 *
120 * 函数功能描述:执行keyscan函数出来的编码原则是 {11 21 41 81} 如果要显示1--16的数值.那么就用case语句.再返
-回数值;
121 {12 22 42 82}
122 {14 24 44 84}
123 {18 28 48 88}
124 * 输入参数:key;
125 *
126 * 返回数据:temp;
127 ***********************************************************/
128 unsigned char KeySPI(unsigned char key)
129 {
130 1 switch(key)
131 1 {
132 2 case 0x11: return 1;//0x01
133 2 break;
134 2 case 0x21: return 2;//0x02
135 2 break;
136 2 case 0x41: return 3;//0x03
137 2 break;
138 2 case 0x81: return 4;//0x04
139 2 break;
140 2 case 0x12: return 5;//0x05
141 2 break;
142 2 case 0x22: return 6;//0x06
143 2 break;
144 2 case 0x42: return 7;//0x07
145 2 break;
146 2 case 0x82: return 8;//0x08
147 2 break;
148 2 case 0x14: return 9;//0x09
149 2 break;
150 2 case 0x24: return 10;//0x0a
151 2 break;
152 2 case 0x44: return 11;//0x0b
153 2 break;
154 2 case 0x84: return 12;//0x0c
155 2 break;
156 2 case 0x18: return 13;//0x0d
157 2 break;
158 2 case 0x28: return 14;//0x0e
159 2 break;
160 2 case 0x48: return 15;//0x0f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -