📄 99秒倒计时.lst
字号:
C51 COMPILER V7.06 99秒__计蔩 12/03/2008 23:29:28 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 99秒__计蔩
OBJECT MODULE PLACED IN 99秒倒计时.OBJ
COMPILER INVOKED BY: d:\Keil2\C51\BIN\C51.EXE 99秒倒计时.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 1、程序目的:使用定时器学习 倒计时
3 2、硬件要求:数码管、晶振12M
4 */
5 #include <reg52.h>
6
7 code unsigned char tab[]=
8 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
9 //共阴数码管 0-9
10
11 unsigned char Dis_Shiwei;//定义十位
12 unsigned char Dis_Gewei; //定义个位
13 void delay(unsigned int cnt)
14 {
15 1 while(--cnt);
16 1 }
17
18 main()
19 {
20 1
21 1 TMOD |=0x01;//定时器设置 10ms in 12M crystal
22 1 TH0=0xd8;
23 1 TL0=0xf0;
24 1 IE= 0x82; //打开中断
25 1 TR0=1;
26 1
27 1 while(1)
28 1 {
29 2 P0=Dis_Shiwei;//显示十位
30 2 P2=0;
31 2 delay(300);//短暂延时
32 2 P0=Dis_Gewei; //显示个位
33 2 P2=1;
34 2 delay(300);
35 2 }
36 1
37 1 }
38 /********************************/
39 /* 定时中断 */
40 /********************************/
41 void tim(void) interrupt 1 using 1
42 {
43 1 static unsigned char second=99,count; //初值99
44 1 TH0=0xd8;//重新赋值
45 1 TL0=0xf0;
46 1 count++;
47 1 if (count==100)
48 1 {
49 2 count=0;
50 2 second--;//秒减1
51 2 if(second==0)
52 2 { //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
53 3 second=99; //减到0是重新赋值99
54 3 }
55 2 Dis_Shiwei=tab[second/10];//十位显示值处理
C51 COMPILER V7.06 99秒__计蔩 12/03/2008 23:29:28 PAGE 2
56 2 Dis_Gewei=tab[second%10]; //个位显示处理
57 2
58 2 }
59 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 118 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
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 + -