📄 text1.lst
字号:
C51 COMPILER V7.09 TEXT1 04/30/2009 21:34:49 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 #define ulong unsigned long
5 uchar i,j,count,m,f,s,key_number,key0,key1,key2,key3,key4,key5;
6 /**************子函数定义****************************/
7 void long_delay(void);
8 void short_delay(void);
9 void delay10ms(uchar);
10 void write7279(uchar,uchar);
11 uchar read7279(uchar);
12 void send_byte(uchar);
13 uchar receive_byte(void);
14
15 void keyunit(void); //按键及显示测试
16 void init_time0(void);//定时器赋初值函数
17 void display7279();//显示函数
18 void kongzhi();//进位控制函数
19
20 /**************端口初始化**************************/
21 sbit key=P3^4;
22 sbit dat=P3^5;
23 sbit clk=P3^6;
24 sbit cs=P3^7;
25 /***********7279指令初始化*************************/
26 #define DEC0DE0 0x80 //采用译码方式0
27 #define DEC0DE1 0xc8 //采用译码方式1
28 #define CMD_READ 0x15 //读键盘的数据指令
29 #define UNDEC0DE 0x90 //不译码
30 main()
31 {
32 1 init_time0();
33 1 while(1)
34 1 { kongzhi();
35 2 display7279();
36 2 keyunit();
37 2 }
38 1
39 1
40 1 }
41
42 /************************************************
43 7279写入函数
44 **********************************************/
45 void write7279(uchar cmd,uchar dta)
46 {
47 1 send_byte(cmd);
48 1 send_byte(dta);
49 1 }
50 /*************************************************
51 7279读取函数
52 **************************************************/
53 uchar read7279(uchar command)
54 {
55 1 send_byte(command);
C51 COMPILER V7.09 TEXT1 04/30/2009 21:34:49 PAGE 2
56 1 return(receive_byte());
57 1 }
58 /*************************************************
59 7279发送字节函数
60 ***************************************************/
61 void send_byte(uchar out_byte)
62 {
63 1 uchar i;
64 1 cs=0;
65 1 long_delay();
66 1 for(i=0;i<8;i++)
67 1 {
68 2 if(out_byte&0x80)
69 2 {
70 3 dat=1;
71 3 }
72 2 else
73 2 {
74 3 dat=0;
75 3 }
76 2 clk=1;
77 2 short_delay();
78 2 clk=0;
79 2 short_delay();
80 2 out_byte=out_byte*2;
81 2 }
82 1 dat=0;
83 1 }
84 /***************************************************
85 7279接受字节函数
86 ******************************************************/
87 uchar receive_byte(void)
88 {
89 1 uchar i,in_byte;
90 1 dat=1;
91 1 long_delay();
92 1 for(i=0;i<8;i++)
93 1 {
94 2 clk=1;
95 2 short_delay();
96 2 in_byte=in_byte*2;
97 2 if(dat)
98 2 {
99 3 in_byte=in_byte|0x01;
100 3 }
101 2 clk=0;
102 2 short_delay();
103 2 }
104 1 dat=0;
105 1 return(in_byte);
106 1 }
107 /***************************************************
108 7279长延迟函数
109 ****************************************************/
110 void long_delay(void)
111 {
112 1 uchar i;
113 1 for(i=0;i<0x30;i++);
114 1 }
115 /***************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -