久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

合泰單片機(jī)ADC轉(zhuǎn)換程序

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年02月09日   【字體:

;內(nèi)容:旋轉(zhuǎn)變阻器改變AD轉(zhuǎn)換的數(shù)通過(guò)4為L(zhǎng)ED顯示出來(lái)
;數(shù)碼管段碼接法A-PD0,B-PD1....G-PD6,H-PD7
;數(shù)碼管位碼接法OM0-PC0...COM4-PC3
;完整源碼下載:http://www.zg4o1577.cn/f/htadzh.rar
;;AD輸入腳-PA0
include HT66F50.inc

ORG 0000H
JMP A1
ORG 0014H ;多功能中斷入口地址
JMP ZD1
ORG 1CH  ;ADC中斷入口地址
JMP ISR_ADC
ORG 0030H
Q1:
DC 03FH ; 0
DC 006H ; 1
DC 05BH ; 2
DC 04FH ; 3
DC 066H ; 4
DC 06DH ; 5
DC 07DH ; 6
DC 007H ; 7
DC 07FH ; 8
DC 06FH ; 9
DC 077H ; A
DC 07CH ; B
DC 039H ; C
DC 05EH ; D
DC 079H ; E
DC 071H ; F 
A1: 
CLR [98H] ;AD數(shù)據(jù)高8位存儲(chǔ)器
CLR [99H] ;AD數(shù)據(jù)低8位存儲(chǔ)器

MOV A,0 ;顯示內(nèi)容
MOV [8AH],A ;第一位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,0 ;顯示內(nèi)容
MOV [8BH],A ;第二位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,0 ;顯示內(nèi)容
MOV [8CH],A ;第三位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,0 ;顯示內(nèi)容
MOV [8DH],A ;第四位數(shù)碼管顯示內(nèi)容寄存器 
MOV A,08H ;跟CP1C寄存器設(shè)置要求選擇數(shù)據(jù)
MOV CP1C,A ;設(shè)置PC口為I/0口而不是中斷口
CLR PBC ;設(shè)置pc 口為輸出口
CLR PDC ;設(shè)置PD 口為輸出口
MOV A,1 ;設(shè)置初始顯示位碼顯示第一位
MOV [80H],A ;位碼寄存器
MOV A,8AH ;設(shè)置對(duì)應(yīng)第一位段碼寄存器
MOV MP0,A ;間接寄存器指針
MOV A,00000000B ;設(shè)置TM2 計(jì)數(shù)時(shí)鐘位為fSYS/4
MOV TM2C0,A
MOV A,11000001B ;設(shè)置TM2中斷為定時(shí)/計(jì)數(shù)模式選擇比較器A匹配
MOV TM2C1,A
MOV A,LOW  5000 ;設(shè)置中斷時(shí)間為5000個(gè)時(shí)鐘周期
MOV TM2AL,A ;低8位
MOV A,HIGH 5000 ;設(shè)置中斷時(shí)間為5000個(gè)時(shí)鐘周期
MOV TM2AH,A ;高8位
MOV A,00010000B ;打開(kāi)AD電源 并ADRFS=1                     
MOV ADCR0,A ;ADRH為bit 3~bit 0,ADRL為bit 7~bit 0 
MOV A,00000110B ;AD轉(zhuǎn)換時(shí)鐘為fSYS/64,   
MOV ADCR1,A ;VREFS=0選擇內(nèi)部參考電壓 
MOV A,00000001B ;選擇AD通道為AN0
MOV ACERL,A
clr   START     ; 啟動(dòng)AD轉(zhuǎn)換 0→1→0 啟動(dòng)
set   START   ;
clr START   ;
CLR ADF ;清標(biāo)志
SET ADE ;開(kāi)AD中斷
CLR MF0F ;清多功能中斷0標(biāo)志
CLR T2AF ;清定時(shí)器2較器A中斷標(biāo)志
SET MF0E ;使能多功能0中斷
SET T2AE ;使能定時(shí)器2較器A中斷
SET EMI ;使能總中斷
SET T2ON ;開(kāi)始計(jì)數(shù)
A2: 
CALL CL1 ;調(diào)用2位16進(jìn)制數(shù)轉(zhuǎn)換為5位10進(jìn)制數(shù)子程序
MOV A,[9DH] ;顯示內(nèi)容
MOV [8AH],A ;第一位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,[9CH] ;顯示內(nèi)容
MOV [8BH],A ;第二位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,[9BH] ;顯示內(nèi)容
MOV [8CH],A ;第三位數(shù)碼管段碼顯示內(nèi)容寄存器
MOV A,[9AH] ;顯示內(nèi)容
MOV [8DH],A ;第四位數(shù)碼管顯示內(nèi)容寄存器 
JMP A2
;*******************************************************
;2位16進(jìn)制數(shù)轉(zhuǎn)換為5為10進(jìn)制數(shù)子程序(0ffh=65535)
;******************************************************* 
CL1: 
MOV A,[98H]
MOV [9AH],A
MOV A,[99H]
MOV [9BH],A
CALL CL2
MOV A,00001111B
AND A,[9EH]
MOV [9AH],A
SWAP [9EH]
MOV A,00001111B
AND A,[9EH]
MOV [9BH],A
MOV A,[9CH]
MOV [9EH],A
MOV A,00001111B
AND A,[9DH]
MOV [9CH],A
SWAP [9DH]
MOV A,00001111B
ANDM A,[9DH]
RET
CL2:
CLR [9CH] 
CLR [9DH]
CLR [9EH]
MOV A,16
MOV [9FH],A
CL3:
CLR C
RLC [9BH]
RLC [9AH]
MOV A,[9EH]
ADC A,[9EH]
DAA [9EH]
MOV A,[9DH]
ADC A,[9DH]
DAA [9DH]
MOV A,[9CH]
ADC A,[9CH]
DAA [9CH]
SDZ [9FH]
JMP CL3
RET
;*******************************************************
; 中斷服務(wù)子程序
;******************************************************* 
ZD1: 
MOV [0F0H],A ;壓棧ACC到0F0H
MOV A,STATUS ;
MOV [0F1H],A ;壓棧status標(biāo)志寄存器到0F1H
CLR PB ;清PC(清屏幕)
MOV A,Q1 ;數(shù)據(jù)表地址
CLR TBHP ;清數(shù)據(jù)表地址高位否則出錯(cuò)
ADD A,IAR0 ;利用間接寄存器找到要顯示段碼所在數(shù)據(jù)表的地址 
MOV TBLP,A ;表格指針寄存器TBLP
TABRD PD ;查表并將數(shù)據(jù)存到PD口寄存器
MOV A,[80H] ;位碼寄存器
MOV PB,A ;將位碼寄存器的數(shù)存到PC口寄存器
;段碼和位碼的數(shù)都有了所以數(shù)碼管被點(diǎn)亮
INC MP0 ;間接寄存器指針加1指向下一個(gè)段碼寄存器
RL [80H] ;左移位碼寄存器控制下一個(gè)數(shù)碼管
SNZ [80H].5 ;判斷是否控制完4個(gè)數(shù)碼管
JMP ZD2 ;退出中斷繼續(xù)
MOV A,1 ;是則從新初始化寄存器數(shù)據(jù)
MOV [80H],A ; 
MOV A,8AH ;千位數(shù)碼管對(duì)應(yīng)寄存器
MOV MP0,A ;存到間接寄存器0
ZD2: 
MOV A,[0F1H] ;彈棧后進(jìn)先出先進(jìn)后出 
MOV STATUS,A ;彈棧0F1H的數(shù)到標(biāo)志寄存器
MOV A,[0F0H] ;彈棧0F0H的數(shù)到acc
CLR MF0F ;清多功能標(biāo)志
CLR T2AF ;清定時(shí)器2比較器A標(biāo)志
RETI ;中斷返回
ISR_ADC: 
MOV [0F0H],A ;壓棧ACC到0F0H
MOV A,STATUS ;
MOV [0F1H],A ;壓棧status標(biāo)志寄存器到0F1H
MOV A,ADRH
MOV [98H],A
MOV A,ADRL
MOV [99H],A

MOV A,[0F1H] ;彈棧后進(jìn)先出先進(jìn)后出 
MOV STATUS,A ;彈棧0F1H的數(shù)到標(biāo)志寄存器
MOV A,[0F0H] ;彈棧0F0H的數(shù)到acc
clr   START       ;high pulse on start bit to initiate conversion
set   START   ;reset A/D
clr START     ;start A/D
RETI ;中斷返回
;*******************************************************
; 延時(shí)子程序
;******************************************************* 
M001: 
MOV A,1
MOV [85H],A
M002: 
MOV A,200
MOV [86H],A
M003: 
MOV A,250 
MOV [87H],A
M004: 
SDZ [87H]
JMP M004
SDZ [86H]
JMP M003
SDZ [85H]
JMP M002 
    RET 
END
 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久精品一区 | 亚洲一区二区国产 | 日韩精品在线网站 | 97国产一区二区精品久久呦 | 国产精品久久久久久吹潮 | 成人影院网站ww555久久精品 | 成人av片在线观看 | 日韩有码一区 | 国产三级日本三级 | 色综合一区二区 | 亚洲黄色一级毛片 | 日韩在线免费视频 | 国产成人久久 | 日韩伦理一区二区 | 日韩毛片免费看 | 一区二区三区在线电影 | 亚洲精品视频一区二区三区 | 欧美一级欧美三级在线观看 | 国产97人人超碰caoprom | 麻豆久久久久久久 | 日韩久久精品视频 | 精品一区二区三区在线观看国产 | 欧美影院 | 久久99国产精一区二区三区 | 成人欧美一区二区三区色青冈 | 久久精品无码一区二区三区 | 青春草91 | www.com久久久 | 一区二区免费 | 国产欧美精品一区二区三区 | 久久综合狠狠综合久久综合88 | 精品久久久久一区二区国产 | 国产乱码精品一区二区三区中文 | 天天干夜夜操 | 欧美一区二区三区在线看 | 91.色| 久久精品1 | 在线观看的av | 精品国产视频 | 亚洲精彩免费视频 | 99在线国产|