|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì) |
| 作者:scb521 欄目:單片機(jī) |
1. 實(shí)驗(yàn)任務(wù) 利用單片機(jī)AT89S51與ADC0809設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測(cè)量0-5V之間的直流電壓值,四位數(shù)碼顯示,但要求使用的元器件數(shù)目最少。 2. 電路原理圖 |
| 2樓: | >>參與討論 |
| 作者: scb521 于 2006/12/7 23:56:12 發(fā)布:
3. 系統(tǒng)板上硬件連線 (1). 把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0-P1.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。 (2). 把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0-P2.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。 (3). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.0與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的ST端子用導(dǎo)線相連接。 (4). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.1與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的OE端子用導(dǎo)線相連接。 (5). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.2與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的EOC端子用導(dǎo)線相連接。 (6). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.3與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的CLK端子用導(dǎo)線相連接。 (7). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的A (8). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的IN0端子用導(dǎo)線連接到“三路可調(diào)電壓模塊”區(qū)域中的VR1端子上。 (9). 把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0-P0.7用8芯排線連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的D0D1D2D3D4D5D6D7端子上。 4. 程序設(shè)計(jì)內(nèi)容 i. 由于ADC0809在進(jìn)行A/D轉(zhuǎn)換時(shí)需要有CLK信號(hào),而此時(shí)的ADC0809的CLK是接在AT89S51單片機(jī)的P3.3端口上,也就是要求從P3.3輸出CLK信號(hào)供ADC0809使用。因此產(chǎn)生CLK信號(hào)的方法就得用軟件來產(chǎn)生了。 ii. 由于ADC0809的參考電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過數(shù)據(jù)處理,在數(shù)碼管上顯示出電壓值。實(shí)際顯示的電壓值 (D/256*VREF) |
|
| 3樓: | >>參與討論 |
| 作者: scb521 于 2006/12/7 23:57:23 發(fā)布:
C語言源程序 #include <AT89X52.H> unsigned CHAR code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x unsigned CHAR code dispcode[]={0x 0x6d,0x7d,0x07,0x unsigned CHAR dispbuf[8]={10,10,10,10,0,0,0,0}; unsigned CHAR dispcount; unsigned CHAR getdata; unsigned int TEMP; unsigned CHAR i; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; void main(void) { ST=0; OE=0; ET0=1; ET1=1; EA=1; TMOD=0x12; TH0=216; TL0=216; TH1=(65536-4000)/256; TL1=(65536-4000)%256; TR1=1; TR0=1; ST=1; ST=0; while(1) { if(EOC==1) { &nbs |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |