单片机的实用程序代码
源代码在线查看: 定时器的使用.lst
C51 COMPILER V7.50 定时芲的使用 08/19/2011 08:59:06 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 定时芲的使用
OBJECT MODULE PLACED IN 定时器的使用.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 定时器的使用.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 * 文件名 : 定时器的使用.c
3 * 描述 : 相对前面的软件延时,定时器的延时更为精确。
4 定时时间可用光盘中的“51定时器计算.exe”计算。该软件
5 位于单片机开发辅助工具文件夹中。
6 * 创建人 : 东流,2009年4月8日
7 * 版本号 : 2.0
8 ***********************************************************************/
9 #include
10 #define uchar unsigned char
11 #define uint unsigned int
12
13 uchar Count = 0;
14 uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
15 /********************************************************************
16 * 名称 : Time0_Init()
17 * 功能 : 定时器的初始化,11.0592MZ晶振,50ms
18 * 输入 : 无
19 * 输出 : 无
20 ***********************************************************************/
21 void Time0_Init()
22 {
23 1 TMOD = 0x01;
24 1 IE = 0x82;
25 1 TH0 = (65536 - 50000) / 256;
26 1 TL0 = (65536 - 50000) % 256;
27 1 //TH0 = 0x4c;
28 1 //TL0 = 0x00;
29 1 TR0 = 1;
30 1 }
31
32 /********************************************************************
33 * 名称 : Time0_Int()
34 * 功能 : 定时器中断,中断中实现 Count 加一
35 * 输入 : 无
36 * 输出 : 无
37 ***********************************************************************/
38 void Time0_Int() interrupt 1
39 {
40 1 TH0 = (65536 - 50000) / 256;
41 1 TL0 = (65536 - 50000) % 256;
42 1 //TH0 = 0x4c;
43 1 //TL0 = 0x00;
44 1 Count++; //长度加1
45 1 }
46
47 /********************************************************************
48 * 名称 : Main()
49 * 功能 : 主函数
50 * 输入 : 无
51 * 输出 : 无
52 ***********************************************************************/
53 void main()
54 {
55 1 uchar i = 0;
C51 COMPILER V7.50 定时芲的使用 08/19/2011 08:59:06 PAGE 2
56 1 Time0_Init();
57 1 while(1)
58 1 {
59 2 P0 = table[i % 10]; //取 i 的个位
60 2 while(1)
61 2 {
62 3 if(Count == 20) //当Count为 20 时,i 自加一次,20 * 50MS = 1S
63 3 {
64 4 Count = 0;
65 4 i++;
66 4 break;
67 4 }
68 3 }
69 2 }
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 53 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)