📄 key.lst
字号:
C51 COMPILER V8.02 KEY 06/17/2010 09:52:34 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN Key.OBJ
COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE Key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************
2 本程序只供学习使用,未经作者许可,不得用于其它任何用途
3
4 欢迎光临天祥电子 www.txmcu.cn
5
6 *******************************************************************/
7
8
9 #include "Key.h"
10 #include "MyType.h"
11 #include "config.h"
12 extern unsigned char s6,s7,s10,s11,s14,s15,s,again1,again2,pp,qq;
13 volatile uint8 idata KeyCurrent,KeyOld,KeyNoChangedTime;
14 volatile uint8 idata KeyPress;
15 volatile uint8 idata KeyDown,KeyUp,KeyLast;
16
17 volatile uint8 KeyCanChange;
18
19 /********************************************************************
20 函数功能:定时器0初始化,用来做键盘扫描。
21 入口参数:无。
22 返 回:无。
23 备 注:无。
24 ********************************************************************/
25 void InitTimer0(void)
26 {
27 1 TMOD&=0xF0;
28 1 TMOD|=0x01;
29 1 ET0=1;
30 1 TR0=1;
31 1 }
32 /*******************************************************************/
33
34
35 /********************************************************************
36 函数功能:键盘初始化
37 入口参数:无。
38 返 回:无。
39 备 注:无。
40 ********************************************************************/
41 void InitKeyboard(void)
42 {
43 1 KeyIO=0xFF; //键盘对应的口设置为输入状态
44 1 KeyPress=0; //无按键按下
45 1 KeyNoChangedTime=0;
46 1 KeyOld=0;
47 1 KeyCurrent=0;
48 1 KeyLast=0;
49 1 KeyDown=0;
50 1 KeyUp=0;
51 1 InitTimer0(); //初始化定时器
52 1 KeyCanChange=1; //允许键值改变
53 1 }
54 /*******************************************************************/
55
C51 COMPILER V8.02 KEY 06/17/2010 09:52:34 PAGE 2
56 /********************************************************************
57 函数功能:定时器0中断处理。
58 入口参数:无。
59 返 回:无。
60 备 注:22.1184M晶体约5ms中断一次。
61 ********************************************************************/
62 void Timer0Isr(void) interrupt 1
63 {
64 1 //定时器0重装,定时间隔为5ms,加15是为了修正重装所花费时间
65 1 //这个值可以通过软件仿真来确定,在这里设置断点,调整使两次运行
66 1 //时间差刚好为5ms即可。
67 1 TH0=(65536-Fclk/1000/12*5+15)/256;
68 1 TL0=(65536-Fclk/1000/12*5+15)%256; //
69 1
70 1 if(!KeyCanChange)return; //如果正在处理按键,则不再扫描键盘
71 1
72 1 //开始键盘扫描
73 1 //保存按键状态到当前按键情况
74 1 //KeyCurrent总共有8个bit
75 1 //当某个开关按下时,对应的bit为1
76 1
77 1 P3|=0x37;
78 1 lcden=0;
79 1 rs=1;
80 1 if(rxd==0) s6=1;
81 1 if(txd==0) s10=1;
82 1 if(csda==0)
83 1 {
84 2 s14=1;
85 2 again1=1;
86 2 }
87 1 if((csda==1)&(again1==1))
88 1 {
89 2 pp=1;
90 2 again1=0;
91 2 }
92 1 lcden=1;
93 1 rs=0;
94 1 if(rxd==0) s7=1;
95 1 if(txd==0) s11=1;
96 1 if(csda==0)
97 1 {
98 2 s15=1;
99 2 again2=1;
100 2 }
101 1 if((csda==1)&(again2==1))
102 1 {
103 2 again2=0;
104 2 qq=1;
105 2 }
106 1
107 1 s=s6|s7|s10|s11|s14|s15|pp|qq;
108 1 }
109 /*******************************************************************/
110
111
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 205 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V8.02 KEY 06/17/2010 09:52:34 PAGE 3
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = 7 ----
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 + -