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