📄 08-10-31频率检测.lst
字号:
C51 COMPILER V7.06 08_10_31芲率检测 11/01/2008 23:02:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 08_10_31芲率检测
OBJECT MODULE PLACED IN 08-10-31频率检测.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 08-10-31频率检测.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //#include<reg52.h>
2 #include<STC89C51RC.H>
3 #define uint unsigned int
4 #define uchar unsigned char
5 //#include<intrins.h> //右移函数需要此头文件INTRINS.H 大小写不限
6 uint i=0,meimiao=0;
7 uint tt=0,x=0,y=0,h=0,m=0,s=0,a=0,b=0,c=0,d=0,e=0,f=0;
8 sbit rs=P2^3;
9 sbit rw=P2^2;
10 sbit lcden=P2^4;
11
12 sbit led=P1^0;
13 sbit send=P1^2;
14
15 uchar code table[]=" ";//" 2007-7-30 MON";
16 uchar code table1[]=" ";//" 00:00:00";
17 void delay(uint z)
18 {
19 1 uint x,y;
20 1 for(x=z;x>0;x--)
21 1 for(y=110;y>0;y--);
22 1 }
23 void comd(uchar com)
24 {
25 1 rs=0;
26 1 lcden=0;
27 1 rw=0;
28 1 P0=com;
29 1 delay(5);
30 1 lcden=1;
31 1 delay(5);
32 1 lcden=0;
33 1 }
34 void date(uchar date)
35 {
36 1 rs=1;
37 1 lcden=0;
38 1 rw=0;
39 1 P0=date;
40 1 delay(5);
41 1 lcden=1;
42 1 delay(5);
43 1 lcden=0;
44 1 }
45 void init(void)
46 {
47 1 uint num;
48 1 comd(0x38);//设置16*2显示,8位数据口
49 1 comd(0x0c);//不显示光标
50 1 comd(0x06);//写一个字地址加1,且光标位置加1
51 1 comd(0x01);//清零
52 1 comd(0x80);
53 1 for(num=0;num<15;num++)
54 1 {
55 2 date(table[num]);
C51 COMPILER V7.06 08_10_31芲率检测 11/01/2008 23:02:00 PAGE 2
56 2 delay(5);
57 2 }
58 1 comd(0x80+0x40);
59 1 for(num=0;num<12;num++)
60 1 {
61 2 date(table1[num]);
62 2 delay(5);
63 2 }
64 1 }
65 void sfm(uchar add,uchar dat)
66 {
67 1 comd(0x80+add);//+0x40+8
68 1 date(0x30+dat);
69 1
70 1 }
71 void see(void)
72 {
73 1 uchar ge,shi,bai,qian,wan,shiwan,baiwan,qianwan,yi;
74 1 ge=i%10;
75 1 shi=i/10%10;
76 1 bai=i/100%10;
77 1 qian=i/1000%10;
78 1 wan=i/10000%10;
79 1 shiwan=i/100000%10;
80 1 baiwan=i/1000000%10;
81 1 qianwan=i/10000000%10;
82 1 yi=i/100000000%10;
83 1
84 1 sfm(0,yi);
85 1 sfm(1,qianwan);
86 1 sfm(2,baiwan);
87 1 sfm(3,shiwan);
88 1 sfm(4,wan);
89 1 sfm(5,qian);
90 1 sfm(6,bai);
91 1 sfm(7,shi);
92 1 sfm(8,ge);
93 1 sfm(9,'H'-48);
94 1 sfm(10,'z'-48);
95 1 }
96 void play(void)
97 {
98 1 EA=1;//开总中断
99 1 ET1=1;//开定时器中断
100 1 TMOD=0X01;//定时器工作方式为T0
101 1 TH0=(65536-50000)/256;//定时器高八位初值
102 1 TL0=(65536-50000)%256;//定时器低八位初值
103 1 ET0=1; //开定时器0
104 1 TR0=1; //启用定时器0
105 1
106 1 EX0=1;//外部中断0开
107 1 IT0=1;//下降沿触发外部中断
108 1 }
109
110 void Timer2init(void)
111 {
112 1 T2MOD=0x02;
113 1 T2CON=0x14;
114 1 //EA=1; /* interupt enable */
115 1 //ET2=1; /* enable timer1 interrupt */
116 1 TR2=1;
117 1 RCAP2L=250;
C51 COMPILER V7.06 08_10_31芲率检测 11/01/2008 23:02:00 PAGE 3
118 1 RCAP2H=255;
119 1 }
120 main()
121 {
122 1 Timer2init();
123 1 play();
124 1 init();
125 1 while(1)
126 1 {
127 2 see();
128 2 delay(400);
129 2 }
130 1
131 1 }
132
133
134 void ISR_Key(void) interrupt 0
135 {
136 1 led=~led;//外部中断触发一次,P1取反一次
137 1 meimiao++;
138 1 }
139
140 void time0() interrupt 1//定时器工作方式是1
141 {
142 1 TH0=(65536-50000)/256;//定时器高八位初值
143 1 TL0=(65536-50000)%256;//低八位初值
144 1 tt++;
145 1 if(tt==20)
146 1 {
147 2 tt=0;
148 2 i=meimiao;
149 2 meimiao=0;
150 2 }
151 1 }
152 /*
153 void Timer2(void) interrupt 5
154 {
155 TH2=255; Init value
156 TL2=200;
157 send=~send;
158 P1=~P1;
159 //LED=~LED;
160
161 }
162 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 564 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 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 + -