📄 text1.lst
字号:
C51 COMPILER V6.12 TEXT1 06/02/2004 11:05:03 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN .\Text1.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\键盘7279\Text1.c DEBUG OBJECTEXTEND PRINT(.\Text1.lst) OBJECT(.\Text1.ob
-j)
stmt level source
1 //7279键盘程序
2 #include <reg51.h>
3 #include<intrins.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 //-----------------------------------
7 uchar read7279(uchar command); //读出键盘数据
8 uchar receive_byte(void); //接收一个字节
9 void send_byte(uchar out_byte); //发一个字节
10 void long_delay(void); //延时程序1
11 void short_delay(uint x); //延时程序
12 //-------------------------------------------
13 sbit cs=P0^0; // cs at P1.4
14 sbit clk=P0^1; // clk á??óóú P1.5
15 sbit dat=P0^2; // dat á??óóú P1.2
16 sbit key=P0^3; // key á??óóú P1.3
17 sbit led=P1^0; //工作指示
18 //---------------------------------------------------------------
19 #define CMD_READ 0x15 //常量定义
20 //-----------------------------------------------------------
21 uchar key_number;
22 //--------------------------------------------
23 uchar read7279(uchar command) //读出键盘数据
24 {
25 1 send_byte(command);
26 1 return(receive_byte());
27 1 }
28 void send_byte(uchar out_byte) //发一个字节
29 {
30 1 uchar i;
31 1 cs=0;
32 1 long_delay();
33 1 for (i=0;i<8;i++)
34 1 {
35 2 if (out_byte&0x80)
36 2 {
37 3 dat=1;
38 3 }
39 2 else
40 2 {
41 3 dat=0;
42 3 }
43 2 clk=1;
44 2 short_delay(8);
45 2 clk=0;
46 2 short_delay(8);
47 2 out_byte=out_byte*2;
48 2 }
49 1 dat=0;
50 1 }
51 uchar receive_byte(void) //接收一个字节
52 {
53 1 uchar i, in_byte;
54 1 dat=1;
C51 COMPILER V6.12 TEXT1 06/02/2004 11:05:03 PAGE 2
55 1 long_delay();
56 1 for (i=0;i<8;i++)
57 1 {
58 2 clk=1;
59 2 short_delay(8);
60 2 in_byte=in_byte*2;
61 2 if (dat)
62 2 {
63 3 in_byte=in_byte|0x01;
64 3 }
65 2 clk=0;
66 2 short_delay(8);
67 2 }
68 1 dat=0;
69 1 return (in_byte); //返回值
70 1 }
71 void long_delay(void) //延时程序1
72 {
73 1 uchar i;
74 1 for (i=0;i<0x30;i++);
75 1 }
76 void short_delay(uint x) //延时程序
77 {
78 1 uchar i;
79 1 for (i=0;i<x;i++);
80 1 }
81 // ************************* ?óê± n*10ms *************************
82 void main(void)
83 {
84 1 uchar key_number=0xff;
85 1 do{
86 2 if(key==0) //如有键按下
87 2 //if(!key) //如有键按下
88 2 {
89 3 key_number=read7279(CMD_READ); //读出键值
90 3 led=!led;
91 3 }
92 2 }while(1);
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 139 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 5
IDATA SIZE = ---- ----
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 + -