📄 shumaguan2.lst
字号:
C51 COMPILER V8.02 SHUMAGUAN2 03/06/2009 00:27:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SHUMAGUAN2
OBJECT MODULE PLACED IN shumaguan2.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE shumaguan2.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********************************************************************
2 **文件名:shumaguan2.c **
3 **功能:实现键盘、数码管显示,实现计算器功能 **
4 **创建人:xingyuegu **
5 **创建日期:2006-9-10 **
6 **版本:1.0 **
7 **修改日期:2006-10-17 **
8 **版本:2.0 **
9 **********************************************************************/
10 #include <reg52.h>
11 #include <lcd.h>
12 #define uchar unsigned char
13 #define uint unsigned int
14
15 /**********************************************************************
16 变量定义
17 **********************************************************************/
18 unsigned char lastop;
19 unsigned long result=0;
20 unsigned long currentvalue=0,lastvalue=0;
21 code ksp[8]={0x8F,0x9F,0xAF,0xBF,0xCF,0xDF,0xEF,0xFF};
22 /****************************************************************************
23 数组功能:定义 按键按下时 P2口的数据
24 ****************************************************************************/
25 code key_code1[32]={142,206,174,238,158,222,190,254,
26 141,205,173,237,157,221,189,253,
27 139,203,171,235,155,219,187,251,
28 135,199,167,231,151,215,183,247};
29 unsigned char code keyvalue[]=
30 {
31 '7','8','9','/',
32 '4','5','6','*',
33 '1','2','3','-',
34 'o','0','=','+'
35 };
36 uchar code letter_logo[10][16]={
37 /*-- 文字: 0 --*/
38 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
39 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
40 /*-- 文字: 1 --*/
41 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
42 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
43 /*-- 文字: 2 --*/
44 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
45 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
46 /*-- 文字: 3 --*/
47 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
48 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
49 /*-- 文字: 4 --*/
50 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
51 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
52 /*-- 文字: 5 --*/
53 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
54 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
55 /*-- 文字: 6 --*/
C51 COMPILER V8.02 SHUMAGUAN2 03/06/2009 00:27:45 PAGE 2
56 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
57 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
58 /*-- 文字: 7 --*/
59 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
60 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
61 /*-- 文字: 8 --*/
62 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
63 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
64 /*-- 文字: 9 --*/
65 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
66 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00
67 };
68 /**********************************************************************
69 ** 函数申明 **
70 **********************************************************************/
71
72 void display(unsigned long);
73
74 unsigned char key_scan(void);
75 unsigned char transition(unsigned char);
76 bit isdigit(unsigned char );
77 unsigned int process(unsigned char );
78 uchar input();
79 /**********************************************************************
80 **函数功能:主函数 **
81 **参数:无 **
82 **返回:无 **
83 **********************************************************************/
84 void main()
85 {
86 1 unsigned char kvalue,temp;
87 1 Lcd_Initial();
88 1 Delay(500);
89 1 Lcd_Clear();
90 1 while(1)
91 1 {
92 2 temp=input();
93 2 kvalue=keyvalue[temp];
94 2 if(kvalue!=0)
95 2 result=process(kvalue);
96 2 kvalue=0;
97 2 if(result<=999999999)
98 2 {
99 3 display(result);
100 3 }
101 2 else
102 2 {
103 3 display(0);
104 3 }
105 2 }
106 1
107 1 }
108 /**********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -