新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)匯編實(shí)驗(yàn)八:查表+串口通信

單片機(jī)匯編實(shí)驗(yàn)八:查表+串口通信

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
實(shí)驗(yàn)要求:P1口的P1.0~P1.8分別接8個(gè)發(fā)光二極管。要求編寫程序模擬一時(shí)序控制裝置。開機(jī)后第一秒鐘L4,L5亮,第二秒鐘L3,L6亮,第三秒鐘L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L7,L8亮,第九秒L3,L4,L5,L6亮,第十秒全亮,第十一秒全滅。然后再從頭循環(huán)。以鍵盤作為外部中斷輸入信號(hào),有鍵按下時(shí),將當(dāng)前LED狀態(tài)送PC機(jī)顯示。

//This is the nineth_5programof homework
//This is made by WQ Data:2013/3/18/
ORG 0000H
AJMP MAIN
ORG 0023H //0023H 串口中斷程序的入口地址
AJMP Communication
ORG 0003H //0003H 外部中斷程序的入口地址
AJMP WT0
ORG 000BH //000BH 定時(shí)器0程序的入口地址
AJMP TT0
MAIN:
MOV TMOD,#21H //定時(shí)器工作方式
SETB EA //開總中斷
SETB ET0 //允許計(jì)時(shí)器
SETB EX0 //開外部中斷
SETB IT0 //邊沿觸發(fā)方式
SETB TR0 //開啟計(jì)時(shí)器0
MOV TH0,#4CH //設(shè)置定時(shí)常數(shù)
MOV TL0,#00H
MOV TH1,0FDH
MOV R7,#20 //設(shè)置計(jì)數(shù)寄存器
MOV R6,#00 //查表使用
MOV SCON,#40H //串口工作方式1,允許中斷接受
MOV DPTR,#TABLE
CLR A
OK1: MOV C,P3.4
JNC KAISHI
MOV C,P3.5
JNC KAISHI
MOV C,P3.6
JNC KAISHI
MOV C,P3.7
JNC KAISHI
SJMP OK1

本文引用地址:http://m.butianyuan.cn/article/201612/324145.htm

KAISHI:CLR P3.2
SETB P3.2
SJMP OK1

TT0: MOV TH0,#4CH //計(jì)時(shí)器0置數(shù)
MOV TL0,#00H
DJNZ R7,RETN //1秒鐘到來了
MOV R7,#20
MOV A,R6
MOVC A,@A+DPTR
MOV P1,A
INC R6
CJNE R6,#11,RETN
MOV R6,#00
RETN: RETI //定時(shí)程序返回指令


WT0: PUSH TH0
PUSH TL0
CLR TR0 //關(guān)閉定時(shí)器0
SETB ES //打開串口中斷
SETB TR1 //啟動(dòng)定時(shí)器1
MOV SBUF,P1 //將端口的數(shù)據(jù)傳送給計(jì)算機(jī)
POP TL0
POP TH0
SETB TR0 //打開定時(shí)器0
CLR ES
RETI
Communication:
JNB TI,$
CLR TI
CLR ES
RETI
////延時(shí)10ms模塊////
DELAY: MOV R2,#20
D0: MOV R1,#248
DJNZ R1,$
DJNZ R1,D0
/////////////////////
TABLE: DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0AAH,55H,00H,0FFH
END



評(píng)論


技術(shù)專區(qū)

關(guān)閉