📄 带eeprom的显示调试.lst
字号:
C51 COMPILER V8.08 確EEPROM的显示调试 08/29/2008 07:42:54 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 確EEPROM的显示调试
OBJECT MODULE PLACED IN 带EEPROM的显示调试.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 带EEPROM的显示调试.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "REG52.H"
2 #include "INTRINS.H"
3 #include "BITCTL.H"
4 #include "ABSACC.H"
5 //#include "WR_EEPROM_AT24C02_IIC.c"
6 #define uchar unsigned char
7 #define schar signed char
8 #define uint unsigned int
9 #define sint signed int
10
11 /*------------------在我们仪表上测试所添加的程序------------------------------*/
12 sbit WDT = P3^6;
13
14 #define WriteDeviceAddress 0xa0 //写驱动地址指令
15 #define ReadDeviceAddress 0xa1 //读驱动地址指令
16
17 //sbit AT24C02_SCL = 0xa4; //*****相当于sbit AT24C02_SCL = P2^4
18 //sbit AT24C02_SDA = 0xa5; //*****相当于sbit AT24C02_SDA = P2^5
19 sbit AT24C02_SCL = P1^5;
20 sbit AT24C02_SDA = P1^4;
21 sbit AT24C02_WP = P2^7;
22
23 /*--------------------显示和按键的硬件定义--------------------------------------*/
24 #define DA P0 //定义数码管段码输出端口
25 sbit DISCLK = P1^6; //数码管位选时钟脉冲管脚,上升沿有效
26 sbit DISDAT = P1^7; //数码管位选数据管脚
27 sbit KEYIN = P2^6; //按键扫描输入端,高电平有效
28 uchar code SCNT = 2; //按键短按防抖值
29 uchar code LCNT = 250; //按键长按界限值
30
31 /*--------------------显示和按键的全局变量-------------------------------------*/
32 uchar bdata TempBitByte; //临时通用可位寻址的字节(按键扫描程序中用到)
33 sbit TempBit = TempBitByte^0; //定义临时通用位名称 (按键扫描程序中用到)
34 uchar ucKeyCnts[5]; //按键按下计数时间变量*****(此处设有5个按键)
35 uchar KeyThis;
36 uchar KeySFlag; //按键短按有效标志字节,高电平有效
37 uchar KeyLFlag; //按键短按有效标志字节,高电平有效
38 uchar idata MenuId=1; //菜单ID
39 uchar idata MenuStFlag=0; //进入菜单设置项标志字节,1表示进入,0表示未进入
40 float idata MenuTFloat; //菜单float临时设置值
41 sint idata MenuTInt; //菜单sint临时设置值
42 schar bdata MenuTChar; //菜单schar临时设置值
43 schar idata MenuTParaDot; //菜单设置值的小数点位数
44 uchar idata RomAddr; //*****(可改为局部变量)在EEPROM上菜单参数存储地址
45 uchar idata MenuSelWei; //设置参数时数码管位选,0为最末位
46 uchar idata MenuSMGNum[4]; //存储数字转化后的数码管译码
47 uchar *pMenuSMG1; //最终送到数码管显示的数码管译码地址
48 uchar *pMenuSMG2; //最终送到数码管显示的数码管译码地址(在单点表中没用到)
49 uchar idata key; //按键扫描处理后的按键值*****(此处低5位对应的是5个短按键标志,^6:LongSET;^5:LongQuit;^
-4:SET;^3:SHIFT;^2:UP;^1:DOWN;^0:QUIT.)
50
51 /*-------------------数字对应的数码管码表格------------------------*/
52 uchar code table_NUM[10]= //0到9的数码管译码 (共阳极)
53 {
54 0xC0,/*0*/
C51 COMPILER V8.08 確EEPROM的显示调试 08/29/2008 07:42:54 PAGE 2
55 0xF9,/*1*/
56 0xA4,/*2*/
57 0xB0,/*3*/
58 0x99,/*4*/
59 0x92,/*5*/
60 0x82,/*6*/
61 0xF8,/*7*/
62 0x80,/*8*/
63 0x90,/*9*/
64 };
65 /*------------------菜单显示名对应数码管码----------------------*/
66 uchar code SMG[7][4] = //各菜单对应的数码管译码 (共阳极)
67 {
68 {0x8C,/*P*/
69 0x88,/*A*/
70 0x92,/*S*/
71 0x92},/*S*/
72 {0x8C,/*P*/
73 0x88,/*A*/
74 0xAF,/*r*/
75 0xF9},/*1*/
76 {0x8C,/*P*/
77 0x88,/*A*/
78 0xAF,/*r*/
79 0xA4},/*2*/
80 {0x8C,/*P*/
81 0x88,/*A*/
82 0xAF,/*r*/
83 0xB0},/*3*/
84 {0x92,/*S*/
85 0x86,/*E*/
86 0x87,/*t*/
87 0xF9},/*1*/
88 {0x92,/*S*/
89 0x86,/*E*/
90 0x87,/*t*/
91 0xA4},/*2*/
92 {0x80,/*8*/
93 0x80,/*8*/
94 0x80,/*8*/
95 0x80}/*8*/
96
97 };
98 /*--------------------位变量对应的on和off显示的数码管码---------------*/
99 uchar code SMGBIT[2][4] = //存储'位'的数码管译码 (共阳极)
100 {
101 {0xFF,/**/
102 0xA3,/*0*/
103 0x8E,/*F*/
104 0x8E,/*F*/}, //'off'
105 {0xFF,/**/
106 0xFF,/**/
107 0xA3,/*0*/
108 0xAB,/*N*/} //'on'
109 };
110
111 /*--------------暂时不用--------------------
112 //参数test
113 uint code pass=1234;
114 uint idata set1=10;
115 uint idata set2=100;
116 uint idata par2=0x55;
C51 COMPILER V8.08 確EEPROM的显示调试 08/29/2008 07:42:54 PAGE 3
117 uchar idata par3=0xff;
118 uint idata KONG;
119 --------------------------------------------*/
120
121 /*-------------菜单结构体定义---------------*/
122 struct STMENU //21个字节
123 {
124 uchar ucMenuId; //菜单id
125 uchar ucMenuType; //菜单类型(0为不带设置项的菜单,1为带位设置项的菜单,2为带字的设置项菜单,3为带双字的
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -