日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] ;****************************************;功能:AVR雙CPU通信程序,異步方式,類似于UART;器件:AT90S2313;硬件:主從CPU的PD.2通過上拉電阻連接;時(shí)鐘:4.0MHz;***********************************

;****************************************
;功能:AVR雙CPU通信程序,異步方式,類似于UART
;器件:AT90S2313
;硬件:主從CPU的PD.2通過上拉電阻連接
;時(shí)鐘:4.0MHz
;****************************************

.include"2313def.inc"

.equport=PORTD
.equPIN=PIND
.equddr=DDRD
.equbit=2
;*****************************************
;中斷向量表
;*****************************************
.org0x000
rjmpmain
rjmpINT0_isr
reti
reti
reti
reti
reti
reti
reti
reti
;*****************************************
;程序入口
;*****************************************
.org0x000B
main:ldiR16,0xDF;設(shè)置堆棧指針
outspl,R16

cbiport,bit;設(shè)置端口方向
cbiddr,bit

ldiR16,0x02;INT0下降沿有效
outMCUCR,R16
ldiR16,0x40;INT0中斷使能
outGIMSK,R16

sei;全局中斷使能

ldiR28,0x60
ldiR29,0x00
ldiR22,0x10

here:ldiR30,0x55;測(cè)試
rcallsendbyte
rjmphere
;*****************************************
;過程名:Delay
;功能:us級(jí)別精確延時(shí)
;入口參數(shù):R16延時(shí)時(shí)間微秒數(shù)-2
;出口參數(shù):無
;影響資源:
;*****************************************
delay:decR16
nop
brnedelay
nop
ret
;*****************************************
;外部中斷INTI0中斷服務(wù)程序(讀數(shù))
;*****************************************
INT0_isr:
ldiR16,0x49;延時(shí)75us
rcalldelay
sbICpin,bit
rjmpskip
clrR30
rcallreadbit;CLOCk1
rcallreadbit;Clock2
MOVR31,R30

ldiR20,0x08
RNext:rcallreadbit;讀數(shù)
decR20
brneRNext

deal:nop;數(shù)據(jù)處理,數(shù)據(jù)存放在R30中,兩個(gè)時(shí)鐘信號(hào)存在R31
的高兩位

skip:reti;非起始信號(hào),跳過
;*****************************************
;過程名:readbit
;功能:從總線上讀取一位數(shù)據(jù)
;入口參數(shù):無
;出口參數(shù):R30
;影響資源:R16
;*****************************************
readbit:
ldiR16,0x08;延時(shí)10us
rcalldelay

waitu1:sbispin,bit;Waitfor"1"
rjmpwaitu1
waitu2:sbispin,bit;Waitfor"1"
rjmpwaitu2
waitu3:sbispin,bit;Waitfor"1"
rjmpwaitu3
waitu4:sbispin,bit;Waitfor"1"
rjmpwaitu4

waitf1:sbicpin,bit;Waitforthefallingedge
rjmpwaitf1
waitf2:sbicpin,bit;Waitforthefallingedge
rjmpwaitf2
waitf3:sbicpin,bit;Waitforthefallingedge
rjmpwaitf3
waitf4:sbicpin,bit;Waitforthefallingedge
rjmpwaitf4

ldiR16,0x2B;延時(shí)45us
rcalldelay

clc;清C
sbispin,bit
sec

rorR30;存數(shù)

ret
;*****************************************
;過程名:sendbit
;功能:傳出一位數(shù)據(jù)
;入口參數(shù):R30
;出口參數(shù):無
;影響資源:
;*****************************************
sendbit:
sbrsR30,0
rjmpsend0
send1:sbiddr,bit;Senda"1"
ldiR16,0x3A
rcalldelay
cbiddr,bit
ldiR16,0x1C
rcalldelay
ret
send0:sbiddr,bit;Senda"0"
ldiR16,0x1C
rcalldelay
cbiddr,bit
ldiR16,0x3A
rcalldelay
ret
;*****************************************
;過程名:sendbyte
;功能:傳出一個(gè)字節(jié)數(shù)據(jù)
;入口參數(shù):R30
;出口參數(shù):無
;影響資源:R24
;*****************************************
sendbyte:;測(cè)試總線是否忙
sbispin,bit
rjmpsendbyte
ldiR16,0x76;延時(shí)120us
rcalldelay
sbispin,bit;測(cè)試
rjmpsendbyte

cli;關(guān)中斷

sbiddr,bit;總線初始化
ldiR16,0x58;延時(shí)90us
rcalldelay
cbiddr,bit
ldiR16,0x1C;延時(shí)30us
rcalldelay

sbiddr,bit;Clock1
ldiR16,0x3A;延時(shí)60us
rcalldelay
cbiddr,bit
ldiR16,0x1C;延時(shí)30us
rcalldelay

sbiddr,bit;Clock2
ldiR16,0x1C
rcalldelay;延時(shí)30us
cbiddr,bit
ldiR16,0x3A;延時(shí)60us
rcalldelay

ldiR24,0x08;設(shè)置計(jì)數(shù)器
nextbit:
rcallsendbit;輸出數(shù)據(jù)
rorR30
decR24
brnenextbit

ldiR16,0xFF;清中斷標(biāo)志
outGIFR,R16
sei;開中斷

ret


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