📄 timerr_c.lst
字号:
C51 COMPILER V7.06 TIMERR_C 05/14/2006 16:48:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TIMERR_C
OBJECT MODULE PLACED IN timerr_c.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE timerr_c.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //*****************************************************
2 //实现功能:单片机的晶振为12MHz,使用定时/计数器0实现每
3 // 0.5秒改变一次接在P1.0上的发光二极管的状态.
4 //目标板:
5 //*****************************************************
6 #include <reg51.h>
7 //*****************宏定义*****************************
8 sbit p_light=P1^0;//宏定义P1.0为p_light
9 //****************************************************
10 //******************定义子函数************************
11 void timer_init(unsigned char time_num,unsigned char time_GATE,unsigned char time_CT,unsigned char time_mo
-de);
12 //****************************************************
13
14
15
16 //*********************主函数************************
17 //描 述:使用定时/计数器0实现每0.5秒改变一次接在
18 // P1.0上的发光二极管的状态
19 //入口参数:无
20 //返回参数:无
21 //设 计:ycj
22 //最后修改:时间(2006.5.2) 修改人(ycj)
23 //****************************************************
24 int main(void)
25 {unsigned char i;
26 1 timer_init(0,0,0,1);//定时器0,GATE=0仅由TR0控制定时器0的启动,
27 1 //设定为定时器功能,方式1(计数器长度为16位)
28 1 //对定时器赋初值TC=15535,也就是计数50000次后溢出
29 1 TH0=0x3c;
30 1 TL0=0xaf;
31 1 TR0=1;//启动定时器0
32 1 while(1)
33 1 {p_light=!p_light;//取反i/o电平
34 2 for(i=0;i<10;i++)//循环10次,每次50ms,
35 2 {
36 3 while(!TF0);//等待计数器溢出
37 3 //计数器溢出,重新对定时器赋值
38 3 TH0=0x3c;
39 3 TL0=0xaf;
40 3
41 3 TF0=0;//清除定时器溢出标志
42 3 }
43 2 }
44 1 }
45 //************************定时器初始化函数***************************
46 //描 述:对定时/计数器初始化
47 //入口参数:unsigned char time_num 定时/计数器的编号(0或者1)
48 // unsigned char time_GATE 定时/计数器的门控制位(0或者1)
49 // unsigned char time_CT 定时/计数器的功能选择位(0或者1)
50 // unsigned char time_mode 定时/计数器的方式选择(0~3)
51 //返回参数:无
52 //设 计:ycj
53 //最后修改:时间(2006.5.2) 修改人(ycj)
54 //****************************************************
C51 COMPILER V7.06 TIMERR_C 05/14/2006 16:48:00 PAGE 2
55 void timer_init(unsigned char time_num,unsigned char time_GATE,unsigned char time_CT,unsigned char time_mo
-de)
56 {
57 1 if (time_num==0)
58 1 {
59 2 TMOD&=0xf0;
60 2 TMOD|=(time_GATE<<4)+(time_CT<<3)+(time_mode);
61 2 }
62 1 else if (time_num==1)
63 1 {
64 2 TMOD&=0x0f;
65 2 TMOD|=(time_GATE<<8)+(time_CT<<7)+(time_mode<<4);
66 2 }
67 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 87 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -