微机原理课程设计--双机并口通信
【摘要】 课设题目
双机并口通信
功能需求
两台实验箱,一台为发送机,一台为接收机发送机利用键盘扫描发送数值(0–F)接收机收到数值显示在数码管上两机为双机单工通信
实验电路图
课设代码
发送机:
IOY0 EQU 0600H ;片选IOY0对应的端口始地址
MY8255_A EQU IOY0+00H*2 ;8255的A口地址
MY8255_B EQU ...
课设题目
双机并口通信
功能需求
- 两台实验箱,一台为发送机,一台为接收机
- 发送机利用键盘扫描发送数值(0–F)
- 接收机收到数值显示在数码管上
- 两机为双机单工通信
实验电路图
课设代码
发送机:
IOY0 EQU 0600H ;片选IOY0对应的端口始地址
MY8255_A EQU IOY0+00H*2 ;8255的A口地址
MY8255_B EQU IOY0+01H*2 ;8255的B口地址
MY8255_C EQU IOY0+02H*2 ;8255的C口地址
MY8255_CON EQU IOY0+03H*2 ;8255的控制寄存器地址
SSTACK SEGMENT
DW 256 DUP(?)
SSTACK ENDS
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_CON
MOV AL,8DH ;使A端口方式0辥“‡º,C高四位输入,B口方式1输出
OUT DX,AL
MOV DX,MY8255_CON
MOV AL,05H ;使ACK置1,数据未送外设,即PC2=1
OUT DX,AL
BEGIN:
CALL DALLY
CALL CCSCAN ;扫描
JNZ INK1
JMP BEGIN
INK1:
CALL DALLY
CALL CCSCAN
JNZ INK2 ;有键按下,转到INK2
JMP BEGIN
;确定按下键的位置
INK2:
MOV CH,0FEH
MOV CL,00H
COLUM:
MOV AL,CH
MOV DX,MY8255_A
OUT DX,AL
MOV DX,MY8255_C
IN AL,DX
and al,0f0h
L1:
TEST AL,10H ;is L1?
JNZ L2
MOV AL,00H ;L1
JMP KCODE
L2: TEST AL,20H ;is L2?
JNZ L3
MOV AL,04H ;L2
JMP KCODE
L3: TEST AL,40H ;is L3?
JNZ L4
MOV AL,08H ;L3
JMP KCODE
L4: TEST AL,80H ;is L4?
JNZ NEXT
MOV AL,0CH ;L4
KCODE:
ADD AL,CL
CALL SEND ;键盘值发送
KRET:
PUSH AX
KON:
CALL CCSCAN
JNZ KON
POP AX
NEXT:
INC CL
MOV AL,CH
TEST AL,80H
JZ KERR
ROL AL,1
MOV CH,AL
JMP COLUM
KERR:
JMP BEGIN
;发送子程序:将3000-3005缓冲区的内容发送给接收机
SEND:
MOV DX,MY8255_B OUT DX,AL ;把键盘值送端口B
MOV DX,MY8255_C IN AL,DX ;读端口C中的数据
AND AL,04H ;测试ACK=0?
JZ KRET ;ACK为0跳转,表示数据已送到外设,可以再次输入
MOV DX,MY8255_A
MOV AL,00H ;将OBF置0,表明已向指定的端口输出了数据,
OUT DX,AL ;等待外设取走数据
CALL DALLY
ret ;无条件跳转到BEGIN
CCSCAN:
MOV AL,00H ;键盘扫描子程序
MOV DX,MY8255_A OUT DX,AL
MOV DX,MY8255_C
IN AL,DX
NOT AL
AND AL,0F0H
RET
DALLY:
PUSH CX ;延时子程序
MOV CX,0006H
T1:
MOV AX,009FH
T2:
DEC AX
JNZ T2
LOOP T1
POP CX
RET
CODE ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
更多
需要完整代码的小伙伴
公众号:海轰Pro
回复: 海轰
即可获取源码
文章来源: haihong.blog.csdn.net,作者:海轰Pro,版权归原作者所有,如需转载,请联系作者。
原文链接:haihong.blog.csdn.net/article/details/103606727
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)