📄 stc232.lst
字号:
C51 COMPILER V8.09 STC232 01/13/2008 15:50:31 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE STC232
OBJECT MODULE PLACED IN stc232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE stc232.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************************************
2 ****************串口工具配套程序******************************
3 程序功能:1.通过PC端的串口调试工具,从PC端发出一个十六进制的数,
4 通过串口传输到单片机,并有单片机通过
5 LED数码管显示其ASII码,而且单片机又将
6 这个数发回PC端,并在PC端显示出来,从而
7 实现单片机与PC机的通讯
8 2.可以实现对下位机数据实时采集(如温度)
9 3.可以控制流水灯或继电器开关等
10 *******************谢谢关注www.ednchina.com/Blog/lg05128018/**********************/
11 #include <reg52.h>
12 #include <intrins.h>
13 unsigned char date;
14 code unsigned char seg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
15 0x82,0xf8,0x80,0x90,0xff}; //共阳数码管段码
16
17 //char code str[] = "read is ok\n\rwww.ednchina.com/Blog/lg05128018/\n\r";
18 unsigned char k;
19 //***********************************************************
20
21 // 延时子程序
22
23 //************************************************************
24 void delay1ms()
25 {
26 1 unsigned char i;
27 1 for(i=124;i>0;i--); //延时124*8+10=1002us
28 1 }
29 // void delay10ms()
30 //{
31 //int i;
32 // for(i=1240;i>0;i--); //延时124*8+10=1002us
33 //}
34 //**********************************************************//
35
36 //************显示函数,显示四位的date数据******************//
37
38 //*************P2口接段码,P1.0-P1.3接位选******************//
39
40 //**********************************************************//
41
42 void LED_display(int date) //显示4位数
43 {
44 1 P1=0xfd; //P1.1=0,选通第二位,百
45 1 P2=seg7code[date%1000/100];
46 1 delay1ms();
47 1 P2=0xff; //消隐
48 1
49 1 P1=0xfb; //P1.3=0,选通第三位,十
50 1 P2=seg7code[date%100/10];
51 1 delay1ms();
52 1 P2=0xff; //消隐
53 1
54 1 P1=0xf7; //P1.3=0,选通第四位,个
55 1 P2=seg7code[date%10];
C51 COMPILER V8.09 STC232 01/13/2008 15:50:31 PAGE 2
56 1 delay1ms();
57 1 P2=0xff; //消隐
58 1 }
59
60 //************************************************************//
61
62 //******************串口初始化函数****************************//
63
64 //************************************************************//
65 Initial_com()
66 {
67 1 EA=1; //开总中断
68 1 ES=1; //允许串口中断
69 1 ET1=1; //允许定时器T1的中断
70 1 TMOD=0x20; //定时器T1,在方式3中断产生波特率
71 1 PCON=0x00; //SMOD=0
72 1 SCON=0x50;
73 1 TH1=0xfd; //波特率设置为9600
74 1 TL1=0xfd;
75 1 TR1=1; //开定时器T1运行控制位
76 1 }
77 //************************************************************//
78 //************************主函数******************************//
79 //************************************************************//
80 main()
81 {
82 1 Initial_com();
83 1 while(1)
84 1 {
85 2 if(RI)
86 2 {
87 3
88 3 date=SBUF;
89 3 if(date!=0x39)
90 3 SBUF=date;
91 3 switch (date)
92 3 {
93 4 case 0x30: P0=0xff; break; //LED全灭
94 4 case 0x31: P0=0xfe; break; //LED1亮
95 4 case 0x32: P0=0xfd; break; //LED2亮
96 4 case 0x33: P0=0xfb; break; //LED3亮
97 4 case 0x34: P0=0xf7; break; //LED4亮
98 4 case 0x35: P0=0xef; break; //LED5亮
99 4 case 0x36: P0=0xdf; break; //LED6亮
100 4 case 0x37: P0=0xbf; break; //LED7亮
101 4 case 0x38: P0=0x7f; break; //LED8亮
102 4 case 0x39: SBUF=37; break;
103 4 default: break;
104 4 }
105 3 RI=0; //清除接收中断标志
106 3 }
107 2 LED_display(date);
108 2 }
109 1 }
110
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 261 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V8.09 STC232 01/13/2008 15:50:31 PAGE 3
DATA SIZE = 2 ----
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 + -