串行口通信 上位机发送字符x,单片机返回上位机“I get x“
CPU申请中断,当CPU响应中断,转向中断服务程序,该位由硬件清0
sbit IE1
//IT1为外部中断1触发方式选择位
//IT1=0,电平触发方式,引脚INT1上低电平有效
//IT1=1,跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效
sbit IT1
//IE0为外部中断0请求标志,功能及操作同IE1
sbit IE0
//IT0为外部中断0触发方式选择位,功能及操作同IT1
sbit IT0
//定时器1初值高8位
sfr TH1
//定时器1初值低8位
sfr TL1
#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
{
}
三.程序小结
1) 操作串行口之前,需要对单片机的一些与串口有关的特殊功能寄存器进行初始化设置, 主要是设置产生波特率
的定时器1, 串行口控制和中断控制,其主要步骤包括:
a. 确定T1的工作方式(变成TMOD寄存器)
b. 计算T1的初值, 装载TH1,TL1
c. 启动T1(编程TCON中的TR1位)
d. 确定串行口工作方式(编程SCON寄存器)
e. 串行口工作在中断方式时, 要进行中断设置(变成IE, IP寄存器)
2) 51单片机可以通过特殊功能寄存器SBUF对串行接收或串行发送寄存器进行访问, 两个寄存器共用一个地址
99H,但在物理上是两个独立的寄存器, 由指令操作决定访问哪一个寄存器. 执行写指令时, 访问串行发送寄存器, 执行读指令时, 访问串行接收寄存器, 接收器具有双缓冲结构, 即在从接收寄存器中读出前一个已收到
的字节之前, 便能接收第二个字节, 如果第二个字节已经接收完毕, 第一个字节还没有读出, 则丢失其中
一个字节. 对于发送器, 因为数据由CPU控制和发送的, 所以不需要考虑.
a=SBUF;代表单片机自动将串口接收寄存器中的数据取走给a.
SB
串行口通信上位机单片 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)