单片机与PC通讯.docx

上传人:b****5 文档编号:5129996 上传时间:2022-12-13 格式:DOCX 页数:15 大小:220.34KB
下载 相关 举报
单片机与PC通讯.docx_第1页
第1页 / 共15页
单片机与PC通讯.docx_第2页
第2页 / 共15页
单片机与PC通讯.docx_第3页
第3页 / 共15页
单片机与PC通讯.docx_第4页
第4页 / 共15页
单片机与PC通讯.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机与PC通讯.docx

《单片机与PC通讯.docx》由会员分享,可在线阅读,更多相关《单片机与PC通讯.docx(15页珍藏版)》请在冰豆网上搜索。

单片机与PC通讯.docx

单片机与PC通讯

单片机原理与应用课程设计

——单片机与PC机通讯及动态显示

1、摘要:

在单片机的应用中,单片机的通讯是不可缺少的一部分。

单片机的通讯分为并行通信和串行通信。

并行通信时,数据的个位同时传送。

其优点是传送速度快;缺点是数据有多少位就需要多少根数据线,在长距离传输中,传输线过多是不经济的,并使系统的抗干扰能力降低。

串行通信时,数据的个位按照一定的顺序逐位分时传送。

它的突出优点是只需要一对数据线,大大的降低了网络成本,特别适用于远距离通信。

其缺点就是通信速度较低。

相比之下,并行通信虽然传输效率高,但是所需要设备复杂,远距离通信成本太高,所以其只适用于实时性较强,传输速率要求较高的设备中。

而串行通信则相对需要设备简单,成本低廉,适合远距离传输通信,所以已经被广泛应用于各工业控制系统中。

在此系统设计报告中,硬件方面包括单片机供电稳压系统、单片机基础介绍、MAX232芯片介绍、数码管的动态显示介绍、硬件的连线等。

软件方面包括了程序框图、程序流程图、C语言的最后程序。

关键词:

串行通信动态显示中断

2、简介

系统功能:

在PC机上输入00——FF的十六进制数据,通过串行口发送至单片机,单片机接收之后用中断系统控制两个八位数码管动态显示出来。

且将数据回发至PC机,以确定单片机系统接收数据是否正确。

本系统基于AT89S52单片机开发,其中数码管的片选信号由P2口控制,各段的显示由P0口控制。

所有器件集中在锐志开发板上,有串行总线经USB连接至PC机上。

3、系统硬件说明

3.1单片机各引脚分布及其简要介绍

(1)P0口:

是八位双向三态I/O口。

在访问外部存储器时可以做低八位地址线和八位数据线。

没有接上拉电阻。

(2)P1口:

内部带有上拉电阻的八位双向三态I/O口。

能接收低八位地址,

(3)P2口:

内部带有上拉电阻的八位双向三态I/O口。

访问外部存储器的时候可以送出高八位地址。

(4)P3口:

内部带有上拉电阻的八位双向三态I/O口。

有第二功能。

P3.0RXD串行输入口

P3.1TXD串行输出口

P3.2/INT0外部中断0

P3.3/INT1外部中断1

P3.4T0定时计数器0

P3.5T1定时计数1

P3.6/WR外部数据存储器写选通

P3.7/RD外部数据存储器读选通

(5)Vcc和Vss分别是+5V电源和地

(6)XTAL1和XTAL2外接晶振引脚

(7)RESET复位引脚

(8)EA内部外部存储器选通信号

(9)ALE实现数据和地址的分离

(10)/PSEN外部程序存储器读选通信号

 

3.2单片机内部结构图

 

从下图可知,它主要由8个部件通过片内总线连接而成。

部件有中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行输入/输出口、串行口、定时/计数器、中断系统及特殊功能寄存器。

 

CPU

(运算部件)

 

(控制部件)

数据

存储器

P0口

P2口

程序

存储器

P1口

串行口

定时/

计数器

P3口

中断系统

特殊

功能

寄存器(SFR)

3.3本设计中所用特殊功能寄存器介绍

3.3.1TMOD

GATA

C/T

M1

M0

GATA

C/T

M1

M0

(1)GATA:

门空位。

是定时控制器的开启与外部中断和单片机内部开启结合起来。

(2)C/T:

为0时,是定时器。

为1时,是计数器

(3)M0和M1:

用来选择工作方式。

3.3.2TCON

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

(1)TF1和TF0:

定时计数器0和1的溢出标志位。

(2)TR1和TR0:

定时计数器0和1的开启位。

(3)其中低四位与中断系统的外部中断有关。

本设计中不涉及。

 

3.3.3SCON

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

(1)SM0和SM1:

用来确定串行都得工作模式。

(2)SM2:

用于多机通信,本设计中不涉及。

(3)TB8和RB8:

本设计中不涉及;

(4)TI:

发送数据标志位。

表示发送缓冲器以空。

(5)RI:

接收数据标志位。

表示接收缓冲器已满。

3.3.4PCON

该寄存器的SMOD位是波特率倍增位。

