📄 uartcom1.lst
字号:
C51 COMPILER V7.09 UARTCOM1 12/05/2005 10:23:19 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE UARTCOM1
OBJECT MODULE PLACED IN UARTCom1.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE UARTCom1.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*********************************************************************/
3 /* 模 块 名:单片机(C51) 文件名:uart_com1.c */
4 /* 提交日期:2005年11月16日 作 者:金雨和 */
5 /* 版 本:V1.0 --Copyright(c) 2005-2006中太视讯技术有限公司 */
6 /* 描 述:单片机(C51)串口1处理程序 */
7 /* 修改记录: */
8 /* 日 期 版本 修改人 修改内容 */
9 /* 1. */
10 /*********************************************************************/
11
12 #include <Reg935.h>
13 #include "uart.h"
14 #include "string.h"
15
16 #define PLEEN PLLEN
17
18 extern unsigned char xdata g_ucI2CSendBuf[MAX_I2CDATALEN]; //IIC数据缓存
19 extern unsigned char xdata g_ucI2CSendBuf_Len; //IIC数据缓存内容长度
20 extern unsigned char xdata g_ucI2CSendBuf_offset; //IIC缓存数据读取当前位移
21
22 /*******************************************************************
23 ** 函 数 名: main()
24 ** 输 入: 无
25 ** 输 出: 无
26 ** 描 述: C51主循环函数,红外接收检测及串口收发相应处理。
27 ** 全局变量:
28 ** g_workFlag -- 工作灯状态
29 ** 调用模块:
30 ** timer1_Init -- 定时器1初始化
31 ** SendDataToBsp -- IIC发送中断给BSP15
32 ** 被调模块: 无
33 ** 作 者:
34 ** 创建日期: 2005年11月16日
35 ** 修 改:
36 ** 日 期 版本 修改人 修改内容
37 ** 1.
38 ********************************************************************/
39 void main()
40 {
41 1 //使能中断
42 1 EA = 1;
43 1 TMOD = 0;
44 1 TAMOD = 0;
45 1
46 1 IICInit();
47 1 // timer0_Init();
48 1 timer1_Init();
49 1 IRRecvInit(); //红外接收初始化
50 1
51 1 // P0M1=P0M2=0;
52 1 // P1M1=P1M2=0; //P0,P1口设置为准双向
53 1 P1M1 &= 0xfc;
54 1 P1M2 &= 0xfc;
55 1 //P2M1=P2M2=0xc0; //P2.6,P2.7设置为开漏
C51 COMPILER V7.09 UARTCOM1 12/05/2005 10:23:19 PAGE 2
56 1 // CCU_Init(); //CCU模块初始化,用以产生38KHz调制信号
57 1 UART1_Init();
58 1 UART2_Init();
59 1
60 1 while(1)
61 1 {
62 2 OnIRRecv(); //检测到正确的红外接收码后,通过IIC发送?
63 2 Delay(10);
64 2 }
65 1 }
66
67
68 /*******************************************************************
69 ** 函 数 名: UART1SendData()
70 ** 输 入:
71 ** pbuf -- 发送数据缓冲
72 ** len -- 发送数据长度
73 ** 输 出: 无
74 ** 描 述: 通过UART连续发送字节数据
75 ** 注意:此程序采用查询方式发送。
76 ** 全局变量: 无
77 ** 调用模块: 无
78 ** 被调模块:
79 ** main -- 主循环处理函数
80 ** 作 者: 金雨和
81 ** 创建日期: 2005年11月16日
82 ** 修 改:
83 ** 日 期 版本 修改人 修改内容
84 ** 1.
85 ********************************************************************/
86 void UART1SendData(uchar *pbuf, uchar len)
87 {
88 1 uchar i;
89 1 TI=0;
90 1 for(i=0; i<len; i++)
91 1 {
92 2 SBUF=pbuf[i];
93 2 while(!TI);
94 2 TI=0;
95 2 }
96 1 }
97
98
99 /*******************************************************************
100 ** 函 数 名: CCU_Init()
101 ** 输 入:
102 ** pbuf -- 用于接收数据的缓冲区首地址
103 ** 输 出: 无
104 ** 描 述: 通过UART连续接收字节数据
105 ** 注意:此程序采用查询方式进行接收。由于采取半双工通信,所以接收
106 ** 数据之前要打开接收允许,接收完毕之后要关闭接收允许。
107 ** 全局变量: 无
108 ** 调用模块: 无
109 ** 被调模块:
110 ** main -- 主循环处理函数
111 ** 作 者: 金雨和
112 ** 创建日期: 2005年11月16日
113 ** 修 改:
114 ** 日 期 版本 修改人 修改内容
115 ** 1.
116 ********************************************************************/
117 void UART1RcvData(uchar *pbuf)
C51 COMPILER V7.09 UARTCOM1 12/05/2005 10:23:19 PAGE 3
118 {
119 1 uchar i=0;
120 1 REN=1;
121 1 FE=0;
122 1 RI=0;
123 1 //for(i=0;i<16;i++)
124 1 {
125 2 while(!RI);
126 2 RI=0;
127 2 pbuf[i]=SBUF;
128 2 }
129 1 REN=0;
130 1 }
131
132
133 /*******************************************************************
134 ** 函 数 名: CCU_Init()
135 ** 输 入: 无
136 ** 输 出: 无
137 ** 描 述: CCU模块初始化,使OCA(P2.7)输出38KHz,50%占空比的PWM波,
138 ** 作为红外线的载波
139 ** 使用6MHz晶振时,CCU频率=((6000000/2)/6)*32=16MHz
140 ** 定时器重装值=CCU频率/红外线载频=16000000/38000=421=0x1a5
141 ** 全局变量: 无
142 ** 调用模块: 无
143 ** 被调模块:
144 ** main -- 主循环处理函数
145 ** 作 者: 金雨和
146 ** 创建日期: 2005年11月16日
147 ** 修 改:
148 ** 日 期 版本 修改人 修改内容
149 ** 1.
150 ********************************************************************/
151 void CCU_Init()
152 {
153 1 //TOR2H=0x01; //定时器重装值
154 1 //TOR2L=0xa5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -