📄 test.lst
字号:
C51 COMPILER V7.50 TEST 03/30/2006 09:07:30 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN Test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Test.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #define __SRC
2 #include "Config.h"
3 #undef __SRC
4
5 #define PWR_ON 0
6 #define PWR_OFF 1
7 #define MOTO_FORW 1 /* 01 */
8 #define MOTO_BACK 2 /* 10 */
9 #define MOTO_STOP 3 /* 11 */
10
11 /************************************************************/
12 #define E2ADRSYS 0x00 /* 本系统于EEPROM中地址 */
13 uchar idata ADDRESS; /**/
14 uchar idata URT_buf; /* 串口接收数据缓冲器 */
15 uchar idata URT_cnt; /* 数据接收计数器 */
16 uchar idata URT_rcv,URT_cmd,URT_len;
17 /************************************************************/
18 uchar idata wrrdadr; /* EEPROM操作(读/写)首地址 */
19 uchar idata Databuf[16]; /* 16字节数据存储缓冲区 */
20 #define BUFADR Databuf[0] /* 系统地址 */
21 #define BUFPTST Databuf[1] /* 操作端口/状态 */
22 #define BUFHOUR Databuf[2] /* 时间:时 */
23 #define BUFMINT Databuf[3] /* 时间:分 */
24 /*
25 uchar idata TX_ADDRESS[4]={0x50,0x51,0x52,0x53}; /* RF接收方地址 */
26
27 uchar idata TX_ADDRESS[4]={0xA0,0xA1,0xA2,0xA3}; /* RF接收方地址 */
28 /************************************************************/
29 uchar idata tim_cnt; /* 定时计数器 */
30 uchar idata tim_scd; /* 秒计数器 */
31 uchar idata tim_mnt;
32 uchar idata tim_hur;
33 bit bdata Flag_scd; /* 1秒标志位 */
34
35 /* 波特率发生器的初值fosc=7.3728MHz/(2*DIVM)=1.8432MHz */
36 /* 设置串口波特率 = Fosc / ((BRGR1,BRGR0)+16) */
37 #define BRGR1_DATA 0x00 /* 9600BPS = 00B0H */
38 #define BRGR0_DATA 0xB0 /* 2400BPS = 1DF0H */
39
40 /*==========================================================*/
41 void Spi_init(void);
42 void Config905(void); /* 配置nRF905 */
43 void ChangeMode(uchar num); /* RF模式配置 */
44 void RF905_Write(uchar RFcmd,uchar *RFdata); /* 配置nRF905写地址/数据 */
45 void RF905_Read(uchar RFcmd,uchar *RFdata); /* 配置nRF905读地址/数据 */
46 void Delayus(uchar xus);
47
48 /*==========================================================*/
49 /* 功能:查询方式对地址范围为0x00~0xFF之间的EEPROM字节编程(写) */
50 /* 入口: ptr,写入数据首地址
51 /* e2adr,写入EEPROM首地址
52 /* length,写入数据长度
53 /* 出口: 无。
54 /************************************************************/
55 void eeprom_write(uchar e2adr,uchar *ptr,uchar length)
C51 COMPILER V7.50 TEST 03/30/2006 09:07:30 PAGE 2
56 {
57 1 uchar i,j;
58 1 i=j=0;
59 1 for(i=0;i<length;i++)
60 1 {
61 2 j=0;
62 2 DEECON = 0;
63 2 DEEDAT = ptr[i];
64 2 DEEADR = e2adr;
65 2 while(j==0)j=DEECON&0x80;
66 2 e2adr++;
67 2 }
68 1 }
69
70 /*==========================================================*/
71 /* 功能:查询方式对地址范围为0x00~0xFF之间的EEPROM字节编程(读) */
72 /* 入口: ptr,写入数据首地址
73 /* e2adr,写入EEPROM首地址
74 /* length,写入数据长度
75 /* 出口: 无。
76 /************************************************************/
77 void eeprom_read(uchar e2adr,uchar *ptr,uchar length)
78 {
79 1 uchar i,j;
80 1 i=j=0;
81 1 for(i=0;i<length;i++)
82 1 {
83 2 j=0;
84 2 DEECON = 0;
85 2 DEEADR = e2adr;
86 2 while(j==0)j=DEECON&0x80;
87 2 ptr[i] = DEEDAT;
88 2 e2adr++;
89 2 }
90 1 }
91
92 void uart_init(void)
93 {
94 1 SCON=0x50; /* 串行口为方式1 SM2=0,REN=1 */
95 1 /* PCON|=0x40; /* SMOD0=1,使用FE标志位(与SSTAT.3是同一标志) */
96 1 PCON=0x00;
97 1 SSTAT=0x20; /* 禁止双缓冲使能,中断独立,每发送一字节产生一次中断 */
98 1 /* 设置串口波特率:Fosc / ((BRGR1,BRGR0)+16) */
99 1 BRGCON=0x00; /* 关波特率发生器 */
100 1 BRGR1=BRGR1_DATA;
101 1 BRGR0=BRGR0_DATA;
102 1 BRGCON=0x03; /* 打开串口波特率发生器,使用串口波特率发生器 */
103 1 ES=1; /* 允许接收中断 */
104 1 EST=0; /* 禁止发送中断 */
105 1 RI=0;
106 1 TI=0;
107 1 }
108
109 /*=================================================*/
110 /*发送数据子程序*/
111 void mscom_snd(uchar *ptr,uchar length)
112 {
113 1 uchar i;
114 1 for(i=0;i<length;i++)
115 1 { SBUF=ptr[i];
116 2 while(TI==0);
117 2 TI=0;
C51 COMPILER V7.50 TEST 03/30/2006 09:07:30 PAGE 3
118 2 }
119 1 }
120
121 void mscom_byte(uchar sndat)
122 {
123 1 SBUF=sndat;
124 1 while(TI==0);
125 1 TI=0;
126 1 }
127 /**************************************************/
128 /*********** 串口(Rx)中断服务子程序 *************/
129 void Mscom_rcv(void) interrupt 4 using 1
130 {
131 1 if(RI==1)
132 1 {
133 2 RI=0;
134 2 URT_rcv=SBUF;
135 2 mscom_byte(URT_rcv);
136 2 }/* 串口接收程序结束 */
137 1 }/* 串口中断程序结束 */
138
139
140 /****************************************************************/
141 void Ptimer1(void) interrupt 3 using 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -