📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 07/04/2012 21:26:08 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h> //包含头文件
2 #include "fun.h"
3
4 void Timer0_interrupt() interrupt 1
5 {
6 1 TH0 = T0_50ms >> 8; //重装初值
7 1 TL0 = T0_50ms;
8 1
9 1 if ((++ count_in_T0) == 20)//count_in_T0自加到20,计时1s
10 1 {
11 2 count_in_T0 = 0;
12 2 if ( (++ display_num) ==60)
13 2 {//display_num自加1后判断是否等于60
14 3 display_num = 0;
15 3 //上发过0消息
16 3 send(0xf0);
17 3 send(0x01);
18 3 send(0xf1);
19 3 }
20 2 }
21 1 }
22
23 void USART2_interrupt() interrupt 8
24 {
25 1 char checkXOR;
26 1 //if (RI)
27 1 if (S2CON & 0x01) //串口2接收中断
28 1 {
29 2 //RI = 0;
30 2 S2CON &= 0xfe; //清串口2接收中断标志S2RI
31 2 reciev[rec_num] = S2BUF;
32 2 rec_num ++;
33 2 if ((rec_num == 3) && (reciev[0] == 0x0f) )//接收到3字节,并且包头正确
34 2 {
35 3 checkXOR = reciev[0] ^ reciev[1];
36 3 if (checkXOR == reciev[2] )//如果异或校验正确,判断命令
37 3 {
38 4 switch (reciev[1])
39 4 {
40 5 case 0x01:
41 5 TR0 = 1; //启动
42 5 rec_num = 0;//指令正确,清空缓冲区
43 5 break;
44 5 case 0x02:
45 5 TR0 = 0; //暂停
46 5 rec_num = 0;//指令正确,清空缓冲区
47 5 break;
48 5 default: //如果指令不正确,缓冲区左移
49 5 reciev[0] = reciev[1];
50 5 reciev[1] = reciev[2];
51 5 rec_num --;
52 5 break;
53 5 }
54 4 }
55 3 }
C51 COMPILER V8.08 MAIN 07/04/2012 21:26:08 PAGE 2
56 2 }
57 1 //if (TI)
58 1 if (S2CON & 0x02) //串口2发送中断
59 1 {
60 2 //TI = 0;
61 2 S2CON &= 0xfd; //清串口2发送中断标志S2TI
62 2 }
63 1 }
64
65 main()
66 {
67 1 unsigned char shi, ge; //定义十位、个位要输出的数据
68 1
69 1 ms_delay(100);
70 1 init_port();
71 1 //init_usart();
72 1 init_usart2();//初始化串口2
73 1 init_timer();
74 1
75 1 rec_num = 0;
76 1 display_num = 0;
77 1 count_in_T0 = 0;
78 1 //把两个数码管都关闭
79 1 en2 = 1;
80 1 en1 = 1;
81 1 EA = 1;//开总中断
82 1
83 1 while(1)
84 1 {
85 2 shi = display_num / 10;
86 2 ge = display_num % 10;
87 2 display(shi,ge);
88 2 }
89 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 311 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
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 + -