📄 数码管(秒表).lst
字号:
C51 COMPILER V8.02 数码管(秒表) 04/06/2009 13:27:52 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 数码管(秒表)
OBJECT MODULE PLACED IN 数码管(秒表).OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE 数码管(秒表).c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************/
2 /* */
3 /*该程序实现的功能: */
4 /* */
5 /* 数码管前两位显示分钟数, */
6 /* 后两位显示秒数 */
7 /* */
8 /*接线方法: */
9 /* */
10 /* 将P0口接在数码管的数据端 */
11 /* 再将4位位选端依次接在P2.0-P2.3 */
12 /* */
13 /***********************************/
14
15 #include<reg52.h>
16 #define uchar unsigned char
17 #define uint unsigned int
18
19 uchar ge,shi,bai,qian; //定义数码管显示的四位数
20 uint fen,miao; //定义要显示的变量fen,miao
21
22 uchar code number[]={0x28,0xeb,0x32,0xa2,
23 0xe1,0xa4,0x24,0xea, //针对我们板子的数码管0-9编码
24 0x20,0xa0};
25
26 uchar wei[4]={0x07,0x0b,0x0d,0x0e}; //数码管位选编码
27
28 void delay(uint m) //延时函数
29 {
30 1 while(m--);
31 1 }
32 void main()
33 {
34 1 uint i=0; //定义变量i供for语句使用
35 1 while(1)
36 1 {
37 2 for(i=0;i<80;i++)
38 2 {
39 3 qian=fen/10; //将fen的值分散到前两位
40 3 bai=fen%10;
41 3 shi=miao/10;
42 3 ge=miao%10; //将miao的值分散到后两位
43 3
44 3 if(qian!=0)
45 3 {
46 4 P0=number[qian]; //不为0则显示fen的十位
47 4 P2=wei[0];
48 4 delay(300);
49 4 }
50 3
51 3 P0=number[bai]; //显示fen的个位
52 3 P2=wei[1];
53 3 delay(300);
54 3
55 3 P0=number[shi]; //显示秒的十位
C51 COMPILER V8.02 数码管(秒表) 04/06/2009 13:27:52 PAGE 2
56 3 P2=wei[2];
57 3 delay(300);
58 3
59 3 P0=number[ge]; //显示秒的个位
60 3 P2=wei[3];
61 3 delay(300);
62 3 }
63 2 miao++; //秒值按周期增加
64 2 if(miao==60) //当增加到60,清零,同时分加1
65 2 {
66 3 miao=0;
67 3 fen++;
68 3 }
69 2 if(fen==60) //fen增加到60则清零。
70 2 {
71 3 fen=0;
72 3 }
73 2 }
74 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
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 + -