📄 ex4-4.lst
字号:
C51 COMPILER V8.05a EX4_4 08/16/2008 17:19:09 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE EX4_4
OBJECT MODULE PLACED IN ex4-4.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ex4-4.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 标题:范例4-4
3 版本:1.0
4 Target:89S51
5 程序描述:这个程序利用89S51控制一颗共阳七段显示器
6 ,然后通过Timer 0的控制不停地显示0到9 */
7 /* ***************************************************** */
8 #include <REGX51.H>
9
10 #define TIMER0_COUNT 0xEE11 /*10000h-(12,000,000/(12*200))*/
11
12 const seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
13 0X80,0X90};
14 unsigned char timer0_tick,i=0;
15
16 static void timer0_isr(void) interrupt TF0_VECTOR using 1
17 {
18 1 TR0=0;
19 1 TL0=(TIMER0_COUNT & 0x00FF);
20 1 TH0=(TIMER0_COUNT >> 8);
21 1 TR0=1;
22 1 timer0_tick++;
23 1 if (timer0_tick==200) {
24 2 i++;
25 2 if(i==10) i=0;
26 2 timer0_tick=0;
27 2 P1=seven_seg[i];
28 2 }
29 1 }
30 static void timer0_initialize(void)
31 {
32 1 EA=0; /* 设定系统不接受所有的中断 */
33 1 timer0_tick=0;
34 1 TR0=0; /* 关闭Timer0 */
35 1 TMOD =0x01; /* 设定计时器0为16位的工作模式 */
36 1 TL0=(TIMER0_COUNT & 0x00FF); /* 设定TL0的数值 */
37 1 TH0=(TIMER0_COUNT >> 8); /* 设定TH0的数值 */
38 1 PT0=0; /* 设定计时器0有比较高的优先级 */
39 1 ET0=1; /* 设定接受Timer0的中断 */
40 1 TR0=1; /* 启动Timer0 */
41 1 EA=1; /* 设定系统接受中断 */
42 1 }
43 void main (void) {
44 1 timer0_initialize();
45 1 while (1); /* 无穷循环*/
46 1 }
47
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 83 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 ----
C51 COMPILER V8.05a EX4_4 08/16/2008 17:19:09 PAGE 2
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 + -