📄 main.lst
字号:
C51 COMPILER V7.02a MAIN 01/23/2006 10:15:24 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 /*==============================================================================================
3 Copyright (C), 2005, RegalCyber Tech. Co., Ltd.
4 File name: main.C
5 Author: Zhangui Duan Version: v1.3 Date: 2005-3-30
6
7 Description:
8 此程序文件主要是完成接收读卡器的寻卡信号,再发送四字节的卡号
9 1,主程序
10 2,初始化CPU,I/O口,串口,RTC,SPI等
11 Other Description:
12 由 Keil C51 V7.05 编译通过
13
14 Function List:
15 1. 主程序
16 void main(void);
17 2, 初始化程序
18 void Init(void);
19
20 History:
21 1. Date: 2005-6-12
22 Author:Zhangui Duan
23 Modification: 由于卡号要与普通的IC卡兼容,将卡号设置为4个字节,所以发送的有效数据宽度
24 由原来的40位改为48位(1字节前置码+4字节卡号+1字节校验字节),同时发送缓冲区直接设置
25 为数组,字节长度为6字节
26
27 ==============================================================================================*/
28 #include "main.h"
29 #include <stdio.h>
30
31 //#define DEBUG 1
32
33 /**********************************************************************************************
34 Function: main
35 Description: 定时休眠,通过RTC唤醒,
36 判断收到寻卡信号,发送卡号,并判断是否出了此区域,
37 Calls:
38 Init();
39 Init_Receiver();
40 Transmitter();
41 Delayms();
42 Receiver();
43 Called By:
44 Input:
45 Output:
46 Return:
47 Others:
48 **********************************************************************************************/
49 void main(void)
50 {
51 1 //unsigned char _set_card;
52 1 //_set_card=Config();//接收配置读卡器发送过来的卡号,并返回卡号
53 1 //RW_Flash(_set_card);//存储或者是从eeprom中取出卡号和配置参数
54 1 Init();
55 1 Init_Receiver(); //接收初始化
C51 COMPILER V7.02a MAIN 01/23/2006 10:15:24 PAGE 2
56 1 TxBuf[0]=TransmitCardNo;//前置码
57 1 TxBuf[1]=1; TxBuf[2]=2;TxBuf[3]=3;TxBuf[4]=4;TxBuf[5]=5;TxBuf[6]=6;TxBuf[7]=7;TxBuf[8]=8;TxBuf[9]=9;TxBuf
-[10]=9;
58 1 TxBuf[11]=8;TxBuf[12]=7;
59 1 TxBuf[13]=TxBuf[1]^TxBuf[2]^TxBuf[3]^TxBuf[4]^TxBuf[5]^TxBuf[6]^TxBuf[7]^TxBuf[8]^TxBuf[9]^TxBuf[10]^TxBu
-f[11]^TxBuf[12]; //校验字节
60 1
61 1 // WriteRTC(TIME/TICK); //设置唤醒定时器
62 1 WriteRTC(300);
63 1 while(1)
64 1 {
65 2 //----------------------------------------------
66 2 //发送卡号
67 2 //----------------------------------------------;
68 2 //REGX_CTRL = 0x0b; //关闭唤醒定时器
69 2 //while(REGX_CTRL & 0x10) // Wait for the interface to be ready
70 2 // ;
71 2 #ifdef DEBUG
LED4=0;
PutChar(0x55);
Delayms(1);
LED4=1;
#else
77 2 Transmitter(&TxBuf[0]);//发送卡号
78 2 #endif
79 2 Delay100us(200);
80 2 CK_CTRL=0x03;//省电模式
81 2 }
82 1 }
83
84 /*************************************************
85 Function: RW_Flash
86 Description: 参数配置
87 1,将配置参数存入FLASH中
88 2,从FLASH中读出配置参数
89 Calls: void EEInit(void);
90 unsigned char EERead(unsigned int addr);
91 void EEWrite(unsigned int addr, unsigned char b);
92 Called By: void main(void)
93 Input: set_card
94 根据此输入值判断是否有进行参数配置
95 Output:
96 Return:
97 Others:
98 *************************************************/
99 void RW_Flash(unsigned char set_card)
100 {
101 1 unsigned char m;
102 1 unsigned int addr_card,config_addr;
103 1 EEInit(); //eeprom 初始化
104 1 config_addr=Addr_Cardno+4;//初始化配置参数存放地址
105 1 //--------------------------------------------//
106 1 //如果需要配置,则将卡号和配置参数写到FLASH中
107 1 if(set_card)
108 1 {
109 2 if(!((RxBuf[1]==0)&&(RxBuf[2]==0)&&(RxBuf[3]==0)&&(RxBuf[4]==0)))
110 2 {
111 3 //如果4字节卡号数据全部为0,则发送过来的卡号数据就不需要存储到FLASH中
112 3 for(m=1,addr_card=Addr_Cardno;m<5;m++,addr_card++)
113 3 {
114 4 EEWrite(addr_card, RxBuf[5-m]); //将4字节卡号参数写到FLASH中
115 4 }
C51 COMPILER V7.02a MAIN 01/23/2006 10:15:24 PAGE 3
116 3 }
117 2 EEWrite(config_addr, RxBuf[5]);//将配置参数写到FLASH中
118 2 EEWrite((config_addr+1), RxBuf[6]);//将时间参数写到FLASH中
119 2 }
120 1 //--------------------------------------------//
121 1 //从FLASH中读出4字节的卡号以及配置参数
122 1 for(m=1,addr_card=Addr_Cardno;m<5;m++,addr_card++)
123 1 {
124 2 TxBuf[m]=EERead(addr_card); //读取卡号
125 2 }
126 1 tconf.buf[13]=EERead(config_addr); //读取发送配置参数
127 1 rconf.buf[13]=tconf.buf[13]; //读取接收配置参数
128 1 TIME=EERead(config_addr+1); //读取时间参数
129 1 }
130
131 /*************************************************
132 Function: Config
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -