è¿ä¸ªæ¯è¾ç®åï¼ä½æ没ç°æçï¼ä¸ç¥ä½ ç¨ä»ä¹è¯è¨ç¼ç¨ï¼ç¨ä»ä¹åçæºï¼æ对51æ¯è¾çï¼æ£å¨å¦AVRï¼å°±æ¯ç¨å
¶å
é¨çå®æ¶å¨ï¼è®¡æ°å¨ï¼ä¸è®©å
¶ä¸æï¼ä¸æ读åå
¶æ°å¼å¹¶æ¾ç¤ºå³å¯ãææä¸é¢ç计ç¨åºï¼æç®å注éï¼è¥è½çæï¼å计æ°å¨æ´å®¹æ
//ç¨å®æ¶è®¡æ°å¨0ä½ä¸ºèå²è®¡æ°å¨ï¼å®æ¶å¨1ä½ä¸ºå®æ¶å¨ç¨ï¼å®æ¶50ms产çä¸æ
//ä¸æ10次åï¼å³0.5s)读计æ°å¨0çæ°æ®ä¹2å³ä¸ºæå¾é¢çå¼ï¼éäºé¢çååè¾æ
¢çåºæ
//å
è¿è¡50msé¢å¤æï¼è¥TH0计æ°å¼å¤§äº12ï¼è¯´æ1Så
计æ°å¼å°è¶
è¿65535(è½0.5Så
è¿ä¸è¶
65535)
//åéeeæ¯æ 符å·æ´æ°ä¸è½è¶
è¿65535,为é²æ¢åºé,åæ¥è¦
//æ大å¯æµé¢ç约65535hz,å®é
ä¸STC12Cç³»åæ¯1Tåçæº,11.0592ä¸å
¶æé«å¯è®¡æ°é¢çè¿å¤§äºæ¤
#include <reg52.h>
#define unit unsigned int
#define uchar unsigned char
//å®ä¹ä»¥I/Oå£çåè½
sbit beiguang=P3^2;//液æ¶å±èå
sbit rs=P1^3;//液æ¶å±åéæ©,0å½ä»¤ 1æ°æ®
sbit rw=P1^4;//液æ¶å±è¯»åéæ©
sbit lcden=P1^5;//液æ¶å±ä½¿è½
sbit fm=P1^7;//è鸣å¨
#define db P2 //å®ä¹P2为æ°æ®è¾åºå£,åæ°æ®æ¶ç¨db代æ¿P2,å¢å 液æ¶å±ç¨åºçéç¨æ§
//æ´æ¹ç¡¬ä»¶æ¥çº¿æ¶,åªæ´æ¹æ¤å¤,èä¸å¿
å»æ´æ¹æ¶²æ¶å±è¯»ååç¨åº
uchar aa,bb,cc;
unit dd,ee;
void Delay1ms(unsigned int i) //1ms延æ¶ç¨åº
{
unsigned int j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void init()//åå§å设置
{
TMOD=0x15;//å®æ¶å¨0ä½ä¸ºè®¡æ°å¨ï¼å®æ¶å¨1ä½ä¸ºå®æ¶å¨ç¨
TH0=0;//计æ°å¨æ¸
0
TL0=0;
EA=1;//å¼æ»ä¸æ
ET1=1;//å
许å®æ¶å¨1ä¸æ
TH1=0x4c;
TL1=0x5c;
TR0=1;//å¯å¨è®¡æ°å¨
TR1=1;//å¯å¨å®æ¶å¨
aa=0;
}
void write_com(uchar com)//å液æ¶å±åå½ä»¤
{
db=com;
rs=0;
rw = 0;
lcden=0;
Delay1ms(10*12);
lcden=1;
Delay1ms(10*12);
lcden=0;
}
void write_date(uchar date)//å液æ¶å±åæ°æ®
{
db=date;
rs=1;
rw = 0;
lcden=0;
Delay1ms(10*12);
lcden=1;
Delay1ms(10*12);
lcden=0;
}
void init2()//液æ¶å±åå§å
{
beiguang=0;
rw=0;
write_com(0x38);
Delay1ms(10*12);
write_com(0x0f);
Delay1ms(10*12);
write_com(0x06);
Delay1ms(10*12);
write_com(0x01);
Delay1ms(10*12);
}
void display4(unsigned int number) //åè¡å¤ä½æ¾ç¤ºç¨åº
{
uchar A1,A2,A3,A4,A5;
init2();//液æ¶å±åå§å
A1=number/10000%10;//å离åºåä¸,ä¸,å,ç¾,å,个
A2=number/1000%10;
A3=number/100%10;
A4=number/10%10;
A5=number%10;
write_com(0x80);//第1个æ°æ®çä½ç½®è®¾å®,第1è¡ç¬¬1å
Delay1ms(10);
write_date(0x30+A1);//åæ°æ®
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
write_com(0x87);//第6个æ°æ®'H'çä½ç½®,ä¸é´ç©º85å86 äºæ ¼
write_date('H');
Delay1ms(10);
write_date('z');
Delay1ms(10);
}
void main()//主ç¨åºå¾ç®å
{
init();//åå§å
while(1)//循ç¯ç¨åº
{
dd=bb*256+cc;//0.5Sç计æ°å¼
ee=2*dd;//æ¢ç®ä¸º1ç§éç计æ°å¼
if(aa==1)
{
if(TH0>12)//é¢å¤æ,50mså
TH0>12,1så
计æ°å¼å°è¶
è¿å¯è®¡æ°çæ大å¼65535
fm=0;//æ¥è¦
}
display4(ee);//æ¾ç¤º
fm=1;//æ¥è¦åæ¢
}
}
void timer1()interrupt 3//注æï¼å®æ¶å¨1çä¸æåºå·ä¸º3
{
aa++;
TH1=0x4c;//11.0592Mhz
//TL1=0;//11.0592Mhz
TL1=0x5c;//å®é
çµè·¯æ¯è¡é¢ç11.03705Mhz,对TL1ä¿®æ£
if(aa==10)//ä¸æ10次,å
±0.5S
{
TR0=0;//æå计æ°
aa=0;
bb=TH0;//读åºè®¡æ°å¨æ°æ®
cc=TL0;
TL0=0;//计æ°å¨æ¸
0
TH0=0;
TR0=1;//éæ°å¯å¨
}
}
温馨提示:答案为网友推荐,仅供参考