串行口通信 上位机发送字符x,单片机返回上位机“I get x“
在上位机上用串口调试助手发送一个字符X, 单片机收到字符后返回给上位机"I get X",串口波特率设为9600bps.
二.程序源码
1) 法1 (头文件法, 适用于老手)
#include
#define uchar unsigned char
#define uint unsigned int
uchar flag, a, i;
uchar code table[] = "I get ";
void init();
void main()
{
}
void init()
{
}
//串口中断服务程序
void ser() interrupt 4
{
}
2) 法2 (完整寄存器地址法)
//中断允许寄存器IE,字节地址位0xA8
//单片机复位时, IE中所有位被清0
sfr IE
//EA为全局中断允许位
//EA = 1时打开全局中断控制,在这样条件下,由各个中断控制位打开或关闭相应的中断
//EA = 0时关闭所有中断
sbit EA
//ET2为定时器/计数器2中断允许位
//ET2 = 1时打开T2中断, ET2 = 0时关闭T2中断
sbit ET2
//ES为串行口中断允许位
//ES = 1时打开串行口中断, ES = 0时关闭串行口中断
sbit ES
//ET1为定时器/计数器1中断允许位
//ET1 = 1时打开T1中断, ET1 = 0时关闭T1中断
sbit ET1
//EX1为外部中断1中断允许位
//EX1 = 1时打开外部中断1中断, EX1 = 0时关闭外部中断1中断
sbit EX1
//ET0为定时器/计数器0中断允许位
//ET0 = 1时打开T0中断, ET0 = 1时关闭T0中断
sbit ET0
//EX0为外部中断0中断允许位
//EX0 = 1时打开外部中断0中断, EX0 = 0时关闭外部中断0中断
sbit EX0
//SBUF为串行数据缓冲寄存器
//51单片机中含有两个SBUF,其中一个为发送缓冲寄存器,另一个为接收缓冲寄存器
//这两个寄存器共有一个地址0x99, 但物理上是两个独立的寄存器,有指令操作决定访问哪个寄存器
//执行写指令时, 访问串行发送寄存器, 执行读指令时, 访问串行接收寄存器
//接收器具有双缓冲结构, 即
串行口通信上位机单片 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)