導航:首頁 > 操作系統 > p單片機數字電壓表項目設計報告

p單片機數字電壓表項目設計報告

發布時間:2025-09-14 07:14:58

『壹』 單片機簡易數字電壓表電子元器清單那些

下面是製作簡易數字電壓表所需的單片機電子元器清單:

單片機:這是製作數字電壓表的核心元器件,負責控制電壓表的運行。

液晶顯示屏:用於顯示電壓表測量結果。

電阻:用於分壓和模擬模數轉換。

放大器:用於放大微小的電壓信號。

電壓參考源:用於校準電壓表的測量精度。

開關:用於控制電壓表的電源。

插座:用於連接電壓表測量的電壓源。

這些電子元器件是製作簡易數字電壓表的基本要素,如果您想要更復雜的功能,可能還需要其他元器件。希望這些信息能幫到您。

『貳』 基於51單片機的數字電壓表總結與體會

通過與同學的討論與認真計算設計分析所完成的,課程設計的任務是設計、組裝並調試一個數字電壓表測量系統。需要我們綜合運用單片機等課程的知識,通過查閱資料、方案論證與選定;設計和選取電路和元器件;分析指標及討論,完成設計任務。
在這次課程設計中,我學會了怎樣去根據課題的要求去設計電路和調試電路。動手能力得到很大的提高。從中我發現自己並不能很好的熟練去使用我所學到的高頻電路知識。在以後學習中我要加強對使用電路的設計和選用能力。但由於電路比較簡單、定型,而不是真實的生產、科研任務,所以我們基本上能有章可循,完成起來並不困難。把過去熟悉的定型分析、定量計算逐步,元器件選擇等手段結合起來,掌握工程設計的步驟和方法,了解科學實驗的程序和實施方法。這對今後從事技術工作無疑是個很好的訓練。通過這種綜合訓練,我們可以掌握電路設計的基本方法,提高動手組織實驗的基本技能,培養分析解決電路問題的實際本領,為以後畢業設計和從事電子實驗實際工作打下基礎。
還有就是每次在組團做試驗都會感覺特別的充實,我們可以按照自己設計的電路去完成,老師也不是死板的要求我們怎麼怎麼,而是給了我們盡可能大的自己決定的餘地,這次的元器件都是按照我們設計出來的電路參數給定的,而且每位老師都很耐心的為我們解決試驗中所出現的問題,最後真心的感謝老師對我們課程設計的建議和幫助,我們才得以圓滿的完成這次課程設計!

『叄』 基於單片機的數字電壓表設計 (請不要完成抄襲)

我給你看看我以前做過的數字電壓表,匯編的
COM EQU 50H ;指令寄存器
DAT EQU 51H ;數據寄存器
RS EQU P2.1 ;LCD寄存器選擇信號
RW EQU P2.2 ;LCD讀/寫選擇信號
E EQU P2.3 ;LCD使能信號

ORG 0000H
LJMP MAIN ;主程序入口地址
ORG 000BH
LJMP BT0 ;T0中斷入口
ORG 0030H ;主程序,初始化

MAIN:
MOV SP,#60H
LCALL INT
MOV 30H,#30H ;電壓整數位
MOV 31H,#02EH ;小數點位
MOV 32H,#30H ;小數個位
MOV 33H,#30H ;小數十位
MOV 34H,#30H ;小數百位
MOV 35H,#56H ;字元"V"
MOV R7,#30H
LCALL STR0 ;顯示字元串0
LCALL DELAY
LCALL STR1 ;顯示字元串1
LCALL DELAY
LCALL N2 ;顯示Voltage=0.000V

;***********定時器初始化程序***********

MOV TMOD,#00H ;定時器T0設為方式0
MOV TH0,#00H ;裝入定時常數定時100us
MOV TL0,#00H
SETB TR0 ;啟動T0
MOV 24H,#08H;裝入T0中斷次數
MOV IE,#82H ;開中斷
LP:
MOV R7,#30H ;顯示緩沖區首地址
LCALL DISPLY
SJMP LP ;循環顯示
LED1:CLR P3.0
RET
DISPLY: ;LCD顯示子程序
MOV COM,#0CAH
LCALL PR1
MOV DAT,30H
LCALL PR2
MOV DAT,31H
LCALL PR2
MOV DAT,32H
LCALL PR2
MOV DAT,33H
LCALL PR2
MOV DAT,34H
LCALL PR2
MOV DAT,35H
LCALL PR2
RET
STR0:
MOV COM,#01H
LCALL PR1
MOV COM,#06H
LCALL PR1
MOV COM,#090H ;設置DDRAM地址
LCALL PR1 ;調寫指令代碼子程序
MOV DPTR,#TAB4
MOV R2,#16
MOV R3,#00H
WRIN0:
MOV A,R3
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC R3
DJNZ R2,WRIN0
MOV COM,#0D0H
LCALL PR1
MOV DPTR,#TAB5
MOV R2,#16
MOV R3,#00H
WRIN1:
MOV A,R3
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC R3
DJNZ R2,WRIN1
MOV R3,#10H
ZUOYI:
MOV COM,#18H
LCALL PRX
DJNZ R3,ZUOYI
LCALL DELAY00
LCALL DELAY00
LCALL DELAY00
LCALL DELAY00
RET

RET

STR1:
MOV COM,#01H ;LCD清0命令
LCALL PR1 ;調寫指令代碼子程序
MOV COM,#06H ;輸入方式命令,游標右移
LCALL PR1 ;調寫指令代碼子程序
MOV COM,#40H
LCALL PR1
MOV R5,#20H
MOV DPTR,#ZI
MOV R4,#0

LOOP1:MOV A,R4
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC R4
DJNZ R5,LOOP1
MOV COM,#80H
LCALL PR1
MOV DPTR,#TAB2
MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
MOV A,#01H
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
MOV A,#02H
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
MOV A,#03H
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
MOV R1,#00H
MOV R0,#0dH
MOV DPTR,#TAB3
LOOP2:MOV A,R1
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC R1
DJNZ R0,LOOP2

RET

N2: MOV COM,#0C0H
LCALL PR1
MOV DPTR,#TAB1
MOV R2,#10
MOV R3,#00H
WRIN:
MOV A,R3
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC R3
DJNZ R2,WRIN
RET
TAB1: DB "VOLTAGE = "
TAB2: DB 00H
DB 01H
DB 02H
DB 03H
DB 04H
DB 05H

TAB3:DB "10701 tcw "

ZI: DB 009H,00AH,00CH,01FH,00CH,00AH,00CH,009H
DB 004H,004H,01FH,004H,00AH,00AH,011H,000H
DB 004H,004H,01FH,01FH,01FH,004H,007H,000H
DB 004H,00EH,010H,00EH,000H,00EH,003H,000H
TAB4:DB " welcome ! "
TAB5:DB "DESIGN BY tcw"
TAB6:DB "123456"

;********************************************************************
;定時器T0中斷服務子程序,讀取ADC0809第0通道的A/D轉換結果並化為顯示值*
;********************************************************************
BT0:
PUSH ACC
PUSH PSW
MOV PSW,#08H
CLR TR0
MOV TH0,#00H ;重新裝入初值
MOV TL0,#00H
DEC 24H
MOV A,24H
JNZ RTN1
MOV 24H,#08H

LCALL ADC
RTN1: SETB TR0
POP PSW
POP ACC
RETI
ADC:
MOV DPTR,#0F6FFH
MOV A,#0 ;選擇通道0
MOVX @DPTR,A ;啟動AD轉換
MOV A,#40H
DJNZ ACC,$
MOVX A,@DPTR
MOV 22H,A
MOV 21H,#0CCH
CJNE A,21H,BJ0
BJ0:JNC LED
SJMP LL0
LL0:SETB P3.0
SJMP LL
LED:LCALL LED1
LL: MOV A,22H
MOV B,#05H ;A/D轉換結果化為顯示值
MUL AB ;(AD*5)/256
MOV 30H,B ;AD*5的高位元組為整數部分
MOV B,#0AH
MUL AB ;AD*5的低位元組為/256的結果,為小數部分
MOV 32H,B ;二進制小數換為10進制數
MOV B,#0AH
MUL AB
MOV 33H,B
MOV B,#0AH
MUL AB
MOV 34H,B
MOV A,30H
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 30H,A
MOV A,32H
MOVC A,@A+DPTR
MOV 32H,A
MOV A,33H
MOVC A,@A+DPTR
MOV 33H,A
MOV A,34H
MOVC A,@A+DPTR
MOV 34H,A
RET
TAB: DB "0123456789"
;*****************************************
;****LCD間接控制方式下的初始化子程序******
;*****************************************
INT:
LCALL DELAY
MOV COM,#38H ;設置工作方式
LCALL PR1
MOV COM,#01H
LCALL PR1
MOV COM,#06H
LCALL PR1
MOV COM,#0CH
LCALL PR1
RET

DELAY: ;延時子程序
MOV R6,#0FH
MOV R7,#00H
DELAY1:
NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY1
RET

DELAY00: ;延時子程序
MOV R6,#0FFH
MOV R7,#0FFH
DELAY0:
NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY1
RET
;*********************************************
;*******LCD間接控制方式下的驅動子程序*********
;*********************************************
;2 寫指令代碼子程序
PRX:
PUSH ACC
CLR RS
SETB RW
PR110:
MOV P0,#0FFH
SETB E
LCALL DELAY00
NOP
MOV A,P0
CLR E
JB ACC.7,PR11
CLR RW
MOV P0,COM
SETB E
CLR E
POP ACC
RET

