📄 text1.lst
字号:
C51 COMPILER V7.09 TEXT1 04/26/2009 21:30:37 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 /**************子函数定义****************************/
6 void long_delay(void);
7 void short_delay(void);
8 void delay10ms(uchar);
9 void write7279(uchar,uchar);
10 uchar read7279(uchar);
11 void send_byte(uchar);
12 uchar receive_byte(void);
13 void display7279();
14 void keyunit(void); //按键及显示测试
15
16 /************程序变量定义***************************/
17
18 uchar key_number,j,k,key0,key1,key2,key3,key4,key5,p;
-
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 UNDECODE 0x90 //不译码
30 #define RTL_CYCLE 0xa3 //循环左移
31 #define RTR_CYCLE 0xa2 //循环右移
32 #define RTL_RESET 0xa1 //左移
33 #define CMD_RESET 0xa4 //复位,所有的显示清除
34 #define CMD_TEST 0xbf //测试,将所有的LED点亮
35 #define RTR_UNCYL 0xa0 //右移
36 #define ACTCTL 0x98 //消隐
37 #define SEGON 0xe0 //段亮
38 #define SEGOFF 0xc0 //断灭
39 #define BLINKCTL 0x88 //闪烁
40
41 /****************************************************
42 主函数
43 主要功能:测试、复位、不译码显示、译码【0】【1】
44 显示、按键值测试并显示、移位、消隐、段显等
45 ***************************************************/
46 main()
47 {
48 1 while(1)
49 1 {
50 2 keyunit();
51 2
52 2 }
53 1 }
54 /************************************************
C51 COMPILER V7.09 TEXT1 04/26/2009 21:30:37 PAGE 2
55 7279写入函数
56 **********************************************/
57 void write7279(uchar cmd,uchar dta)
58 {
59 1 send_byte(cmd);
60 1 send_byte(dta);
61 1 }
62 /*************************************************
63 7279读取函数
64 **************************************************/
65 uchar read7279(uchar command)
66 {
67 1 send_byte(command);
68 1 return(receive_byte());
69 1 }
70 /*************************************************
71 7279发送字节函数
72 ***************************************************/
73 void send_byte(uchar out_byte)
74 {
75 1 uchar i;
76 1 cs=0;
77 1 long_delay();
78 1 for(i=0;i<8;i++)
79 1 {
80 2 if(out_byte&0x80)
81 2 {
82 3 dat=1;
83 3 }
84 2 else
85 2 {
86 3 dat=0;
87 3 }
88 2 clk=1;
89 2 short_delay();
90 2 clk=0;
91 2 short_delay();
92 2 out_byte=out_byte*2;
93 2 }
94 1 dat=0;
95 1 }
96 /***************************************************
97 7279接受字节函数
98 ******************************************************/
99 uchar receive_byte(void)
100 {
101 1 uchar i,in_byte;
102 1 dat=1;
103 1 long_delay();
104 1 for(i=0;i<8;i++)
105 1 {
106 2 clk=1;
107 2 short_delay();
108 2 in_byte=in_byte*2;
109 2 if(dat)
110 2 {
111 3 in_byte=in_byte|0x01;
112 3 }
113 2 clk=0;
114 2 short_delay();
115 2 }
116 1 dat=0;
C51 COMPILER V7.09 TEXT1 04/26/2009 21:30:37 PAGE 3
117 1 return(in_byte);
118 1 }
119 /***************************************************
120 7279长延迟函数
121 ****************************************************/
122 void long_delay(void)
123 {
124 1 uchar i;
125 1 for(i=0;i<0x30;i++);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -