📄 sy_003_1.lst
字号:
C51 COMPILER V7.06 SY_003_1 09/25/2008 14:58:33 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SY_003_1
OBJECT MODULE PLACED IN SY_003_1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE SY_003_1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*******************************************************************************
2 *
3 * File : SY_003_1.c
4 * Date : 2007-09-24
5 * Version : 1.0
6 * Powerd by : shenyae86 QQ:184676957
7 * 中北大学信息与通信工程学院 沈阳
8 ********************************************************************************
9 * Descriptoon:
10 * 串口通信 数码管显示发送和接受的数据 串口波特率9600
11 * 单片机将上位机发来的信息通过数码管低两位显示出来后再将之取反送回上位机,取反
12 * 后的数据通过数码管高两位显示
13 * 适用于CC100C
14 * 产品网站 http://www.ccnuc.cn 传诚科技
15 *
16 *******************************************************************************/
17 #include <REG51.H>
18 #include <intrins.h>
19 #define uchar unsigned char
20 const uchar LedCode[]={
21 0xC0,/*0*/
22 0xF9,/*1*/
23 0xA4,/*2*/
24 0xB0,/*3*/
25 0x99,/*4*/
26 0x92,/*5*/
27 0x82,/*6*/
28 0xF8,/*7*/
29 0x80,/*8*/
30 0x90,/*9*/
31 0x88,/*A*/
32 0x83,/*b*/
33 0xC6,/*C*/
34 0xA1,/*d*/
35 0x86,/*E*/
36 0x8E,/*F*/};//0-F off
37 uchar dis_digit=0xfe;
38 uchar data dis_buf[8];
39 uchar data dis_index;
40 void delay()
41 {
42 1 uchar i = 0;
43 1 uchar j = 0;
44 1 for (j=0;j<255;j++)
45 1 {
46 2 for (i=0; i<250; i++);
47 2 }
48 1 }
49 void ISRSER() interrupt 4 using 3 //串口中断
50 {
51 1 uchar a;
52 1 if (RI)
53 1 {
54 2 RI=0;
55 2 a=SBUF;
C51 COMPILER V7.06 SY_003_1 09/25/2008 14:58:33 PAGE 2
56 2 dis_buf[2] = LedCode[a/16]; // 第一位
57 2 dis_buf[3] = LedCode[a%16]; // 第二位
58 2 SBUF=255-a; //取反
59 2 while(TI==0);
60 2 dis_buf[0] = LedCode[(255-a)/16]; // 第三位
61 2 dis_buf[1] = LedCode[(255-a)%16]; // 第四位
62 2
63 2 TI=0;
64 2 }
65 1 }
66 void display() interrupt 1 //显示扫描中断
67 {
68 1 TH0 = 0xFC;
69 1 TL0 = 0x17;
70 1 P2 = 0xff; // 先关闭所有数码管
71 1 P0 = dis_buf[dis_index]; // 显示代码传送到P0口
72 1 P2 = dis_digit; //
73 1 dis_digit = _crol_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管
74 1 if(dis_digit==0xef) dis_digit=0xfe;
75 1 dis_index++;
76 1 dis_index &= 0x03;
77 1 }
78 void main()
79 {
80 1 delay();//延时
81 1 SCON|=0x50; /* mode 1: 8-bit UART, enable receiver */
82 1 TMOD|=0x21; /* timer 1 mode 2: 8-Bit reload */
83 1 PCON|=0x80; // baud x2
84 1 TH1=0xfa; //串口波特率初始化 0xfd=19200,0xfa=9600,0xf4=4800,0xe8=2400,0xd0=1200
85 1 TH0=0XFC;
86 1 TL0=0X17;
87 1 TR0=1;
88 1 TR1=1;
89 1 EA=1;
90 1 ET0=1;
91 1 ES=1; // Turn on Series Interrupte;
92 1 dis_index=0;
93 1 dis_buf[0] = LedCode[0]; // 第一位
94 1 dis_buf[1] = LedCode[0]; // 第二位
95 1 dis_buf[2] = LedCode[0]; // 第三位
96 1 dis_buf[3] = LedCode[0]; // 第四位
97 1 P0 = dis_buf[dis_index]; // 显示代码传送到P0口
98 1 P2 = dis_digit;
99 1 while(1){;}
100 1 }
101
102
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 208 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 ----
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 + -