PR1:
PUSH ACC
CLR RS
SETB RW
PR11:
MOV P0,#0FFH
SETB E
LCALL DELAY
NOP
MOV A,P0
CLR E
JB ACC.7,PR11
CLR RW
MOV P0,COM
SETB E
CLR E
POP ACC
RET
;3 寫顯示數據子程序

PR2:
PUSH ACC
CLR RS
SETB RW
PR21:
MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0
CLR E
JB ACC.7,PR21
SETB RS
CLR RW
MOV P0,DAT
SETB E
CLR E
POP ACC
RET
END

『肆』 單片機設計製作數字電壓表

3.系統板上硬體連線

a)把「單片機系統」區域中的P1.0-P1.7與「動態數碼顯示」區域中的ABCDEFGH埠用8芯排線連接。

b)把「單片機系統」區域中的P2.0-P2.7與「動態數碼顯示」區域中的S1S2S3S4S5S6S7S8埠用8芯排線連接。

c)把「單片機系統」區域中的P3.0與「模數轉換模塊」區域中的ST端子用導線相連接。

d)把「單片機系統」區域中的P3.1與「模數轉換模塊」區域中的OE端子用導線相連接。

e)把「單片機系統」區域中的P3.2與「模數轉換模塊」區域中的EOC端子用導線相連接。

f)把「單片機系統」區域中的P3.3與「模數轉換模塊」區域中的CLK端子用導線相連接。

g)把「模數轉換模塊」區域中的A2A1A0端子用導線連接到「把其他形式的能轉換成電能的裝置叫做電源">電源模塊」區域中的GND端子上。

h)把「模數轉換模塊」區域中的IN0端子用導線連接到「三路可調電壓">電壓模塊」區域中的VR1端子上。

i)把「單片機系統」區域中的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的D0D1D2D3D4D5D6D7端子上。

4.程序設計內容

i.由於ADC0809在進行轉換為相應的數宇量的電路">A/D轉換時需要有CLK信號,而此時的ADC0809的CLK是接在AT89S51單片機的P3.3埠上,也就是要求從P3.3輸出CLK信號供ADC0809使用。因此產生CLK信號的方法就得用軟體來產生了。

ii.由於ADC0809的參考電壓VREF=VCC">CC,所以轉換之後的數據要經過數據處理,在數碼管">數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF)

5.匯編源程序

(略)

6.C語言源程序

#include<AT89X52.H>

unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsignedchardispbuf[8]={10,10,10,10,0,0,0,0};

unsignedchardispcount;

unsignedchargetdata;

unsignedinttemp;

unsignedchari;

sbitST=P3^0;

sbitOE=P3^1;

sbitEOC=P3^2;

sbitCLK=P3^3;

voidmain(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)

{

OE=1;

getdata=P0;

OE=0;

temp=getdata*235;

temp=temp/128;

i=5;

dispbuf[0]=10;

dispbuf=10;

dispbuf=10;

dispbuf=10;

dispbuf[4]=10;

dispbuf[5]=0;

dispbuf[6]=0;

dispbuf[7]=0;

while(temp/10)

{

dispbuf[i]=temp%10;

temp=temp/10;

i++;

}

dispbuf[i]=temp;

ST=1;

ST=0;

}

}

}

voidt0(void)interrupt1using0

{

CLK=~CLK;

}

voidt1(void)interrupt3using0

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

if(dispcount==7)

{

P1=P1|0x80;

}

dispcount++;

if(dispcount==8)

{

dispcount=0;

}

}

閱讀全文

與p單片機數字電壓表項目設計報告相關的資料

熱點內容
二手開利螺桿壓縮機 瀏覽:309
有php基礎學java要多久 瀏覽:300
程序員稅後工資多少可以跳槽 瀏覽:172
個別網站無法解析伺服器的dns地址 瀏覽:972
安卓手機如何打開rmb文件 瀏覽:215
新生兒app叫什麼 瀏覽:65
斗魚加密怎麼弄 瀏覽:761
為什麼會加密不可上網 瀏覽:531
步步高手機編譯時間啥意思 瀏覽:396
程序員復盤app 瀏覽:160
pdf確定 瀏覽:536
php連接mysql埠號 瀏覽:999
id3演算法在進行某個節點劃分時 瀏覽:406
麥塊伺服器如何登錄正版 瀏覽:686
中國民俗學pdf 瀏覽:386
程序員如何做人力資源 瀏覽:656
p單片機數字電壓表項目設計報告 瀏覽:449
做一個單片機系統要經過哪些步驟 瀏覽:153
阿里雲php版本升級 瀏覽:355
pdf轉換word綠色 瀏覽:359