keyboard.lst
来自「自己的平时一些制作 现在整理一下 与大家一起分享」· LST 代码 · 共 95 行
LST
95 行
C51 COMPILER V7.20 KEYBOARD 05/29/2007 14:41:51 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2
3 /******led 接口描述******/
4 //P0--->(a-g,dot) 显示
5 //选择使能控制段
6 //P2^3--->使能左第一个数码管 P2^2--->左第二个数码管
7 //P2^1--->左第三个数码管 P2^0--->左第四个数码管
8
9 /*********显示数据表************/
10 //前16个对应0-9 ,a-f,后面三个0x73 0x40,0x00分别对应字符P,-,空
11
12 unsigned char code table[19]={0x3f,6,0x5b,0x4f,
13 0x66,0x6d,0x7d,7,0x7f,0x6f,0x77,
14 0x7c,0x58,0x5e,0x79,0x71,0x73,0x40,0x00};
15
16 /******按键接口描述********/
17 //左第一 二 三 四 个按键分别对应于 P2.7 P2.6 P2.5 P2.4
18 //左第一个按键键值为1
19 //左第二个按键键值为2
20 //左第三个按键键值为3
21 //左第四个按键键值为4
22
23
24 /******延时程序********/
25 void delay (dy)
26 {
27 1 while(--dy);
28 1 }
29
30 /******读取按键子程序 getkey()*************/
31 unsigned char getkey (void)
32 { unsigned char k,tem,keytem;
33 1 keytem=0;
34 1 tem=P2 & 0xf0; //第一次读取按键值
35 1 if(tem!=0xf0) //判断有无按键按下
36 1 {
37 2 for(k=0;k<20;k++)
38 2 delay(250); //延时一段时间
39 2 tem=P2 & 0xf0; //再次读取按键值
40 2 if(tem!=0xf0)
41 2 { if(tem==0x70) keytem=1; //表示左第一个按键按下
42 3 else if(tem==0xb0) keytem=2; //表示左第二个按键按下
43 3 else if(tem==0xd0) keytem=3; //表示左第三个按键按下
44 3 else if(tem==0xe0) keytem=4; //表示左第四个按键按下
45 3 }
46 2 }
47 1
48 1 while(tem!=0xf0) tem=P2 & 0xf0; //等待按键释放
49 1 return(keytem); //返回按键值
50 1 }
51
52
53 /********主函数************/
54 //效果就是按左第一个按键,左数码管显示数值加1(0-9循环)
55 void main (void)
C51 COMPILER V7.20 KEYBOARD 05/29/2007 14:41:51 PAGE 2
56 {
57 1 unsigned char keyboard;
58 1 unsigned char number; //
59 1 P2=0xff; //让左第一个数码管显示按键的键值
60 1 while(1)
61 1 {
62 2 keyboard=getkey();
63 2 if(keyboard==1)
64 2 {
65 3 number=(number+1)%10;
66 3 }
67 2 P0=table[number];
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 110 ----
CONSTANT SIZE = 19 ----
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 + =
减小字号Ctrl + -
显示快捷键?