📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 10/19/2008 10:42:27 PAGE 1
C51 COMPILER V8.02, 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 <reg52.h>
2 #define TIME_PER_SEC 480 //定义定时器定时频率
3 #define CLOCK 12000000 //系统时钟
4 #define LED_SEG_PORT P0 //定义数码管接口
5 #define LED_BIT_PORT P2
6
7 sbit key0 = P3^4;
8 sbit key1 = P3^5;
9
10 sbit wr = P3^6;
11 sbit rd = P3^7;
12
13 unsigned char beep_flag;
14 unsigned long int counter;
15
16 extern delay(unsigned int);
17 unsigned char segcode[]=
18 {
19 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
20 0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0
21
22 };//共阴极
23 unsigned char led_buf[]={0,0,0,0,0,0,0}; //6只数码管
24
25 //定时器初始化
26 void Init_Timer1(void)
27 {
28 1 TMOD = (TMOD & 0X0F) | 0X10; //定时器1工作在模式1,16Bit定时器模式
29 1 TH1 = 255-CLOCK/TIME_PER_SEC/12/256;
30 1 TL1 = 255-CLOCK/TIME_PER_SEC/12%256;
31 1 TR1 = 1;
32 1 ET1 = 1;//开启定时器和中断
33 1 }
34
35 main()
36 {
37 1 beep_flag=0;
38 1 Init_Timer1();
39 1 EX0 = 1;
40 1 EX1 = 1;
41 1 IT0 = 1;
42 1 IT1 = 1;
43 1 EA = 1;
44 1 wr=1;
45 1 rd=0;//ADC数据直接输出(一直输出)
46 1 while(1)
47 1 {
48 2 wr=0;
49 2 wr=1;//启动ADC
50 2
51 2 /***以下按十进制取模,更新显示缓冲区***/
52 2 led_buf[0] = counter%10;
53 2 led_buf[1] = (counter/10)%10;
54 2 led_buf[2] = (counter/100)%10+10;//+10就是加小数点
55 2 led_buf[3] = 20;//熄灭
C51 COMPILER V8.02 MAIN 10/19/2008 10:42:27 PAGE 2
56 2 led_buf[4] = 20;//熄灭
57 2 led_buf[5] = 20;//熄灭
58 2 /*************************************/
59 2
60 2 delay(1000);//延时等待ADC结束
61 2 counter = P1*2; //从P1口读数据
62 2
63 2 }
64 1 }
65
66
67 /*定时器中断,完成数码管显示刷新*/
68 void time() interrupt 3
69 {
70 1 static unsigned char i=0;
71 1 TH1 = 255-CLOCK/TIME_PER_SEC/12/256;
72 1 TL1 = 255-CLOCK/TIME_PER_SEC/12%256;
73 1 i=++i%6;
74 1 LED_BIT_PORT = 0x0|beep_flag; //关所有数码管
75 1 LED_SEG_PORT = segcode[led_buf[i]];
76 1 LED_BIT_PORT = (1<<i)|beep_flag;
77 1 }
78
79 /*外部中断0函数*/
80 void int_0() interrupt 0
81 {
82 1
83 1 }
84
85 /*外部中断1函数*/
86 void int_1() interrupt 2
87 {
88 1
89 1 }
90
91 /*常用延时函数,t<65536*/
92 delay(unsigned int t)
93 {
94 1 while(--t);
95 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 247 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
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 + -