- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用AT89S5与PC机实现串口通讯
桂 林 电 子 科 技 大 学
单片机最小应用系统
设
计
报
告
指导老师:吴 兆 华
学 生: 林承德
学 号:092011221
机电工程学院
2010年6月
一、设计题目
用AT89S51与PC机实现串口通讯,单片机接收上位机发送的数字,并在最小系统板上的数码管上将其显示。
二、系统硬件电路图
系统硬件图包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、串口通讯电路以及数字显示部分。
设计硬件电路图时,其基本思想:先在proteus中搭建仿真电路,将编好的程序下载到仿真环境的51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。
图2.0 系统硬件全局图
2.1 单片机最小系统电路图
2.2 串口通讯原理及其电路图
一、发送和接收的过程如下:
串行口的发送过程由指令MOV SBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。
串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。CPU响应中断,用一条指令(MOV A,SBUF)把接收缓冲器SBUF(收)的内容读入累加器。
TI和RI是由硬件置位的,但需要用软件复位。
二、相关的寄存器
1、SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工。
2、SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。
3、PCON中的SMOD用来控制波特率加倍。
4、TMOD设置定时器1的工作方式,用来产生波特率
5、如果用到中断,则还需要用到中断相关的寄存器IE,IP等
2.3 数码管显示电路
三、单片机和PC程序
3.1单片机程序
#include reg51.h
#include string.h
unsigned char inbuf[4];
bit read_flag=0;
unsigned int cnt=3;
unsigned char ch=0;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x00};
void display();
void delay(int z) ;
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
TL1 = 0xF4;
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
}
//向串口发送一个字符
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口发送一个字符串,strlen为该字符串长度
void send_string_com(unsigned char *str)
{
unsigned int k=0;
for(k=4;k0;k--)
{
send_char_com(*(str + k-1));
}
}
//串口接收
您可能关注的文档
- 环境化学论文 1).doc
- 现代冶金学模拟卷2.doc
- 现代婚姻何处去演讲稿).doc
- 现代催化研究方考试题目.docx
- 王梅艳教学设计天窗》.doc
- 现代微型计算机接口教程(杨文显)第三章课后答案.doc
- 现代汉语与小学文教学Microsoft Word 文档.doc
- 现代汉语实词近词辨析.doc
- 现代汉语同形同词与多义词的区分原则和方法.doc
- 现代市政学wod版.doc
- 《JJF 2132-2024荧光紫外灯人工气候老化试验装置校准规范:辐射照度参数》.pdf
- JJF 2120-2024轮速传感器校准规范.pdf
- 计量规程规范 JJF 2120-2024轮速传感器校准规范.pdf
- 《JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数》.pdf
- JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数.pdf
- 《JJF 2120-2024轮速传感器校准规范》.pdf
- JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
- JJF 2116-2024特定蛋白分析仪校准规范.pdf
- 《JJF 2116-2024特定蛋白分析仪校准规范》.pdf
- 计量规程规范 JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
文档评论(0)