3.4MAX232芯片介绍

3.4.1MAX232引脚介绍

(1)第一部分是电荷泵电路。

由1、2、3、4、5、6脚和4只电容构成。

功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

(2)第二部分是数据转换通道。

由7、8、9、10、11、12、13、14脚构成两个数据通道。

其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。

(3)8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

(4)TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

(5)第三部分是供电。

15脚GND、16脚VCC(+5v)。

3.4.2主要特点:

(1)符合所有的RS-232C技术标准

(2)只需要单一+5V电源供电

(3)片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-

(4)功耗低,典型供电电流5mA

(5)内部集成2个RS-232C驱动器

(6)高集成度,片外最低只需4个电容即可工作。

3.4.3RX232简单应用电路

 

(电容器应选择1μF的电解电容。

在使用过程中本人曾用过10μF的代替。

  注意,由于RS232电平较高,在接通时产生的瞬时电涌非常高,很有可能击毁max232,所以在使用中应尽量避免热插拔。

 

3.5八段数码管介绍

3.5.1LED的分类

八段LED数码管根据LED的接法不同分为共阴和共阳两类。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

3.5.2LED的封装

led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

led数码管常用段数一般为7段有的另加一个小数点。

数码管各段定义如图

3.5.3LED数码管的驱动方式

(1)静态显示驱动

  静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个89S52单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

(2)动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

 

4模块设计

4.1电源模块

系统供电电源模块电网电压为220V交流电,我们自制了直流稳压电源为系统供电。

采取三端可调式稳压器LM系列作稳压部分制作普通的正压稳压直流电源,对电路的数字部分和模拟部分共同供电。

4.2控制模块

选用AT89S52单片机,它是八位微处理器,集成度高,可靠性高。

可用汇编语言和C语言编程。

(上图为单片机最小系统)

该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成。

复位的实现通常用2种方式:

开机上电复位和外部手动复位,本设计用的是外部手动复位。

电路图2.5如下:

4系统设计

4.1电路框图

框图说明:

主程序模块循环检测串行口接收标志位是否为1,即是否有新的数据输入。

检测到有新的数据输入之后,将数据送至中断模块,由中断控制,分别取数据的高位和低位在两个八段数码管上显示。

在单片机接收到数据的同时,将所接收的数据回发至PC机上,使数据发送者确定单片机接收数据的正确性。

4.2程序流程图

主程序

 

定时务程器0中断服序

定时器0中断入口

 

4.4C语言程序及其解释

#include#defineucharunsignedchar

#defineuintunsignedint

//以上是52系列单片机的头文件和预定义字符

uchari,j,t,txd,flag;

ucharcodes8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

voidsend_char(uchartxd);

voidtime0();

//变量的定义、数码管段码表的输入、函数的声明

voidmain()

{TMOD=0x21;

TH1=TL1=0xfd;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

//定时计数器的初始化和其初值的设定

SCON=0x50;

PCON=0x00;

//串行口的初始化

EA=1;

ET0=1;

TR1=TR0=1;

//中断的开启

flag=0x00;

while

(1)

{if(RI==1)

{RI=0;//验证是否有数据自PC输入

t=SBUF;send_char(t)//将数据发送回PC机的函数

}

}

}

voidsend_char(uchartxd)

{SBUF=txd;

while(!

TI);

TI=0;

}

voidtime0()interrupt1//使数据在两位数码管上动态显示的中断函数

{TH0=(65536-1000)/256;TL0=(65536-1000)%256;

i=t%16;j=t/16;

switch(flag)

{case0x00:

P0=s8[j];P2=0xfe;flag++;break;

case0x01:

P0=s8[i];P2=0xfd;flag=0;break;

}

}

该程序用KeiluVision3软件编译成功,且借助串口大师软件成功运行,并且能达到预期效果,即输入00——FF之间的十六位进制数可以在数码管上得到显示,并且PC机上可以接受单片机接受的数据。

y

4设计总结

在系统设计的全过程中我们遵循了以下设计原则,使我们的方案系统化、清晰易懂、可靠性高、可维护性好。

总结如下:

(1)正确性和完备性原则:

我们在每“级”的设计完成后,都进行反复的过细检查,确保指标所要求的各项功能全部实现并留有必要的余地,以便最后对设计进行适当的优化。

(2)模块化、结构化原则:

每个模块均有明确的可独立完成的功能,而且对某个模块内部进行修改时不应影响其他的模块。

这样方便系统的调试和查错。

(3)直观性、清晰性原则:

我们不采用使人难以理解的诀窍和技巧,而选用最合适最清晰易懂的设计方案,这使得系统的可维护性非常好。

 

参考文献:

(1).黄智伟.全国大学生电子设计竞赛训练教程.北京:

电子工业出版社,2005

(2).潘新民,王燕芳.微型计算机控制技术.北京:

电子工业出版社,2005

(3).万文略.单片机原理及应用.重庆大学出版社

(4).赵丽清.51单片机开发与应用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1