|
0.png (602.62 KB, 下載次數(shù): 97)
下載附件
2017-5-12 17:28 上傳
0.png (107.87 KB, 下載次數(shù): 80)
下載附件
2017-5-12 17:27 上傳
0.png (137.56 KB, 下載次數(shù): 90)
下載附件
2017-5-12 17:26 上傳
0.png (55.2 KB, 下載次數(shù): 97)
下載附件
2017-5-12 17:26 上傳
單片機(jī)小工具:
0.png (37.87 KB, 下載次數(shù): 89)
下載附件
2017-5-12 17:30 上傳
單片機(jī)源程序如下:
- ;************************;
- ; ;
- ; 八路電壓測(cè)量顯示電路 ;
- ; ;
- ;************************;
- ;測(cè)量電壓最大為5V,顯示最大值為5.00V
- ;70H—77H存放采樣值,78H—7BH存放顯示數(shù)據(jù),依次為個(gè)位、十位、百位、通道標(biāo)志
- ;P3.5作單路顯示-循環(huán)顯示轉(zhuǎn)換用,P3.6作單路顯示時(shí)選擇通道用。?
- ;
- ;*************************************
- ;* *
- ;* 主程序和中斷程序入口 *
- ;* *
- ;*************************************
- ORG 0000H
- LJMP START
- ORG 0003H
- RETI
- ORG 000BH
- RETI
- ORG 0013H
- RETI
- ORG 001BH
- RETI
- ORG 0023H
- RETI
- ORG 002BH
- RETI
- ;
- ;*************************************
- ;* *
- ;* 初始化程序中的各變量 *
- ;* *
- ;*************************************
- CLEARMEMIO:
- CLR A
- MOV P2,A
- MOV R0,#70H
- MOV R2,#0DH
- LOOPMEM: MOV @R0,A
- INC R0
- DJNZ R2,LOOPMEM
- MOV 20H,#00H
- MOV A,#0FFH
- MOV P0,A
- MOV P1,A
- MOV P3,A
- RET
- ;
- ;*************************************
- ;* *
- ;* 主 程 序 *
- ;* *
- ;*************************************
- START:
- clr p3.3
- mov p1,#01h
- mov p1,#02h
- mov p1,#04h
- mov p1,#08h
- mov p1,#10h
- mov p1,#20h
- mov p1,#40h
- mov p1,#80h
- LCALL CLEARMEMIO ;初始化
- MAIN: LCALL TEST ;測(cè)量一次
- LCALL DISPLAY ;顯示數(shù)據(jù)一次
- AJMP MAIN
- NOP ;PC值出錯(cuò)處理
- NOP
- NOP
- LJMP START
- ;
- ;*************************************
- ;* 顯 示 控 制 程 序 *
- ;*************************************
- ;
- DISPLAY: JB 00H,DISP11 ;
- MOV R3,#08H ;8路信號(hào)循環(huán)顯示控制
- MOV R0,#70H ;顯示數(shù)據(jù)初址70H~77H
- MOV 7BH,#00H ;顯示通道路數(shù)初值
- DISLOOP1: LCALL TUNBCD ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、79H、78H(最大5.00v)
- MOV R2,#0FFH ;每路顯示時(shí)間控制 4MS*255
- DISLOOP2: LCALL DISP ;調(diào)四位顯示程序
- LCALL KEYWORK1 ;
- DJNZ R2,DISLOOP2 ;
- INC R0 ;顯示下一路
- INC 7BH ;通道顯示數(shù)加一
- DJNZ R3,DISLOOP1
- RET
- ;
- DISP11: MOV A,7BH ;
- SUBB A,#01H ;
- MOV 7BH,A ;
- ADD A,#70H ;
- MOV R0,A ;
- DISLOOP11: LCALL TUNBCD ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、79H、78H(最大5.00v)
- MOV R2,#0FFH ;每路顯示時(shí)間控制 4MS*25
- DISLOOP22: LCALL DISP ;調(diào)四位顯示程序
- LCALL KEYWORK2 ;
- DJNZ R2,DISLOOP22
- INC 7BH ;通道顯示數(shù)加一
- RET
- ;
- ;*************************************
- ;* 顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼程序 *
- ;*************************************
- ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、79H、78H(最大值5.00v)
- ;
- TUNBCD: MOV A,@R0 ;255/51=5.00V運(yùn)算
- MOV B,#51 ;
- DIV AB ;
- MOV 7AH,A ;個(gè)位數(shù)放入7AH
- MOV A,B ;余數(shù)大于19H,F0為1,乘法溢出,結(jié)果加5
- CLR F0
- SUBB A,#1AH
- MOV F0,C
- MOV A,#10 ;
- MUL AB ;
- MOV B,#51 ;
- DIV AB
- JB F0,LOOP2 ;
- ADD A,#5
- LOOP2: MOV 79H,A ;小數(shù)后第一位放入79H
- MOV A,B
- CLR F0
- SUBB A,#1AH
- MOV F0,C
- MOV A,#10 ;
- MUL AB ;
- MOV B,#51 ;
- DIV AB
- JB F0,LOOP3 ;
- ADD A,#5
- LOOP3: MOV 78H,A ;小數(shù)后第二位放入78H
- RET
- ;
- ;*************************************
- ;* ? 顯?示 程 序 *
- ;*************************************
- ;共陽(yáng)顯示子程序,顯示內(nèi)容在78H—7BH
- ;
- DISP: MOV R1,#78H ;共陽(yáng)顯示子程序,顯示內(nèi)容在78H—7BH
- MOV R5,#0FEH ;數(shù)據(jù)在P1輸出,列掃描在P3.0-P3.3
- PLAY: MOV P1,#0FFH
- MOV A,R5
- ANL P3,A
- MOV A,@R1
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P1,A
- JB P3.2,PLAY1 ;小數(shù)點(diǎn)處理
- CLR P1.7 ;小數(shù)點(diǎn)顯示(顯示格式為XX.XX)
- PLAY1: LCALL DL1MS
- INC R1
- MOV A,P3
- JNB ACC.3,ENDOUT
- RL A
- MOV R5,A
- MOV P3,#0FFH
- AJMP PLAY
- ENDOUT: MOV P3,#0FFH
- MOV P1,#0FFH
- RET
- ;TAB: DB 030H,0F9H,052H,0d0H,99H,94H,14H,0F1H,10H,090H,0FFH
- TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
- ;
- ;*************************************
- ;* ? ? 延時(shí)程序 *
- ;*************************************
- ;
- DL10MS: MOV R6,#0D0H ;10MS延時(shí)子程序
- DL1: MOV R7,#19H
- DL2: DJNZ R7,DL2
- DJNZ R6,DL1
- RET
- ;
- DL1MS: MOV R4,#0FFH ;513+513=1MS
- LOOP11: DJNZ R4,LOOP11
- MOV R4,#0FFH
- LOOP22: DJNZ R4,LOOP22
- RET
- ;
- ;*************************************
- ;* ? 電壓測(cè)量(A/D)子程序 *
- ;*************************************
- ; 一次測(cè)量數(shù)據(jù)8個(gè),依次放入70H-77H單元中
- ;
- TEST: CLR A ;模數(shù)轉(zhuǎn)換子程序
- MOV P2,A
- MOV R0,#70H ;轉(zhuǎn)換值存放首址
- MOV R7,#08H ;轉(zhuǎn)換8次控制
- LCALL TESTART ;啟動(dòng)測(cè)試
- WAIT: JB P3.7,MOVD ;等A/D轉(zhuǎn)換結(jié)束信號(hào)
- AJMP WAIT
- ;
- TESTART: SETB P2.3 ;測(cè)試啟動(dòng)
- NOP
- NOP
- CLR P2.3
- SETB P2.4
- NOP
- NOP
- CLR P2.4
- NOP
- NOP
- NOP
- NOP
- RET
- ;
- MOVD: SETB P2.5 ;取A/D轉(zhuǎn)換數(shù)據(jù)
- MOV A,P0
- MOV @R0,A
- CLR P2.5
- INC R0
- MOV A,P2 ;通道地址加1
- INC A
- MOV P2,A
- CJNE A,#08H,TESTEND ;等8路A/D轉(zhuǎn)換結(jié)束
- TESTEND: JC TESTCON
- CLR A ;結(jié)束恢復(fù)端口
- MOV P2,A
- MOV A,#0FFH
- MOV P0,A
- MOV P1,A
- MOV P3,A
- RET
- ;
- TESTCON: LCALL TESTART
- LJMP WAIT
- ;
- ;*************************************
- ;* ? 按鍵檢測(cè)子程序 *
- ;*************************************
- ;
- KEYWORK1: JNB P3.5,KEY1
- KEYOUT: RET
- ;
- KEY1: LCALL DISP ;延時(shí)消抖
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
8路模數(shù)轉(zhuǎn)換STC89C51、ADC0809.zip
(9.43 MB, 下載次數(shù): 37)
2017-5-12 17:17 上傳
點(diǎn)擊文件名下載附件
資料很全 下載積分: 黑幣 -5
|
|