📄 freqen.lst
字号:
C51 COMPILER V8.05a FREQEN 08/21/2007 12:58:01 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE FREQEN
OBJECT MODULE PLACED IN freqen.OBJ
COMPILER INVOKED BY: C:\Keil\MCU\C51\BIN\C51.EXE freqen.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //模块:Freqen.C
2 //功能:频率计模块
3 //晶振:24.000MHz
4 //芯片: STC12C5412AD
5 //版本:V1.0.0
6 //设计:魏广寅
7 //日期:2007.4.10
8 #include "stc12c5412ad.h"
9 #define uchar unsigned char
10 #define uint unsigned int
11 extern uchar keyfuncindex;
12 void dis_cls(void);
13 extern void d0(void);
14 extern void lcd_init(void);
15 extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
16 extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
17 extern void delay(uint time);
18 extern uchar bdata gate;
19 extern void beep(uint time);
20 void sel_x(uchar x); //74HC390 分频系数选择1,10,100
21 void delay_1(uchar time);
22 extern uchar temp_l,temp_h;
23 extern uchar i;
24 extern unsigned char code x43[];// 量
25 extern unsigned char code x44[];// 程
26 extern unsigned char code x45[];// 切
27 extern unsigned char code x46[];// 换
28 extern unsigned char code x47[];// 请
29 extern unsigned char code x48[];// 稍
30 extern unsigned char code x49[];// 候
31 extern unsigned char code x50[];// …
32 extern unsigned char code x51[];// 周
33 extern unsigned char code x52[];// 期
34 extern unsigned char code x7[]; // 频
35 extern unsigned char code x8[]; // 率
36 extern uint temp0,temp1,temp2,temp3,temp4;
37 uchar a1,a2;
38 sbit sel_1=P1^6;
39 sbit sel_10=P1^4;
40 sbit sel_100=P3^4;
41 sbit p3_5=P3^5;
42 bit clr_flag0=0;
43 bit clr_flag1=0;
44 bit clr_flag2=0;
45 bit clr_flag3=0;
46 bit clr_flag4=0;
47 sbit key0=P3^0;
48 sbit key1=P3^1;
49 //--------------------------------------------------------------------
50 void timer_init()
51 {
52 1 TMOD=0xd1; //T1 做门控计数
53 1 TH1=0;
54 1 TL1=0;
55 1 TH0=0x3c;
C51 COMPILER V8.05a FREQEN 08/21/2007 12:58:01 PAGE 2
56 1 TL0=0xb0;
57 1 ET0=1;
58 1 EA=1;
59 1 TR0=1;
60 1 TR1=1;
61 1 p3_5=1;
62 1 }
63 //--------------------------------------------------------------------
64 void time_up() interrupt 1 using 3
65 {
66 1 TH0=0x3c;
67 1 TL0=0xb0;
68 1 if(++i==gate)
69 1 {
70 2 TR1=0;
71 2 temp_l=TL1;
72 2 temp_h=TH1;
73 2 TH1=0;
74 2 TL1=0;
75 2 i=0;
76 2 TR1=1;
77 2 }
78 1 }
79 //--------------------------------------------------------------------
80 void sel_x(uchar x) //74HC390 分频系数选择1,10,100
81 {
82 1 switch(x)
83 1 {
84 2 case 1:
85 2 {
86 3 sel_1=1;
87 3 sel_10=0;
88 3 sel_100=0;
89 3 break;
90 3 }
91 2
92 2 case 10:
93 2 {
94 3 sel_1=0;
95 3 sel_10=1;
96 3 sel_100=0;
97 3 break;
98 3 }
99 2
100 2 case 100:
101 2 {
102 3 sel_1=0;
103 3 sel_10=0;
104 3 sel_100=1;
105 3 break;
106 3 }
107 2 default:
108 2 break;
109 2 }
110 1 }
111 //--------------------------------------------------------------------
112 void temp_to_tempx(uint temp)
113 {
114 1 temp0=temp/10000;
115 1 temp1=(temp-(temp0*10000))/1000;
116 1 temp2=(temp-(temp0*10000)-(temp1*1000))/100;
117 1 temp3=(temp-(temp0*10000)-(temp1*1000)-(temp2*100))/10;
C51 COMPILER V8.05a FREQEN 08/21/2007 12:58:01 PAGE 3
118 1 temp4=temp%10;
119 1 }
120 //--------------------------------------------------------------------
121 void dis_mod(unsigned long temp,uchar point,uchar danwei)
122 {
123 1
124 1 uchar danwei_t;
125 1
126 1 temp_to_tempx(temp);
127 1
128 1 dis_one_zi(0,0,x7,1,1);//频
129 1 dis_one_zi(0,1,x8,1,1);//率
130 1
131 1 dis_one_char(0,11,0x7f,0);
132 1 dis_one_char(0,12,danwei,1);
133 1 dis_one_char(0,13,'H',1);
134 1 dis_one_char(0,14,'z',1);
135 1 dis_one_char(0,15,0x7f,0);
136 1 dis_one_char(0,4,0x7f,0);
137 1 if(temp0!=0)
138 1 {
139 2 dis_one_char(0,5,temp0+0x30,1);
140 2 clr_flag0=0;
141 2 }
142 1 else
143 1 dis_one_char(0,5,0x7f,0);
144 1 clr_flag0=1;
145 1
146 1 dis_one_char(0,10,temp4+0x30,1);
147 1 dis_one_char(0,9,temp3+0x30,1);
148 1 switch (point)
149 1 {
150 2
151 2 case 0:
152 2 {
153 3 dis_one_char(0,5,temp0+0x30,1);
154 3 dis_one_char(0,6,'.',1);
155 3 dis_one_char(0,7,temp1+0x30,1);
156 3 dis_one_char(0,8,temp2+0x30,1);
157 3 break;
158 3 }
159 2
160 2 case 1:
161 2 {
162 3 if(temp1==0 && temp0==0)
163 3 dis_one_char(0,5,0x7f,0);
164 3 dis_one_char(0,6,temp1+0x30,1);
165 3 dis_one_char(0,7,'.',1);
166 3 dis_one_char(0,8,temp2+0x30,1);
167 3 break;
168 3 }
169 2
170 2 case 2:
171 2 {
172 3 dis_one_char(0,6,temp1+0x30,1);
173 3 if(temp1==0 && temp0==0)
174 3 dis_one_char(0,6,0x7f,0);
175 3 dis_one_char(0,7,temp2+0x30,1);
176 3 dis_one_char(0,8,'.',1);
177 3 break;
178 3 }
179 2 default:
C51 COMPILER V8.05a FREQEN 08/21/2007 12:58:01 PAGE 4
180 2 break;
181 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -