|  | 
 
 发表于 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]
 | 
 |