




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
AD0809簡(jiǎn)易數(shù)字電壓表AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!一.AD0809電壓表設(shè)計(jì)要求要求:
設(shè)計(jì)一個(gè)簡(jiǎn)易的數(shù)字電壓表,用來(lái)測(cè)量我們焊接的單片機(jī)開發(fā)板中AD0809模塊前端電位器R40的實(shí)時(shí)電壓值,并用電路板中左4位數(shù)碼管的前三位顯示當(dāng)前模擬電壓的十進(jìn)制數(shù)字量值,同時(shí)用右數(shù)碼管顯示當(dāng)前的模擬電壓值.附加要求:
為了防止數(shù)字電壓表使用時(shí)出現(xiàn)測(cè)量值與實(shí)際值存在誤差的問(wèn)題,須增加能通過(guò)按鍵對(duì)十進(jìn)制數(shù)字量測(cè)量值進(jìn)行100以內(nèi)補(bǔ)償值設(shè)定的功能.AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!二、A/D轉(zhuǎn)換的流程圖開始左右數(shù)碼管顯示十進(jìn)制初始化在LCD中顯示數(shù)碼管中的數(shù)值判斷是否按鍵按下?判斷是加1還是減1?否是加1減1結(jié)束AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!三、設(shè)計(jì)中的問(wèn)題1、串口在線下載問(wèn)題;2、數(shù)碼管的顯示問(wèn)題;3、用周立公芯片實(shí)現(xiàn)按鍵加一;4、LCD的顯示;5、調(diào)試中遇到顯示不穩(wěn)定;AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!五、程序#include<reg52.h>#include"ZLG7290.h"#include"I2C.h"#include<INTRINS.H>//#include<intrins.h>#definedata_pointP0#defineucharunsignedchartypedefunsignedcharBYTE; //重新定義typedefunsignedintWORD; //重新定義typedefbitBOOL; //重新定義BYTEcodedisp2[1]={"V"};BYTEcodedisp3[3]={".-+"};BYTEcodedisp4[]={"Stander:"};sbitrs=P1^3; //定義P13端口為rssbitep=P1^5;sbitrw=P1^4;//lcdAD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!BOOLlcd_bz()
{
BOOLresult;
rs=0;
rw=1;
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(BOOL)(P0&0x80);
ep=0;
returnresult;
}
lcd_wcmd(BYTEcmd)
{while(lcd_bz()==1);
rs=0;
rw=0;
ep=0;
_nop_();
_nop_();
P0=cmd;AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
lcd_init()
{
lcd_wcmd(0x38);
lcd_wcmd(0x0c);
lcd_wcmd(0x06);
//lcd_wcmd(0x00);
//delay(1);
//lcd_wcmd(0x14);
//delay(1);
lcd_wcmd(0x01);
//lcd_pos(12);
//lcd_wdat(disp2[1]);AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!voiddisplay()
{
unsignedinti,j,k=0xfb;
for(i=0;i<4;i++)
{
// P1=0xff;
if(i==0)
{
ZLG7290_Download(3,1,0,disp[i]);
delay(1);
}
if(i==1)
{
ZLG7290_Download(2,0,0,disp[i]);
delay(1);
}
if(i==2)
{
ZLG7290_Download(1,0,0,disp[i]);
delay(1);
}AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!voidcovert(unsignedcharx)
{ unsignedintX;
charcodedispcode[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
X=x*(1.0)*5000/255; // x=(x*100*1.0)/51;
disp[0]=dispcode[X/1000];
disp[1]=dispcode[X%1000/100]; //x/50 x/100;
//disp[0]=disp[0]+0x80;
disp[2]=dispcode[X%1000%100/10]; //x/10 x%100/10;
disp[3]=dispcode[X%1000%100%10]; //x%100%10;
// disp[4]=k/100;
// disp[5]=k%100/10;
// disp[6]=k%100%10;}
voidDispValue(charx,unsignedchardat)
{unsignedchard;
d=dat/100;
ZLG7290_Download(x+2,0,0,d);
d=dat%100/10;
ZLG7290_Download(x+1,0,0,d);
d=dat%100%10;
ZLG7290_Download(x,0,0,d);
disp[4]=dat/100;
disp[5]=dat%100/10;
disp[6]=dat%100%10;}
AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!//ZLG7290_ReadReg(ZLG7290_FunctionKey,&FnKeyValue);
// //顯示鍵值、連擊計(jì)數(shù)器值、功能鍵值
if(KeyValue==2)
{
count++;
//DispValue(0,count);
}
if(KeyValue==3)
{
count--;
//DispValue(0,count);
}
if(count==100)
{
count=100;
}
if(count>=0)
{
}
//AD=ADC0809();AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)! lcd_pos(0x46);
for(l=4;l<7;l++)
{
lcd_wdat(0x30+disp[l]);
// lcd_wdat(0x30+disp[5]);
// lcd_wdat(0x30+disp[6]);
}
delay(100);
i=0;
// }
// PCON|=0x01; //使CPU進(jìn)入空閑狀態(tài),任一中斷可喚醒
}
}
voidmain()
{
BYTEi;
i=0;
TMOD=0x10;
// TH1=(65536-10000)/256;
// TL1=(65536-10000)%256;
// TH1=256-2;
// TL1=256-2;AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!四、解答上述問(wèn)題硬件問(wèn)題:串口不能下載程序,通過(guò)一步步檢測(cè)MAX232是否與串口連通,是否與單片機(jī)接受和發(fā)送的端口連接上,借助萬(wàn)用表查看電阻、電容以及芯片是否正常工作。
軟件問(wèn)題:經(jīng)過(guò)了解zlg7290.h文件、zlg7290.c文件、VIIC_C51.h文件以及VIIC_C51.c文件,主要是zlg7290.c文件中Test_Key子函數(shù)、DispValue子函數(shù)、ZLG7290_Download子函數(shù)。通過(guò)在主函數(shù)中調(diào)用子函數(shù),并且多處的運(yùn)用for、while、if語(yǔ)句,經(jīng)過(guò)編譯,再一步步排查問(wèn)題。AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!sbitEOC=P3^3;
sbitADDA=P2^0;
sbitADDB=P2^1;
sbitADDC=P2^2;
sbitOE=P2^5;
sbitSTART=P2^6;
//sbitCLK=P2^7;
volatilebitFlagINT=0;
unsignedcharAD=0;
charcount=0;
unsignedchardisp[7]={0,0,0,0,0,0,0};
unsignedintt0count=0;
voiddelay(unsignedchart)
{do
{TH1=0xD8;
TL1=0xf0;
TR1=1;
while(!TF1);
TF1=0;
TR1=0;
}while(--t);
}AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
lcd_pos(BYTEpos)
{
lcd_wcmd(pos|0x80);
}
lcd_wdat(BYTEdat)
{
while(lcd_bz());
rs=1;
rw=0;
ep=0;
P0=dat;AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!}
voidINT0_SVC()interrupt0
{
FlagINT=1;
}
voidSystemInit()
{
I2C_Init();
TMOD=0x01;
delay(1); //等待ZLG7290復(fù)位完畢
}
voidClearAll()
{
unsignedcharx;
for(x=0;x<8;x++)
{
ZLG7290_Download(x,0,0,31);
}
}
AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!if(i==3)
{ZLG7290_Download(0,0,0,disp[i]);
delay(1);}
//ZLG7290_Download(7,0,0,disp[4]);
//ZLG7290_Download(6,0,0,disp[5]);
//ZLG7290_Download(5,0,0,disp[6]);
//P1=k;
// k=k>>=1;
for(j=200;j>0;j--);}
//P1=0xff;}
unsignedintADC0809()
{unsignedintd;
ADDC=0;
ADDB=0;
ADDA=0;
TR1=1;
START=1;START=0;
while(EOC==0);
OE=1;
d=data_point;
OE=0;
TR1=0;
returnd;}
AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!voidTest_Key()
{charfuhao;
unsignedcharKeyValue;
//BYTEi;
//i=0;
unsignedchari=0,k=0,l=0;
// unsignedcharRepeatCnt;
// unsignedcharFnKeyValue;
ClearAll();
EA=0;
IT0=1; //負(fù)邊沿觸發(fā)中斷
EX0=1; //允許外部中斷
EA=1;
for(;;)
{
if(FlagINT) //如果有鍵按下
{
//清除中斷標(biāo)志
FlagINT=0;
//讀取鍵值、連擊計(jì)數(shù)器值、功能鍵值
ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
// ZLG7290_ReadReg(ZLG7290_RepeatCnt,&RepeatCnt);AD0809簡(jiǎn)易數(shù)字電壓表共19頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!//DispValue(0,KeyValue);
// DispHexValue(3,RepeatCnt);
// DispHexValue(6,FnKeyValue);}
lcd_pos(0);
// for(i=0;i<6;i++)
// {AD=ADC0809();
covert(AD+count);
display();
DispValue(5,AD+count);
while(disp4[i]!='\0')
{lcd_wdat(disp4[i]);
i++;}
lcd_pos(0x09);
lcd_wdat(0x30+disp[0]);
lcd_pos(0x0A);
lcd_wdat(disp3[0]); /
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拍賣平臺(tái)合作協(xié)議
- 壁畫繪制服務(wù)合同
- 提升免疫力的養(yǎng)生方法
- 頭盔交通安全
- 阿勒泰地區(qū)2024-2025學(xué)年數(shù)學(xué)三下期末達(dá)標(biāo)檢測(cè)試題含解析
- 阿爾山市2025屆三年級(jí)數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含解析
- 隴南師范高等??茖W(xué)?!吨袊?guó)近代外交史》2023-2024學(xué)年第二學(xué)期期末試卷
- 強(qiáng)化管理創(chuàng)建一流
- 陜西國(guó)際商貿(mào)學(xué)院《中國(guó)古代文學(xué)作品選與中學(xué)語(yǔ)文(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西學(xué)前師范學(xué)院《西方音樂(lè)史與作品欣賞(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 腰痛的中醫(yī)適宜技術(shù)
- 2024年電力交易員(高級(jí)工)職業(yè)鑒定理論考試題庫(kù)(單選題、多選題、判斷題)
- GA/T 2133.2-2024便攜式微型計(jì)算機(jī)移動(dòng)警務(wù)終端第2部分:安全監(jiān)控組件技術(shù)規(guī)范
- 婦科三基考試題
- 畢業(yè)設(shè)計(jì)-基于stm32的智能小車設(shè)計(jì)
- 淋巴水腫相關(guān)知識(shí)及治療(手法引流及繃帶包扎)
- 股票賬戶托管合同
- 富血小板血漿(PRP)簡(jiǎn)介
- 人教版(2019)必修第二冊(cè)高一化學(xué)練習(xí)第五章第二節(jié)氮及其化合物鞏固與檢測(cè)(附參考答案)
- “沾化冬棗”優(yōu)勢(shì)特色產(chǎn)業(yè)培育方案(2021-2025年)
- 配音技巧知識(shí)課件
評(píng)論
0/150
提交評(píng)論