PC机与单片机的通信实验
喜欢单片机的朋友可不要错过这个实验——PC机与单片机通信实验。单片机本身就是一个CPU,它能够执行和处理指令,假若想再用PC机去控制它,可以从这个实验开始。
PC机与单片机的通信,一般都是用串行口。其波特率和数据位由自己设定(请参照汇编语言实现串行口通信)。
硬件电路如附图所示。芯片MC1488和MC1489的作用是通过电平转换使得RS-232的逻辑电平与一般微处理器单片机的逻辑电平一致。
PC机汇编语言收发程序如下:
STACK SEGMENT PARA STACK‘STACK’
DB 256 DUP(0)
STACK ENDS
DATA SEGMENT
DATA ENDS
CODE SEGMENT PARA PUBLIC‘CODE’
ASSUME CS:CODE,DS:DATA
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DX,AX
ASSUME DS:DATA
MOV DX,3FBH;初始串口
MOV AL,80H
OUT DX,AL
MOV DX,3F8H
MOV AL,60H
OUT DX,AL
MOV DX,3F9H
MOV AL,0
OUT DX,AL
MOV DX,3FBH
MOV AL,0BH
OUT DX,AL
MOV DX,3F9H
MOV AL,0
OUT DX,AL
SEN? MOV DX,3FDH
IN AL,DX
MOV AH,1;从键盘接收一个字符
INT 21H
MOV DX,3F8H;发送
OUT DX,AL
MOV AH,2
INT 21H
MOV AH,4CH
iINT 21H
CODE ENDS
单片机接收程序:
MOV TMOD,#20H
MOV TL1,#0F4H
MOV TH1,#0F4H
MOV SCON,#50H
MOV PCON,#00H
SETB TR1;初始化并设波特率
WAIT:JNB T1,WAIT;开始接收
CLR RI
MOV DPTR,#0FF21H;送LED显示地址
MOV A,#01H
MOV @DPTR,A
MOV A,SBUF
MOV DPTR,#CODE
MOV A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A;接收数据送显示
SJMP WAIT
CODE DB 0C0H,……;LED代码表根据数码管为共阳/共阴确
[本贴已被 lfcx 于 2004-3-29 23:01:41 修改过][/COLOR][/ALIGN] |