📄 timer_led.lst
字号:
C51 COMPILER V8.05a TIMER_LED 10/25/2006 22:00:34 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE TIMER_LED
OBJECT MODULE PLACED IN timer_led.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE original files\timer_led.c BROWSE DEBUG OBJECTEXTEND PRINT(.\timer_led.lst)
- OBJECT(timer_led.obj)
line level source
1 /*********************************************************************************/
2 //程序名:Timer_led.c
3 //功能描述:利用定时器精确定时1ms控制LED闪烁
4 //调用函数:Timer_1ms(uint_1ms),Led_Off(),Led_On()
5 //输入:
6 //返回:
7 //设计者:wei 日期:2006.10.25
8 //修改者: 日期:
9 //版本:
10 /********************************************************************************/
11 #include<reg51.h>
12 #define uchar unsigned char
13 #define uint unsigned int
14
15 sbit P1_0 = P1^0;
16 sbit P1_1 = P1^1;
17 sbit P1_2 = P1^2;
18 sbit P1_3 = P1^3;
19 sbit P1_4 = P1^4;
20 sbit P1_5 = P1^5;
21 sbit P1_6 = P1^6 ;
22
23 #define OSC_FREQ 12000000
24 #define C50us (65536-OSC_FREQ/(12000000/35))
25 #define C1ms (65536-OSC_FREQ/(12000000/980))
26 #define C10ms (65536-OSC_FREQ/(12000000/9970))
27 //考虑到重装时时间上的误差,将10000调整为9970达到准确定时的目的
28
29 void Timer_1ms(uint _1ms);
30 void Led_Off();
31 void Led_On();
32 /******************************************************************************************
33 *********************************主函数:初始化CPU****************************************
34 *****************************************************************************************/
35
36 void main()
37 {
38 1 do{
39 2 Led_On();
40 2 Timer_1ms(1000); //定时1s函数
41 2 Led_Off();
42 2 Timer_1ms(1000);
43 2 }while(1);
44 1 }
45
46 /******************************************************************************************/
47 //函数名:void Timer_1ms(uint count)
48 //功能:利用定时器精确延时1ms
49 //调用函数:
50 //输入参数:count,1ms计数
51 //输出参数:
52 //说明:总共延时时间为1ms乘于count
53 /*******************************************************************************************/
54 void Timer_1ms(uint _1ms)
C51 COMPILER V8.05a TIMER_LED 10/25/2006 22:00:34 PAGE 2
55 {
56 1 TMOD=TMOD & (0x0f) | 0x10; //启动定时器工作
57 1 TR1 = 1;
58 1 while(_1ms--)
59 1 {
60 2 TH1 = C1ms/256; //ms的高位十六进制装入TH1
61 2 TL1 = C1ms%256; //ms的低位十六进制装入TL1
62 2 while(!TF1); //TF不等于零时,等待
63 2 TF1 = 0;
64 2
65 2 }
66 1 TR1 = 0;
67 1 }
68
69 /*****************************************************************************************
70 函数名:void Led_Off()
71 功能:
72 调用函数:
73 输入参数:
74 输出:
75 说明:
76 ******************************************************************************************/
77 void Led_Off()
78 { P1_0 = 0;
79 1 P1_1 = 0;
80 1 P1_2 = 0;
81 1 P1_3 = 0;
82 1 P1_4 = 0;
83 1 P1_5 = 0;
84 1 P1_6 = 0;
85 1
86 1 }
87
88 /*********************************************************************************************
89 函数名:void Led_On()
90 功能:
91 调用函数:
92 输入参数:
93 输出:
94 说明:
95 ******************************************************************************************/
96 void Led_On()
97 {
98 1 P1_0 = 1;
99 1 P1_1 = 1;
100 1 P1_2 = 1;
101 1 P1_3= 1;
102 1 P1_4 = 1;
103 1 P1_5 = 1;
104 1 P1_6 = 1;
105 1
106 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 88 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.05a TIMER_LED 10/25/2006 22:00:34 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -