資源描述:
《波形發(fā)生器程序.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、附錄2程序清單#include#include#defineSEND_INITXBYTE[0xf400]//液晶寫指令#defineSEND_DATAXBYTE[0xf500]//液晶寫數(shù)據(jù)#defineREAD_BUSYXBYTE[0xf600]//液晶讀忙地址#defineREAD_DATAXBYTE[0xfF00]#defineDAC0832adr1XBYTE[0xafff]#defineDAC0832adr2XBYTE[0xcfff]#defineucharunsignedcha
2、r#defineuintunsignedint#defineulongunsignedlong#definecomm0#definedat1sbitA_4052=P1^6;sbitB_4052=P1^7;sbitA0_38=P3^4;sbitA1_38=P3^5;bitbusy;//定義LCD忙標(biāo)志位voidwr_lcd(uchardat_comm,ucharcontent);//寫控制字與數(shù)據(jù)voidwr_str(unsignedcharaddr,unsignedcharcounts,constunsignedchar*p
3、s);//寫字符voidchk_busy(void);//忙檢測(cè)函數(shù)voidinit_lcd();voidclrram(void);voidtiaobo();uchari,tz,s,fd,tb,m,tf;ulongCF,tp,g;ucharcodeTAB1[]={"Fangbo:"};ucharcodeTAB2[]={"Zhengxuanbo:"};ucharcodeTAB3[]={"Sanjiaobo:"};ucharcodeTAB4[]={"實(shí)時(shí)電壓值:"};ucharcodeTAB5[]={"實(shí)時(shí)頻率"};ucharc
4、odeTAB6[]={"頻段:100K~20kHZ"};ucharcodeTAB7[]={"當(dāng)前電壓值:"};//外部中斷0服務(wù)函數(shù)//功能:按鍵判斷,確認(rèn),返回,幅度,頻率//-----------------------------voidext0()interrupt0{ucharJP,temp;m++;temp=P1;JP=temp
5、0xe0;while(JP!=0xff){switch(JP)//按鍵檢測(cè){case(0xfe):if((s==2)&&(tz%2==1))//K0鍵{fd++;if(fd%3==1){
6、tp=500;g=10;wr_str(0x90,16,TAB4);}if(fd%3==2){tp=5000;g=100;wr_str(0x90,16,TAB5);}if(fd%3==0){tp=50000;g=1000;wr_str(0x90,16,TAB6);}/*if(fd%4==3){tp=50;g=1;wr_str(0x90,16,TAB8);}*/}break;case(0xfd):if(s==0)//K1鍵{tb++;}if(s==1){tz++;}if(s==2){if(tz%2){if(tp<100000){
7、if((tp==1000)
8、
9、(tp==10000))g*=10;/*if((tp==100)
10、
11、(tp==1000)
12、
13、(tp==10000))g*=10;*/tp+=g;}}/*else{if(tf<50)tf++;}*/}break;case(0xfb):if(s==0)//K2鍵{tb--;}if(s==1){tz++;}if(s==2){if(tz%2){if(tp>=100){if((tp==1000)
14、
15、(tp==10000))g=g/10;/*if((tp==100)
16、
17、(tp==1000)
18、
19、(tp==10
20、000))g*=10;*/tp-=g;}}/*else{if(tf>0)tf--;}*/}break;case(0xf7):if(s<2)//K3鍵{s++;}break;case(0xef):if(s>0)//K4鍵{s--;}break;default:break;}while(JP!=0xff)//松手檢測(cè){temp=P1;JP=temp
21、0xe0;}}}//:延時(shí)函數(shù)voiddelay(uintus){while(us--);}//:延時(shí)函數(shù)1msvoiddelay1(uintms)//調(diào)用延時(shí)函數(shù)delay1();
22、{uinti,j;for(i=0;i