📄 counter_t1.lst
字号:
C51 COMPILER V7.06 COUNTER_T1 12/12/2007 18:04:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE COUNTER_T1
OBJECT MODULE PLACED IN E:\制作和~1\总线开发\试验程序\BASIC_~1\COUNTE~1\COUNTER_T1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\制作和~1\总线开发\试验程序\BASIC_~1\COUNTE~1\COUNTER_T1.C DB SB OE
stmt level source
1
2 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
3 //功能描述:
4 // T1按键为计数按键,数码管显示按键的次数 &
5 // 上电后数码管显示0,十进制显示 &
6
7
8 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
9 //【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! &
10 //【声明】 作者: PIAE小组
11 /*
12
13 */
14
15 #include <reg52.h>
16 #include <intrins.h>
17 #include <counter_t1_def.h>
18
19
20 void Timer1( void ) interrupt 3 using 1
21 {//T1为计数器
22 1 EA = 0;
23 1 TH1 = 0xFF;
24 1 TL1 = 0xFF;
25 1 Show_Data++;////计数单元加1
26 1 EA = 1;
27 1 }
28
29 void main(void)
30 {
31 1 CPU_init();
32 1 _nop_();
33 1 while(1)
34 1 {
35 2 NOPS;
36 2 ///////////////////////数码管显示程序/////////////////////////////////
37 2 led_seg7(1,Show_Data);
38 2 LED_RED = !LED_RED;
39 2 LED_GRE = !LED_GRE;
40 2
41 2 ///////////////////////数码管显示程序/////////////////////////////////
42 2 }//while 结束
43 1 }//main结束
44
45
46 void Delay(uchar delay_time)
47 {//延时程序
48 1 while(delay_time--)
49 1 {}
50 1 }
51
52
53 void CPU_init(void)
54 {//初始化CPU
55 1 TMOD = 0x50;//T1为计数模式
C51 COMPILER V7.06 COUNTER_T1 12/12/2007 18:04:02 PAGE 2
56 1 TH1 = 0xFF;
57 1 TL1 = 0xFF;//计数器设定初值
58 1 TR1 = 1;
59 1 ET1 = 1;//打开T1计数中断
60 1 EA = 1; //打开总中断
61 1 SJA1000_CS = 1;//片选无效
62 1 }
63
64
65 void led_seg7(uchar from,uchar number) //from(1_4):数码管显示起始位置(从右到左),number:显示的数
66 {
67 1 uchar digit,temp_l;
68 1 uchar temp_h=0x7f;
69 1 temp_h = _cror_(temp_h,from-1); //确定从哪一位开始显示,即确定高四位
70 1 temp_h = temp_h & 0xf0; //取高四位
71 1 temp_l = P2 & 0x0f; //取P2的低四位
72 1 P2 = temp_h | temp_l; //设定P2口
73 1
74 1 if(number==0)
75 1 {
76 2 P0 = led[0];
77 2 Delay(5);
78 2 P0 = 0xff;
79 2 }
80 1
81 1 else
82 1 {
83 2 while(number)
84 2 {
85 3 digit = number%10 ;
86 3 number /= 10;
87 3 P0 = led[digit] ;
88 3 Delay(5);
89 3 temp_h = P2 & 0xf0; //取P2的高四位
90 3 temp_h = temp_h | 0x0f; //拼装 temp_h,进行位选
91 3 temp_h = _cror_(temp_h,1);
92 3 temp_h = temp_h & 0xf0; //取高四位
93 3 temp_l = P2 & 0x0f; //取P2的低四位
94 3 P0 = 0xff;
95 3 P2 = temp_h | temp_l; //设定P2口
96 3 }//while结束
97 2 }//else结束
98 1
99 1 }
C51 COMPILER V7.06 COUNTER_T1 12/12/2007 18:04:02 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
CPU_init . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Show_Data. . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
LED_RED. . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1
LED_GRE. . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1
SJA1000_CS . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
Timer1 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
led. . . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 11
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
_Delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0008H -----
delay_time . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
_led_seg7. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
from . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
number . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
digit. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
temp_l . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
temp_h . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 159 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -