?? 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 + -