DSC00085.JPG (4.67 MB, 下載次數(shù): 34)
下載附件
從機開中斷不能顯示
2022-4-25 08:21 上傳
DSC00086.JPG (5.19 MB, 下載次數(shù): 45)
下載附件
從機關中斷就可以顯示
2022-4-25 08:22 上傳
DSC00084.JPG (4.22 MB, 下載次數(shù): 37)
下載附件
連線圖
2022-4-25 08:22 上傳
現(xiàn)象是從機不開中斷,發(fā)送應答信號給主機就能顯示。從機開中斷情況下不知道是不 顯示還是亂碼
單片機主機程序如下:
//*主機程序
//主機中斷初始化
//INT0接收從機數(shù)據(jù)中斷申請 標志位IE0 從機P3.4引腳
//INT1接收從機應答 標志位IE1 從機P3.5引腳
//主機P3.4發(fā)送從機數(shù)據(jù)中斷申請 低電平有效
//主機P3.5發(fā)送從機應答 低電平有效
SETB EX0 //INT0中斷開
SETB IT0 //INT0低電平方式觸發(fā)中斷
SETB PX0 //INT0高優(yōu)先
SETB EX1 //INT1中斷開
SETB IT1 //INT1低電平方式觸發(fā)中斷
CLR PX1 //INT1低優(yōu)先
SETB EA //中斷開
LJMP MAIN
MAIN:
PUSH ACC
MOV R7,#0X0F //D1循環(huán)16次
MOV A,#0X41 //字符A準備送IO口
D1: MOV P1,A //字符A送p1口
CLR P3.5 //申請從機中斷int1
JNB IE1,$ //從機響應信號
SETB P3.5
CLR IE1 //IE標志位是否需要手動清除
INC A //A加1成字符b
DJNZ R7,D1
POP ACC
sjmp $
end
從機程序如下:
//*從機程序
//從機中斷初始化
//INT0接收主機數(shù)據(jù)中斷申請 標志位IE0 主機P3.4引腳
//INT1接收主機應答 標志位IE1 主機P3.5引腳
//P3.4發(fā)送主機數(shù)據(jù)中斷申請 低電平有效
//P3.5發(fā)送主機應答 低電平有效
SETB EX0 //INT0中斷開
SETB IT0 //INT0低電平方式觸發(fā)中斷
SETB PX0 //INT0高優(yōu)先
SETB EX1 //INT1中斷開
SETB IT1 //INT1低電平方式觸發(fā)中斷
CLR PX1 //INT1低優(yōu)先
SETB EA //中斷開
LJMP MAIN
WRCMD: //寫指令子程序
push ACC
lcall READ12864BF
POP ACC
MOV A,R3
MOV DPTR,#009000H //lcd寫指令地址 9000H
MOVX @DPTR,A
RET
WRDAT: //寫數(shù)據(jù)子程序
push ACC
lcall READ12864BF
POP ACC
MOV A,R4
MOV DPTR,#00B000H //lcd寫寫數(shù)據(jù)地址 B000H
MOVX @DPTR,A
RET
INIT: //lcd初始化程序
MOV R3,#0X38
LCALL WRCMD
MOV R3,#0X38
LCALL WRCMD
MOV R3,#0X0c
LCALL WRCMD
MOV R3,#0X06
LCALL WRCMD
MOV R3,#0X01
LCALL WRCMD
RET
MAIN: //主程序
LCALL INIT
Q1: MOV R3,#0x80 //R3是lcd1602顯示地址入口
MOV R7,#0X0F //Q2循環(huán)次數(shù)
Q2:
JNB IE1,$ //接收主機中斷申請
MOV R4,P1 //R4是lcd1602顯示內容數(shù)據(jù)入口,將主機發(fā)送到P1的值傳到R4
CLR P3.5 //發(fā)送應答信號
CLR IE1
SETB P3.5
LCALL WRDAT
DJNZ R7,Q2
CLR EA
SJMP $
READ12864BF: //lcd判斷忙子程序
MOV DPTR,#0XD000 //lcd讀指令地址 D000H
MOVX A,@DPTR
JB ACC.7,READ12864BF
ret
END
|