1、论文题目:单片机与计算机串行通信的设计学 号:20101003学生姓名:周爽 学 院: 电气与电子工程学院 专 业: 电气工程及其自动化 班 级: 100307 指导教师:林志琦 2013 年 1 月1第 1 章 设计任务及性能指标1.1 系统开发背景和系统设计的意义自单片机出现至今,单片机技术已走过了近 20 年的发展路程。纵观 20 年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域为拉动,表现出较微处理器更具个性的发展趋势。与此同时在市场上以单片机为核心控制器的产品更是层出不穷,各种家用电器、智能仪器仪表、医疗器械、机
2、电一体化、实时工业控制、交通领域无不用到单片机。从目前单片机的发展趋势来看,单片机控制技术已成为电子设计技术及计算机技术不可缺少的一个重要部分,因此单片机系统在电子世界里有着较好的前景,进行单片机的系统开发设计在当今电子领域有着重大的意义。1.2 设计目标该设计要求实现:设计串行通信接口,实现与 PC 机的通信,完成键盘输入指令,控制发光二极管的状态。设计结果要求:完成电路的设计,完成软件程序的编写(包括流程图和部分源代码) 。1.3 设计任务该设计题目包括四个个部分,分别为:1.及性能指标设计任务(包括设计背景及意义) ;2.系统硬件设计(包括各模块的硬件电路设计、主要芯片的介绍等) ;3.
3、系统软件设计(包括主程序流程图的设计、控制算法) ;4.系统的调试(包括硬件调试和软件调试):5.结论21.4 设计原理单片机的串行口除了可用作与其他单片机的通信外,还能作为与普通计算机通信的通道,从而使得单片机在通信与控制领域得到了广泛的应用。串行通讯方式具有使用线路少、成本低,适合远程传输。PC 机与单片机之间由 RS-232C 接口相连,在计算机的串行口都是公头,称为 DB9P。而可插入公头的是母头,称为 DB9S。计算机通过串口软件发送和显示数据,发送的数据通过晶片 MAX232 传到单片机中,并由 LED 数码管显示出来。第 2 章 硬件系统设计2.1 硬件设计框图硬件电路的设计框图
4、,如图 1 所示:PC机MAX232电平转换电路控 制 器 单片机AT89S52晶振电路发光二极管复位电路3电源电路图 1 硬件电路设计图本设计的主要硬件电路包括:单片机与 PC 机串行通信接口和 ISP 编程下载电路、单片机外围电路等部分。2.2 主要芯片的介绍2.2.1 单片机 AT89S52AT89S52 是低功耗,高性能 CMOS 8 位单片机,可反复擦写 1000 次的 Flash只读程序存储器,兼容标准 MCS-51 指令系统及 80C51 引脚结构,其主要特点为:(1) 、40 个引脚 DIP- 40 封装,8k Bytes Flash 片内程序存储器;(2) 、256 byte
5、s 的随机存取数据存储器(RAM) ;(3) 、5 个中断优先级 2 层中断嵌套中断;(4) 、2 个 16 位可编程定时计数器,2 个全双工串行通信接口。其引脚封装如图 2 所示;主要引脚介绍如下:4图 2 单片机 AT89S52 封装图(1)VCC、GND 电源、接地引脚;(2)XTAL1、XTAL2 外部振荡器接入的两个引脚;(3)RESET 复位信号输入引脚;(4)RXD、TXD P3 口 作第二功能引脚用作串行通信接口输入、输出引脚;(5)P0.1P0.7 数据/地址总线引脚;P1.0P1.7 一般的 I/O 口;P2.0P2.7 一般的 I/O 口。2.2.2 电平转换模块 MAX
6、232MAXIM 公司生产的、包含两路接收器和驱动器的 IC 芯片,适用于各种 EIA-232C和 V.28/V.24 的通信接口。 MAX232 芯片的功能: MAX232 内部有一个电源电压变换器,可以把输入的+5V 电源电压变换成为 RS-232C 输出电平所需的10V 电压。所以,采用此芯片接口的串行通信系统只需单一的+5V 电源就可以了。对于没有12V 电源的场合,其适应性更强Max232 是 TTL 电平与 RS232 电平相互转换的模块,其引脚封装图如图 3 所示:图 3 MAX232 封装图5其各引脚功能如下表 1 所示:表 1 MAX232 引脚功能2.3 串行通信电路单片机
7、与 PC 机串行通信接口电路及编程下载电路如图 4 所示:162738495J1DB9R1 IN13R2 IN8T1 IN11T2 IN10GND15V+2V-6VCC16R1 OUT 12R2 OUT 9T1 OUT 14T2 OUT 7C1+1C1 -3C2+ 4C2 - 5U1MAX232EWE(16)C30.1FC40.1FC20.1FC10.1FRXD/P3.0TXD/P3.1VCC1 23 45 67 89 10J1ISPVCCD1R11KP1.5P1.6P1.7RESET图 4 单片机与 PC 机串行通信接口的电路6本设计的串行通信部分主要是由 MAX232 电平转换电路和 IS
8、P 编程下载电路组成,其原理是:MAX232 芯片把单片机引脚的 COMS 电平(05V)转换为 RS232 电平(-12V +12V) ,AT89S52 单片机有一个全双工的串行通信口,而 PC 机有一个 RS232 的通信接口。只要用 RS232 D 型 9 针的引脚的双边母头接到 PC 机上,而另一头和 MAX232 相连接,MAX232 的输出再和 AT58S52 相连就可以实现单片机和 PC 机的串行通信。具体连线如上图 8 所示,AT89S52的串行通信引脚的 TXD 和 RXD 分别接到 MAX232 的 T1IN 和 T1OUT 上,MAX232 的 R1OUT 和 R1IN
9、分别接到 RS232 的 2、3 上,RS232 的 5 脚接地。MAX232 外围元件只有四个电容,根据 MAX232 的典型应用电路,可取 0.1F 50V 的电解电容。ISP 编程口和 AT89S52 的连线为: AT89S52 的 P1.5、P1.6 P1.7、RESET 分别连接到 ISP 的 3、4、5、7 脚上,ISP 的 1、2 脚联合接电源9、10 脚联合接地即可.直接从上位机上下载可执行的二进制代码文件,无须外加写读器。D1 为下载指示灯,R1 为限流电阻,发光二极管的压降为 2V,电流取 5mA,其阻值为:R1= ( 5-2)/0.005=600,考虑到和 ISP 一起共
10、电,在此取1K。2.4 单片机外围电路单片机外围电路包括晶振电路和复位电路,如图 5 所示:7图 5 单片机外围电路(晶振电路、复位电路)单片机外围电路由复位电路、晶振电路组成。复位电路采用上电和按键都有效的复位电路。此电路能实现开机和单片机在运行时的复位,开机复位要求接通电源后,单片机自动实现复位操作,开机瞬间单片机的 RST 引脚获得高电平,随着电容 C13 的充电 RST 的高电平将逐渐下降。RST 引脚的高电平只要能保持足够的时间,单片机就可以进行复位操作。单片机内部有一振荡电路,只要在单片机的 XTAL1 和 XTAL2 引脚外接一石英晶体振荡器,就构成了自激振荡器并在单片机内部产生
11、了时钟脉冲信号,图中 C14 和 C15 的作用是稳定频率和快速起振,电容值选为 22F。2.5 发光二极管显示电路发光二极管显示电路如图 6 所示:8图 6 发光二极管显示电路此电路为共阳极电路,由计算机键盘输入指令,观察发光二极管的状态(亮,灭) 。每个发光二极管连接一个限流电阻为 1K。第 3 章 软件系统设计3.1 主程序流程图系统由 AT89S52 单片机作为中央控制器,控制各功能模块的正常工作及数据的接收和处理。整个软件系统是这样来设计的:首先上位机编辑好源程序再转换为相应的可执行的二进制代码文件由编程下载电路传送到单片机中存储。通过按键来控制系统的功能,主程序的流程图如图 7 所
12、示:9开始初始化读取命令主程序发控制命令图 7 系统主程序流程图3.2 程序代码#include bit Flag;unsigned int ReData,SenData;void main (void) SCON = 0x50; /REN=1 允许串行接受状态,串口工作模式 1 TMOD|= 0x20; /定时器工作方式 2 PCON|= 0x80; /TH1 = 0xFD; /baud*2 /* reload value 19200、数据位 8、停止位 1。效验位无 (11.0592) TH1 = 0xF3; / /baud*2 /* 波特率 4800、数据位 8、停止位 1。效验位无 (
13、12M)TL1 = 0xF3; TR1 = 1; ES = 1; /开串口中断 EA = 1; / 开总中断 10/ IE = 0x0;while(1) if (Flag=1) SBUF=SenData; /SUBF 接受/发送缓冲器while(TI=0);TI=0;P2=SBUF;Flag=0;/*串口中断程序*/void ser_int (void) interrupt 4 using 1if(RI = 1) /RI 接受中断标志 RI = 0; /清除 RI 接受中断标志ReData = SBUF; /SUBF 接受/发送缓冲器SenData=ReData;Flag=1;第 4 章 系统
14、的调试4.1 硬件调试11硬件的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和工艺性故障。利用万用表或逻辑仪表器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。先要将单片机 AT89S52 芯片取下。对电路板进行通电检查,通过观察看是否连接正确,是否有异常,是否有虚焊的情况,然后用万用表测试各电源电压,这些都没问题后,接上仿真机进行联机调试,观察各接口线路是否正常。最后,在进行整体的模拟调试,看看系统能否按希望进行运行。4.2 软件调试软件调试是利用仿真工具进行在线仿真测试,除发现和解决程序错误外,也可以发现硬件故障。软件方面先进的特点:Wave60
15、00 和 Keil uVsion 双平台、双工作模式软件模拟仿真和硬件模拟仿真、真正集成调试环境、项目管理功能、多语言多模块混合调试、直接点屏观察变量、功能强大的变量观察、强大的书签、断点管理功能、类似 IE 的前进、后退定位功能一、 程序的仿真调试1、 建立新程序选择文件/新建文件功能,在一个文件名为 NONAME1 的源程序窗口下输入程序。2、 保存新程序选择菜单文件/保存文件或文件/另存为功能,文件保存位置:C:WAVE6000SAMPLES文件名.ASM3、 建立新项目选择文件/新建项目功能,新建项目会自动分三步走:加入模块文件、加入包含文件、保存项目。项目保存好后,选窗口/项目窗口功
16、能来打开。4、 设置项目选择设置/仿真器设置功能或按“仿真器设置”快捷图标或双击项目窗口的第一行打开“仿真器设置”对话框,在“仿真器”栏中选仿真器类型和配置的仿真头及所要仿真的单片机。5、 编译程序12第 5 章 心得体会本课题的重点、难点是:(1) 硬件系统的选择与软件的设计(2) 考虑从非电量信号到电量信号的电路实现原理以及与单片机的接口;(3) RS-232-C 串口编程的技术。(4) 软件系统的调试。通过这次课程设计,更加深入理解了 PC 与单片机的串行通讯。好些课堂上学不到的知识。在整个设计过程中都学到了,其中画好原理图其实是最重要的一部分,很多知识,是需要通过实践才能更加理解,很多经验是通过动手才能积累。并且通过这次课设还让我明白 word 排版其实也是很需要技巧的,通过不断的改正我的排版好看多了。所以,这个课程设计不仅丰富了我的书本知识,留给我更多的是如何发现问题,解决问题的经验。13