標題: 單片機電壓表(ADC0809)實驗匯編代碼 [打印本頁]
作者: xiaosongsong 時間: 2019-6-19 15:23
標題: 單片機電壓表(ADC0809)實驗匯編代碼
要求:通過并行模擬數字轉換器芯片ADC0809,測試模擬電壓并且顯示(0-5V)。
實驗箱上“串并轉換數碼管顯示”區提供了四個8段數碼管顯示電路,采用靜態方式顯示。數碼管是由74LS164串并轉換后輸出得到。當74LS164有數據輸入時,發來一個時鐘74LS164數據向下一段轉移。若滿8個時鐘則點亮一個8段數碼管,然后發生位移,數據向下一位數碼管傳送,即串行輸入的數據可依次在4個數碼管上顯示。數碼管上顯示實時溫度值。
實驗箱“數模轉換”區提供ADC0809電路。
參考接線:
(1) 把AD0809的零通道09IN0孔用連線接至模擬信號發生器的VIN孔。
(2)AD0809的片選信號CS09孔接“譯碼器”YC2(0A000-0AFFFH)孔。
(3)“脈沖源”中的0.5MHZ孔連AD0809的CLOCK孔。
(4)CLK -- P1.1;DIN -- P1.2
數碼管的顯示碼:
uint8 LED_Table[16]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0x3e, 0xe0,
0xfe,0xe6,0xee,0x3e,0x9c,0x7a, 0x9e,0x8e};
匯編代碼:
程序代碼
LED_0 EQU 30H
LED_1 EQU 31H
LED_2 EQU 32H
ADC EQU 35H
CLOCK BIT P2.4
ST BIT P2.5
EOC BIT P2.6
OE BIT P2.7
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START: MOV LED_0, #00H
MOV P2, #0FFH
MOV LED_1, #00H
MOV LED_2, #00H
MOV DPTR, #TABLE
MOV TMOD, #02H
MOV TH0, #245H
MOV TL0, #00H
MOV IE, #82H
SETB TR0
WAIT: CLR ST
SETB STH
CLR ST
JNB EOC, $
SETB OE
MOV ADC, P1
CLR OE
MOV A, ADC
MOV B, #51
DIV AB
MOV LED_2, A
MOV A, B
MOV B, #5
DIV AB
MOV LED_1, A
MOV LED_0, B
LCALL DISP
SJMP WAIT
INT_T0: CPL, CLOCK
RETI
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+DPTRL
CLR P2.1
ORL A, #80H
MOV P0, A
LCALL DELAY
SETB P2.1
RET
DELAY: MOV R6, #10
D1: MOV R7, #250
DJNZ R7, $
DJNZ R6, D1
RET
TABLE: DB 3FH, 06H, 5BH, 4FH, 66H
DB 6DH, 7DH, 07H, 7FH, 6FH
END
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |