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