📄 shumaguan4.lst
字号:
C51 COMPILER V8.02 SHUMAGUAN4 12/01/2006 21:14:03 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SHUMAGUAN4
OBJECT MODULE PLACED IN shumaguan4.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shumaguan4.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********************************************************************
2 **文件名:shumaguan4.c **
3 **功能:实现键盘(或串口输入)、数码管显示,实现计算器功能 **
4 **创建人:xingyuegu **
5 **创建日期:2006-9-10 **
6 **版本:1.0 **
7 **修改日期:2006-10-17 **
8 **版本:2.0 **
9 **修改日期:2006-10-20 **
10 **版本:3.0 **
11 **修改日期:2006-10-27 **
12 **版本:4.0 **
13 **********************************************************************/
14
15 #include <reg51.h>
16
17 #define uchar unsigned char
18 #define uint unsigned int
19
20 /**********************************************************************
21 ** 函数申明 **
22 **********************************************************************/
23
24 void delay(unsigned int);
25 void display(int );
26 unsigned char key_scan(void);
27 unsigned char transition(unsigned char);
28 void time_set();
29 void time0_int();
30 bit isdigit(unsigned char );
31 unsigned int process(unsigned char );
32 void init(void);
33 void Int_UART(void);
34
35
36 /**********************************************************************
37 ** 变量定义 **
38 **********************************************************************/
39 unsigned int result=0;
40 unsigned int currentvalue=0,lastvalue;
41 unsigned char lastop;
42 volatile bit flag=0;
43 unsigned char keyvalue;
44 uchar *TX232,*RX232;
45 int code num_tab1[4]=
46 {0x88,0x84,0x82,0x81}
47 ;
48 int code num_tab2[11]=
49 {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}
50 ;
51 unsigned char code keypadvalue[][4]={
52 {'7','8','9','/'},
53 {'4','5','6','*'},
54 {'1','2','3','-'},
55 {'o','0','=','+'}
C51 COMPILER V8.02 SHUMAGUAN4 12/01/2006 21:14:03 PAGE 2
56 };
57 /**********************************************************************
58 **函数功能:主函数 **
59 **参数:无 **
60 **返回:无 **
61 **********************************************************************/
62 void main()
63 {
64 1
65 1 uchar *str="Please collect operation mode :1 (pc) ,2 (not for pc)\n";
66 1 init();
67 1 Int_UART();
68 1 TX232=str;
69 1 SBUF=*TX232;
70 1 while(1)
71 1 {
72 2 if(keyvalue=='1')
73 2 {
74 3 while(1)
75 3 {
76 4
77 4 if(flag)
78 4 {
79 5
80 5 keyvalue=key_scan();
81 5 init();
82 5 flag=0;
83 5 //if(keyvalue!=0)
84 5 result=process(keyvalue);
85 5 }
86 4 if(result<=9999)
87 4 {
88 5 display(result);
89 5
90 5 }
91 4 else
92 4 {
93 5 display(0);
94 5
95 5 }
96 4 }
97 3 }
98 2 else if(keyvalue=='2')
99 2 {
100 3 keyvalue=0;
101 3 while(1)
102 3 {
103 4 if(flag)
104 4 {
105 5 init();
106 5 flag=0;
107 5 //if(keyvalue!=0)
108 5 result=process(keyvalue);
109 5 }
110 4 if(result<=9999)
111 4 {
112 5 display(result);
113 5
114 5 }
115 4 else
116 4 {
117 5 display(0);
C51 COMPILER V8.02 SHUMAGUAN4 12/01/2006 21:14:03 PAGE 3
118 5
119 5 }
120 4 }
121 3 }
122 2
123 2
124 2 }
125 1
126 1 }
127
128 /**********************************************************************
129 **函数功能:初始化函数(包括中断初始化) **
130 **参数:无 **
131 **返回:无 **
132 **********************************************************************/
133 void init(void)
134 {
135 1 EA=1;
136 1 EX0=1;
137 1 IT0=1;
138 1 P1=0xf0;
139 1 }
140 /**********************************************************************
141 **函数功能:初始化串口函数(包括波特率设置) **
142 **参数:无 **
143 **返回:无 **
144 **********************************************************************/
145 void Int_UART(void)
146 //功能: 串口初始化
147 {
148 1 SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
149 1 TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
150 1 PCON |= 0x80 ; //SMOD=1;
151 1 TH1 = 0xFA ; //Baud:4800 fosc=11.0592MHz
152 1 IE |= 0x90 ; //Enable Serial Interrupt
153 1 TR1 = 1 ; // timer 1 run
154 1 }
155 /**********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -