📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 07/18/2008 16:32:01 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <INTRINS.H>
3 #include <math.H>
4 #include <stdio.H>
5 #include "LCD1602.h"
6
7 #define UART_ASK 0xA5
8
9 sbit OPEN = P1^0;//连接CPLD的IO27
10 sbit GATE = P3^2;//连接CPLD的IO28
11 sbit CLRP = P3^5;//连接CPLD的IO29
12
13 //定义CPLD内部计数器地址
14 unsigned char xdata REG0 _at_ 0xfff0;
15 unsigned char xdata REG1 _at_ 0xfff1;
16 unsigned char xdata REG2 _at_ 0xfff2;
17 unsigned char xdata REG3 _at_ 0xfff3;
18
19 unsigned char str_buff[30];
20 unsigned char counter;
21
22
23 void timer0_init()
24 {
25 1 TMOD|=0x09;
26 1 ET0=1;
27 1 EA=1;
28 1 TR0=0;
29 1 }
30
31
32 void delay_ms(unsigned int n)
33 {
34 1 unsigned char j;
35 1 while(n--)
36 1 for(j=0;j<230;j++);//230是实验测试所得!
37 1 }
38
39
40
41 main()
42 {
43 1 double fx,temp;
44 1 uint temp1;
45 1 lcd1602_init();
46 1 timer0_init();
47 1 OPEN=0;
48 1
49 1 lcd_put_xys(1,1,"Cymometer");
50 1
51 1 while(1)
52 1 {
53 2 OPEN=0;
54 2 temp1=0;
55 2
C51 COMPILER V8.02 MAIN 07/18/2008 16:32:01 PAGE 2
56 2 while(GATE)
57 2 if(temp1++>65000) break; //超时跳出
58 2
59 2 CLRP=1; //清零CPLD内部计数器
60 2 CLRP=0;
61 2 TH0=0; //清除单片机内部计数器
62 2 TL0=0;
63 2 counter=0;
64 2
65 2 TR0=1; //开启定时器0
66 2 OPEN=1;//开启CPLD内部计数器
67 2 while(counter<1);
68 2
69 2 OPEN=0;
70 2 temp1=0;
71 2
72 2 while(GATE)
73 2 if(temp1++>65000) break;//超时跳出
74 2
75 2 TR0=0; //关闭定时器0
76 2
77 2
78 2 temp=counter*65536+TH0*256+TL0;
79 2 fx=1843200/temp;//(22118400/12=1843200)
80 2 fx=fx*(REG2*65536+REG1*256+REG0);//和数据总线P0相关
81 2 sprintf(str_buff,"%-8.3fHz",fx);
82 2 lcd_put_xys(1,2," "); //清屏
83 2 lcd_put_xys(1,2,"f=");
84 2 lcd_put_xys(3,2,str_buff);
85 2 delay_ms(1000);
86 2 }
87 1 }
88
89
90 void timer0_int(void) interrupt 1
91 {
92 1 counter++;
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 517 ----
CONSTANT SIZE = 38 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 31 8
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 + -