dled.lst
来自「单片及c语言轻松入门的随书光盘」· LST 代码 · 共 85 行
LST
85 行
C51 COMPILER V7.06 DLED 12/02/2005 10:00:12 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DLED
OBJECT MODULE PLACED IN dled.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE dled.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /**************************************************************
2 定时中断实现显示的程序
3 前面各位始终显示0,最后一位显示在0-9之间循环
4 ***************************************************************/
5 #include "reg51.h"
6 #define uchar unsigned char
7 #define uint unsigned int
8
9 uchar code BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB};
10 uchar code DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
11 0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
12 uchar DispBuf[6]; //6字节的显示缓冲区
13
14 void Timer0() interrupt 1
15 { uchar tmp;
16 1 static uchar Count; //计数器,显示程序通过它得知现正显示哪个数码管
17 1 TH0=(65536-3000)/256;
18 1 TL0=(65536-3000)%256;//定时时间为3000个周期
19 1 tmp=BitTab[Count]; //根据当前的计数值取位值
20 1 P2=P2|0xfc; //P2与11111100B相或,将高6位置1
21 1 P2=P2&tmp; //P2与取出的位值相与,将某一位清零
22 1 tmp=DispBuf[Count]; //根据当前的计数值取显示缓冲待显示值
23 1 tmp=DispTab[tmp]; //取字形码
24 1 P0=tmp; //送出字形码
25 1 Count++; //计数值加1
26 1 if(Count==6) //如果计数值等于6,则让其回0
27 1 Count=0;
28 1 }
29 /*延时程序*/
30 void mDelay(unsigned int Delay)
31 { unsigned int i;
32 1 for(;Delay>0;Delay--)
33 1 { for(i=0;i<124;i++)
34 2 {;}
35 2 }
36 1 }
37 void main()
38 { uchar Counter=0;
39 1 P1=0xff;
40 1 P0=0xff;
41 1 TMOD=0x01;
42 1 TH0=(65536-3000)/256;
43 1 TL0=(65536-3000)%256; //定时时间为3000个周期
44 1 TR0=1; //T0开始运行
45 1 EA=1; //总中断允许
46 1 ET0=1; //T0中断允许
47 1 DispBuf[0]=0;
48 1 DispBuf[1]=0;
49 1 DispBuf[2]=0;
50 1 DispBuf[3]=0;
51 1 DispBuf[4]=0; //显示器前5位均为0
52 1 for(;;)
53 1 { DispBuf[5]=Counter;
54 2 Counter++; //计数
55 2 if(Counter==10)
C51 COMPILER V7.06 DLED 12/02/2005 10:00:12 PAGE 2
56 2 Counter=0;
57 2 mDelay(1000);
58 2 }
59 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 148 ----
CONSTANT SIZE = 23 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?