counter_def.lst
来自「菜鸟,详细NRF24E1运用,程序,电路」· LST 代码 · 共 118 行
LST
118 行
C51 COMPILER V9.00 COUNTER_DEF 11/13/2010 14:43:33 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE COUNTER_DEF
OBJECT MODULE PLACED IN counter_def.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C V4\C51\BIN\C51.EXE counter_def.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF COUNTER_DEF.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1 #include "def.h"
2 #include "reg24le1.h"
3
4 /*软件延时函数*/
5
6 void delay(unsigned int x)
7 {
8 1 unsigned char j=120;
9 1 for(;x>0;x--)
10 1 for(;j>0;j--)
11 1 {
12 2 ;
13 2 }
14 1
15 1 }
16
17 /*计数器配置函数,名称init_counter(),
18 无输入参数,无返回,用于计数器初始化*/
19
20 void init_counter(void)
21 {
22 1 //配置计数器
23 1 TMOD=0x05; //配置计数器0成沿计数方式
24 1 TR0=1; //启动计数器
25 1 TH0=0; //高位清0
26 1 TL0=0; //低位清0
27 1
28 1 }
29
30
31 void init_uart(void)
32 {
33 1 //配置串口
34 1 CLKCTRL=0X28;
35 1 CLKLFCTRL = 0x01; // RCOSC32K
36 1
37 1 // UART
38 1 P0DIR &= 0xF7; // P03 (TxD) is output
39 1 P0DIR |= 0x10; // P04 (RxD) is input
40 1 P0|=0x18;
41 1
42 1 S0CON = 0x50;
43 1 PCON |= 0x80; // SMOD = 1
44 1 WDCON |= 0x80; // Select internal baud rate generator
45 1
46 1 //S0RELL = 0xFB;
47 1 S0RELL = 0xF3; // BAUD_38K4
48 1 // S0RELL = 0x98; //4800
49 1 // S0RELL = 0x30;
50 1 S0RELH = 0x03;
51 1 //P0CON = 0x13;
52 1 //P0CON = 0x44;
53 1 //ES0 = 1;
54 1
C51 COMPILER V9.00 COUNTER_DEF 11/13/2010 14:43:33 PAGE 2
55 1 }
56
57 /*IO口配置函数*/
58
59 void io_config(void){
60 1 P0DIR&=~(0X20);//配置P05为输出作为脉冲发生端口
61 1 P0DIR|=0x80; //配置P07为输入,是一个复用口,这里是T0
62 1 P05=0;
63 1 }
64
65 /** 计数器脉冲读取的函数,返回的是当前计数器的脉冲数目**/
66 /* 函数名称:counter_result(),输入参数无*/
67
68 unsigned int counter_result(void)
69 {
70 1 static unsigned int flowtime=0; //记录脉冲超过50000个的次数
71 1 unsigned int res; //脉冲数保存
72 1 res=TH0*256+TL0; //计算当前记录的脉冲个数
73 1 if(res==50000) //如果脉冲到50000个就清理TH0和TL0,flowtime自加一次
74 1 {
75 2 flowtime++;
76 2 res=0;
77 2 }
78 1 return (flowtime*50000+res); //返回当前记录的脉冲总数
79 1 }
80
81
82 /*通过串口打印一个字符到电脑的串行终端*/
83
84 void putch(char s)
85 {
86 1
87 1 S0BUF=s;
88 1 while(!TI0);
89 1 TI0=0;
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 158 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?