📄 main_b.lst
字号:
C51 COMPILER V7.08 MAIN_B 09/27/2006 09:14:00 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN_B
OBJECT MODULE PLACED IN MAIN_B.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAIN_B.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * 标题: 北京蓝海微芯LJD-SY-5200单片机开发系统演示程序 *
3 * 文件: MAIN.C *
4 * 日期: 2006-8-9 *
5 * 版本: 1.0 *
6 * 作者: 蓝海微芯 *
7 * 网站: http://www.ljd-2008.com *
8 ********************************************************************************
9 * 描述: *
10 * 模拟房间购电,把IC卡内的金额写到24C02中 *
11 * *
12 * *
13 ********************************************************************************
14 * 【版权】 Copyright(C)微芯科技 http://www.bluemcu.com All Rights Reserved *
15 * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
16 *******************************************************************************/
17 #include <reg51.h> /*=== 头文件包含 ===*/
18 #include <absacc.h>
19 #include <intrins.h>
20 #include <IC_CARD_B.h>
21
22 #define uchar unsigned char
23 #define uint unsigned int
24
25 uchar pdata hz_ts1[14]="电量不足请购电";
26 uchar pdata hz_ts2[15]="剩余电量:XXX度";
27 uchar pdata hz_ts3[28]="购电金额超过卡内余额无法购电";
28 uchar pdata hz_ts4[8 ]="购电成功";
29 uchar pdata hz_ts5[13]="购电量:XXXX度";
30 uchar pdata hz_ts6[15]="卡内余额:XXXX元";
31 uchar pdata hz_ts7[12]=" 插卡有误 ";
32 uchar pdata hz_ts8[14]=" 请重新插卡 ";
33 uchar pdata hz_ts9[15]="请输入购电金额:";
34 uchar pdata hz_ts10[23]="输入金额太大 请重新输入";
35
36 uchar count;
37 bit flag_count;
38 uint K;
39 uchar i;
40 uint N;
41 uchar k0;
42 uchar k1;
43 uchar k2;
44 uchar n0;
45 uchar n1;
46 uchar n2;
47 uchar EOC;
48
49 uchar read_num[2];
50 uchar RST_CODE[4]={0xA2,0x13,0x10,0x91};
51 /********************************************************************
52 函 数 名:delay_1s()
53 功 能:延时1s
54 说 明:
55 调 用:
C51 COMPILER V7.08 MAIN_B 09/27/2006 09:14:00 PAGE 2
56 入口参数:
57 出口参数:
58 ***********************************************************************/
59 void delay_1s(void)
60 {
61 1 uint p;
62 1 uint r;
63 1
64 1 for(r=0;r<100;r++)
65 1 for(p=0;p<1500;p++);
66 1 }
67 /********************************************************************
68 函 数 名:buy_power()
69 功 能:购买电量调用子程序模块
70 说 明:
71 调 用:
72 入口参数:
73 出口参数:
74 ***********************************************************************/
75 void buy_power(void)
76 {
77 1 EOC=rdsm_ec(); /*读错误计数器*/
78 1 EOC=verifi(); /*校验密码*/
79 1 EOC=rdsm_ec();
80 1 ICDATA[0]=N;
81 1 wrmm(); /*把余额写入到IC卡*/
82 1 read_num[0]=K+M;
83 1 write_iic_data(read_num,0,1); /*把剩余电量写入到24C02中*/
84 1 initial_GLCD();
85 1 command_GLCD(0x80);
86 1 for(i=0;i<8;i++)
87 1 {
88 2 write_GLCD(hz_ts4[i]); /*显示购电成功*/
89 2 }
90 1 delay_1s();
91 1 delay_1s();
92 1 initial_GLCD();
93 1 command_GLCD(0x80);
94 1 for(i=0;i<7;i++)
95 1 {
96 2 write_GLCD(hz_ts5[i]); /*显示购电量*/
97 2 }
98 1 m1=M/100;
99 1 m2=M%100/10;
100 1 m3=M%100%10;
101 1 M=0;
102 1 write_GLCD(ds_num[m1]);
103 1 write_GLCD(ds_num[m2]);
104 1 write_GLCD(ds_num[m3]);
105 1 write_GLCD(hz_ts5[11]);
106 1 write_GLCD(hz_ts5[12]);
107 1 delay_1s();
108 1 delay_1s();
109 1 initial_GLCD();
110 1 command_GLCD(0x80);
111 1 for(i=0;i<9;i++)
112 1 {
113 2 write_GLCD(hz_ts6[i]); /*显示卡内余额*/
114 2 }
115 1 n0=N/100;
116 1 n1=N%100/10;
117 1 n2=N%100%10;
C51 COMPILER V7.08 MAIN_B 09/27/2006 09:14:00 PAGE 3
118 1 write_GLCD(ds_num[n0]);
119 1 write_GLCD(ds_num[n1]);
120 1 write_GLCD(ds_num[n2]);
121 1 write_GLCD(hz_ts6[13]);
122 1 write_GLCD(hz_ts6[14]);
123 1 }
124 /********************************************************************
125 函 数 名:no_enough()
126 功 能:提示卡内余额不足
127 说 明:
128 调 用:
129 入口参数:
130 出口参数:
131 ***********************************************************************/
132 void no_enough(void)
133 {
134 1 initial_GLCD();
135 1 command_GLCD(0x80);
136 1 for(i=0;i<14;i++)
137 1 {
138 2 write_GLCD(hz_ts3[i]); /*提示卡内余额不足*/
139 2 }
140 1 command_GLCD(0x90);
141 1 for(i=14;i<28;i++)
142 1 {
143 2 write_GLCD(hz_ts3[i]);
144 2 }
145 1 }
146 /********************************************************************
147 函 数 名:IC_right()
148 功 能:判断插卡正确后调用子程序模块
149 说 明:
150 调 用:
151 入口参数:
152 出口参数:
153 ***********************************************************************/
154 void IC_right(void)
155 {
156 1 initial_GLCD();
157 1 command_GLCD(0x80);
158 1 for(i=0;i<15;i++)
159 1 {
160 2 write_GLCD(hz_ts9[i]); /*提示输入购电金额*/
161 2 }
162 1 command_GLCD(0x90);
163 1 while(flag_enter==0); /*等待确认按键按下*/
164 1 input_money(); /*获取由键盘输入的购电金额*/
165 1 flag_cnt=0;
166 1 flag_enter=0; /*读主存储区*/
167 1 N=ICDATA[0];
168 1 while(M>255) /*当购电金额超过255时提示,输入购电金额太大*/
169 1 {
170 2 initial_GLCD();
171 2 command_GLCD(0x80);
172 2 for(i=0;i<13;i++)
173 2 {
174 3 write_GLCD(hz_ts10[i]);
175 3 }
176 2 command_GLCD(0x90);
177 2 for(i=13;i<23;i++)
178 2 {
179 3 write_GLCD(hz_ts10[i]);
C51 COMPILER V7.08 MAIN_B 09/27/2006 09:14:00 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -