📄 urat.lst
字号:
C51 COMPILER V7.50 URAT 12/13/2008 22:20:35 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE URAT
OBJECT MODULE PLACED IN URAT.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE URAT.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 ***************************************************************************
3 *
4 * (C) Copyright 2007,单片机初学者园地
5 * All Rights reserved.
6 *
7 *项目名称: 51单片机学习开发系统
8 *
9 *本文件名称:URAT.c
10 *
11 * 完成作者 : 单片机初学者 http://blog.ednchina.com/ahai0306/ qq:464976346
12 * 当前版本 : V1.0
13 * 完成日期 : 2007年5月1日
14 * 描 述 :
15 * 单片机上电后向串口数据0XAA,接收到数据后,然后向串口发送接收到的数据
16 * 使初学者领略使用中断进行数据通信,传输方式为RS485
17 *
18 ****************************************************************************
19 */
20
21
22 #include <reg52.h> //调用头文件(单片机内部的寄存器定义)
23
24 /******本段为硬件I/O口定义********/
25 sbit LED0 = P0 ^ 0; //KEY和发光管复用,请将4个跳线插到KEY端
26 sbit LED1 = P0 ^ 1;
27 sbit LED2 = P0 ^ 2;
28 sbit LED3 = P0 ^ 3;
29 sbit DIG0 = P0 ^ 4; //数码管位0
30 sbit DIG1 = P0 ^ 5; //数码管位1
31
32 //sbit BUZZ = P3 ^ 3; //蜂鸣器
33
34 sbit RS485_CON=P0 ^ 0; //485控制线
35
36
37 /**************************************************
38 ** 函数名称: dellay
39 ** 入口参数:h(unsigned int型)
40 ** 出口参数:无
41 ** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS
42 ****************************************************/
43 void dellay(unsigned int h)
44 {
45 1 while(h--); //0.01MS
46 1 }
47
48 unsigned char data2;
49
50 /************主程序**************/
51 main()
52 {
53 1 TMOD=0x20; //定时器1,方式2
54 1 SCON=0x50; //方式1,允许接收
55 1 PCON=0;
C51 COMPILER V7.50 URAT 12/13/2008 22:20:35 PAGE 2
56 1 TL1=0xfd; //波特率:9600,晶体:11.0592M
57 1 TH1=0xfd;
58 1 TR1=1; //启动定时器1
59 1 ES=1; //开串口中断
60 1 RS485_CON=0;//485 RECEIVE
61 1 EA=1;
62 1 LED0=0;
63 1 dellay(100);
64 1 data2=0xaa;
65 1 while(1)
66 1 {
67 2 dellay(10000);
68 2 RS485_CON=1;
69 2 SBUF=data2;
70 2 dellay(30);
71 2 }; //单片机待机
72 1 }
73
74 /**************************************************
75 ** 函数名称: uart0_ISR
76 ** 入口参数:无
77 ** 出口参数:无
78 ** 功能描述: 串口接收1字节数据,然后发送出去1字节,传输方式为RS485
79 ****************************************************/
80 void uart0_ISR (void) interrupt 4
81 {
82 1
83 1 // LED1=!LED1; //发送数据LED1闪烁
84 1 EA = 0;
85 1 if(TI) //接受
86 1 {
87 2 LED0=!LED0; //接收数据LED0闪烁
88 2 TI=0; //中断接收标志清除
89 2 RS485_CON=0;//485 SEND
90 2 }
91 1 else
92 1 {
93 2 data2=SBUF;
94 2 RI=0;
95 2 }
96 1
97 1
98 1 EA = 1;
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 87 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -