?? 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、程序目的:使用定時器學(xué)習(xí) 倒計時
3 2、硬件要求:數(shù)碼管、晶振12M
4 */
5 #include <reg52.h>
6
7 code unsigned char tab[]=
8 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
9 //共陰數(shù)碼管 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;//定時器設(shè)置 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的代碼 ,可以是燈電路,繼電器吸合等,或者執(zhí)行一個程序
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -