一個特別好的AD轉換程序,同時教你如何進行顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機匯編源程序如下:
- LED_0 EQU 30H ;存放三個數碼管的段碼
- LED_1 EQU 31H
- LED_2 EQU 32H
- ADC EQU 35H ;存放轉換后的數據
- ST BIT P3.2
- OE BIT P3.0
- EOC BIT P3.1
- ORG 00H
- START: MOV LED_0,#00H
- MOV LED_1,#00H
- MOV LED_2,#00H
- MOV DPTR,#TABLE ;送段碼表首地址
- SETB P3.4
- SETB P3.5
- CLR P3.6 ;選擇ADC0808的通道3
- WAIT: CLR ST
- SETB ST
- CLR ST ;啟動轉換
- JNB EOC,[ DISCUZ_CODE_6 ]nbsp; ;等待轉換結束
- SETB OE ;允許輸出
- MOV ADC,P1 ;暫存轉換結果
- CLR OE ;關閉輸出
- MOV A,ADC ;將AD轉換結果轉換成BCD碼
- MOV B,#100
- DIV AB
- MOV LED_2,A
- MOV A,B
- MOV B,#10
- DIV AB
- MOV LED_1,A
- MOV LED_0,B
- LCALL DISP ;顯示AD轉換結果
- SJMP WAIT
- DISP: MOV A,LED_0 ;數碼顯示子程序
- MOVC A,@A+DPTR
- CLR P2.3
- MOV P0,A
- LCALL DELAY
- SETB P2.3
- MOV A,LED_1
- MOVC A,@A+DPTR
- CLR P2.2
- MOV P0,A
- LCALL DELAY
- SETB P2.2
- MOV A,LED_2
- MOVC A,@A+DPTR
- CLR P2.1
- MOV P0,A
- LCALL DELAY
- SETB P2.1
- RET
- DELAY: MOV R6,#10 ;延時5毫秒
- D1: MOV R7,#250
- DJNZ R7,$
- DJNZ R6,D1
- RET
- TABLE: DB 3FH,06H,5BH,4FH,66H
- DB 6DH,7DH,07H,7FH,6FH
- END
復制代碼
全部資料51hei下載地址:
ADC0808采樣并顯示.zip
(14.92 KB, 下載次數: 36)
2019-4-27 00:46 上傳
點擊文件名下載附件
AD采樣并顯示仿真圖及程序
|