|
发表于 2003-8-12 22:28:05
|
显示全部楼层
单片机和PC机串口通讯试验
;这是一个89C51单片机向PC串口单向发送数据AF的程序
;通过MAX232专用芯片作RS232/TTL电平转换.
;波特率4800KBPS,只要P3.2引脚变成低电平(也就是按下红外遥控器的任意键),就连续发送16进制的AF字符(就是一个8位2进制的数值)
ORG 0000H
AJMP MAIN;转入主程序
ORG 0003H ;外部中断P3.2脚INT0入口地址
AJMP INT ;转入外部中断服务子程序(解码程序)
;以下为主程序进行CPU中断方式设置
MAIN:SETB EA ;打开CPU总中断请求
SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发
SETB EX0 ;打开INT0中断请求
AJMP $
INT: CLR EA ;暂时关闭CPU的所有中断请求
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
MOV A,#0AFH;将16进制的字符AF发送到串口去
MOV SBUF,A;将遥控器键值通过串口发送出去
SETB EA ;允许中断
RETI ;退出解码子程序
END[em05] |
|