基于AT89C51单片机实验开发板系统设计论文.docx
《基于AT89C51单片机实验开发板系统设计论文.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机实验开发板系统设计论文.docx(30页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机实验开发板系统设计论文
毕业设计报告(论文)
报告(论文)题目:
基于AT89C51单片机实验开
发板系统设计
摘要
51单片机的运行速度快,工作电压低,功耗低,抗干扰能力强,被广泛应用于办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制等不同领域,特别是近几年应用更加广泛,各公司兼采用此芯片开发应用类产品。
而目前市场上的学习套件一般功能不全,配套的软件系统都是汇编语言,还没有一个比较完善的51开发板供学习和研究。
鉴于此,本设计设计了一个可供学习与开发系统于一体的51单片机的综合开发系统。
基于51单片机的综合开发系统,目前国外的产品,主要是51厂家配套提供的学习开发系统,价格偏高,技术也基本处于状态,深层次学习和利用比较困难,特别是全球领先的单片机和模拟半导体供应商不断向高端推出他的一系列新产品,为汽车、工业产品、家电和消费类应用提供更高的能效、更低的噪音和更广泛的使用围,这些技术已相对成熟。
国正处于发展阶段,大多数人学习的主要对象还都是MCU-51系列单片机,51单片机开发系统相对较少,也只是与汇编语言配套,要达到普与和提高开发应用速度,必须采用C语言,而C语言配套程序又非常少并不完善,不适合学生与大众人群学习和利用。
综观目前国外的51单片机的综合开发系统系统,主要表现在开发高端产品,其应用类也向高端电子产品发展,为复杂的电机控制应用提供极精确且高能效的完整解决方案。
不断扩充适用于汽车(稳定性控制、车气候控制、燃料泵和油泵、电动方向盘和节流阀控制);家电(洗碗机、冰箱、洗衣机和排风扇);工业产品(工业机器人、材料处理、暖通空调和贩卖机),以与消费类产品(冲浪浴缸、烤箱/烤架、浴室风扇)等。
关键词51单片机单片机开发板高性能学习开发系统
基于AT89C51单片机实验开发板系统设计
第1章绪论
1.1单片机的发展现状
单片机属于第四代微型计算机的一个重要分支。
单片机是把中央处理器CPU(CentralProcessingUnit),随机存取存储器RAM(RandomAccessMemrty),只读存储器ROM(ReadOnlyMemory),定时器/计数器以与I/O接口电路等主要计算部件集成在一块集成电路芯片上的微型计算机。
单片机的应用导致了控制领域的一场革命,是微控制技术逐步取代传统的硬件控制。
近十几年来,单片机在生产过程控制、自动检测、数据采集与处理、科技计算、商业管理和办公室自动化等方面获得了广泛的应用。
单片机具有体积小、重量轻、耗能省、价格低、可靠性高和通用灵活等优点,因此也广泛应用于卫星定向、汽车火花控制、交通自动管理和微波炉等专用控制上[1]。
近几年来,单片机的发展更为迅速,己经渗透到诸多学科的领域,以与人们生活的各个方面。
在嵌入式系统低端的单片机领域,从8位单片机诞生至今,已近30年,在百花齐放的单片机家族中,80C51系列一直扮演着一个独特的角色。
Silabs推出C8051F更令业界人士刮目相看。
回顾历史,在Intel公司推出了MCS-51不久便实施了最彻底的技术开放政策,在众多电器商、半导体商的积极参与下,将MCS-51发展成了众多型号系列的80C51MCU家族。
MCS-51经典的体系结构、极好的兼容性和Intel公司的开放政策不仅使众多厂家参与发展,也诱使半导体厂家对MCS-51实行为所欲为的改造。
由于MCS-51提供的最佳兼容性,使MCS-51在被"肢解"式改造后,还能以不变的指令系统、基本单元的兼容性保持着8051核的生命延续,并在未来SoC发展中,担任8位CPU核的重任。
回顾80C51系列从MCS-51、80C51到C8051F的过程[2],我们可以深刻领会到单片机发展的一些规律性东西。
早期单片机都是用1个时钟控制片所有时序[3]。
进入CMOS时代后,由于低功耗设计的要求,出现了在一个主时钟下CPU运行速度可选择在不同的时钟频率下操作;或设置成高、低两个主时钟,按系统操作要求选择合适的时钟速度,或关闭时钟。
而Silabs公司的C8051F则提供了一个完整而先进的时钟系统,在这个系统中,片设置有一个可编程的时钟振荡器(无需外部器件),可提供2、4、8和16MHz时钟的编程设定[4]。
外部振荡器可选择4种方式。
当程序运行时,可实现外时钟的动态切换。
编程选择的时钟输出CYSCLK除供片使用外,还可从随意选择的I/O端口输出。
1.2实验开发板的现状与发展与使用对象
51单片机技术自发展以来已走过了近20年的发展路程。
单片机技术的发展以微处理器(MPU)技术与超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。
小到遥电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。
针对51单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生51单片机开发板。
实践表时,8位的单片机仍然占据着市场百分之八十的份量。
单片机开发板是适合目前想要学习单片机技术的人士,这些人士大致可以分成三类:
一类是在校的电子专业学生,为了完成一些科技项目或者是把学校学到的知识转化成实际的电子作品,为以后的技术开发与工作求职创造更好的条件,这类学生需要的就是实践经验了。
一类是业余的电子爱好者,想通过自学单片机来提高自己的电子技术水平,以后能够运用到自己熟悉的领域中有所作为,这类学员的动手能力一般比较好,但是理论知识一般欠缺一些。
最后一类人就是有一定的理论和较少的开发经验者。
这类时需要丰富自己的开发经验,并与现实生活中实际用例相接合。
1.3AT89C51在实验板中的应用
AT89C51是美国Ateml公司生产的低电压,高性能CMOS8位单片机,片含4KB的可反复擦写的Flash只读程序存储器和128b的随机存取数据存储器(RAM),器件采用Ateml公司的高密度,非易失性存储技术生产,兼容标准MCS—51指令系统,片置通用中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89C51在此整个实验板系统中处于核心地位。
硬件电路板设计中,几乎其它所有的元器件的选取都要依据AT89C51的性能参数来决定。
例如电源电路中基于AT89C51的工作电压为+5V所以稳压芯片选择7805系列。
在软件设计中,AT89C51接收并处理键盘输入的信号,将其发送给显示器件,实现液晶显示功能,或发送给PC机实现串行通信功能。
另一方面,它也接收上位机发送的数据,处理后传送给显示器件。
1.4课题的背景与意义
MCS-51单片机的运行速度快,工作电压低,功耗低,抗干扰能力强,被广泛应用于办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制等不同领域,特别是近几年应用更加广泛,各公司兼采用此芯片开发应用类产品。
而目前市场上的学习套件一般功能不全,配套的软件系统都是汇编语言,还没有一个比较完善的51开发板供学习和研究。
鉴于此,本设计设计了一个可供学习与开发系统于一体的51单片机的综合开发系统。
第2章开发板的总体设计
2.1开发板系统功能
单片机开发板是一个实际应用的系统,能够为相关的单片机实验提供支持。
此开发板是参考单片机教材中的实验容设计的,能够实现一些测试实验。
本论文包括硬件系统的详细设计与C语言程序流程图的制作。
此开发板设计的功能如下:
(1)10位AD转换。
(2)铁电存储器读写(SMBUS)。
(3)16位PWM输出。
(4)四位独立键盘。
(5)SPI接口驱动1602ALCD。
2.2开发板的性能要求
基于开发板的功能定义和各种芯片的性能参数,总结系统基本性能要求如下:
(1)各芯片所需的+3.3V平稳电压。
(2)AT89C51单片机时钟信号为11.0592MHz。
(3)AT89C51单片机手动复位电路。
(4)显示器件(1602、12864)。
(5)4位独立键盘。
(6)AD、DA转换。
(7)与PC机串行通信。
(8)I/O口扩展功能。
2.3硬件总体设计
本人设计的单片机开发板是以AT89C51作为主控制芯片,串口通信芯片MAX3232、网络芯片CP2200、液晶显示器、按键开关、AD/DA转换等元器件组成,通过软硬件结合实现键盘扫描,液晶显示,与PC机串行通信,I/O口扩展功能等。
一方面,它能作为学生实验的工具,另一方面,它也是综合型单片机系统设计的基础,可扩展许多其它功能。
外围电路是AT89C51工作的基础保障——电源电路提供稳定的+3.3V工作电压,时钟电路用于产生单片机工作所需的时钟信号,复位电路使单片机实现初始化状态复位。
键盘电路用于向系统输入运行参数,控制系统的运行状态。
通过键盘扫描等程序设计把键盘输入的数据在液晶显示器上显示或把数据发送到PC机实现串行通信。
LCD电路用来显示键盘输入的数据,PC机发送到AT89C51的数据,其功能也是靠硬件电路的设计和软件程序的结合来实现的。
串行通信电路主要是为了单片机与PC机之间数据传送而设计的,AD转换电路是把数字信号和模拟信号相互转换并输入、输出的电路。
SMBusI/O接口是一个双线的双向串行总线[5]。
SMBus提供了SDA(串行数据)控制、SCL(串行时钟)产生和同步、仲裁逻辑以与起始/停止的控制和产生电路。
UART通讯电路与上位机实现数据传送串行通信电路的功能。
C8051F340中的串行接口能方便地与其它计算机或串行传送信息的外围设备实现双机,多机通信,此开发板中采用电平转换芯片MAX232与9芯D插座连接方式。
AT89C51器件集成了一个完整的全速/低速USB功能控制器,用于实现USB外部设备(AT89C51不能被用作USB主设备)。
AT89C51中的捕捉/比较模块有六种工作方式:
边沿触发捕捉、软件定时器、高速输出、频率输出、8位PWM和16位PWM,每个捕捉/比较模块的工作方式都可以被独立配置,此开发板采用16位PWM输出方式。
以太网控制器具有8位并行主机接口,可以为绝大多数微控制器或主处理器提供以太网通信功能。
第3章开发板的模块电路设计
3.1AT89C51单片机
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS的8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
引脚排列所示图3-1所示。
图3-1单片机引脚图
由于电路原理中只用到单片机的p0、p1、p2口,所示下面对这三个端口进行详细介绍。
P0口:
P00~P07统称为P0口,在不接片外存储器与不扩展I/O接口时,作为准双向输入/输出接口。
在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。
P0口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。
在输入数据时,应人为地先向P0口写“1”,定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P10~P17统称为P1口,可作为准双向I/O接口使用。
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4LSTTL门电流。
P1口管脚写入“1”后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
P2口:
P20~P27口统称为P2口,一般可以作为准双向I/O接口使用,在接有片外存储器或扩展I/O接口且寻址围超过256字节时,P2口用作高8位地址总线。
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
3.2单片机外围电路
1.时钟电路
时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。
单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在本次设计中,时钟电路设计就是采用部方式,即利用芯片部的振荡电路。
AT89C51单片机部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2是高增益反相放大器的输入端和输出端。
这个高增益反相放大器将与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体振荡器以与电容C1和C2构成并联谐振电路,接在放大器的反馈回路中,对外接电容的值虽然没有严格的要求,但是电容的大小会影响起振的快速和温度的稳定性、振荡器的稳定性、振荡器频率的高低。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择瓷电容,电容值约为22uF。
在焊接刷电路板时,我们应注意晶体振荡器和电容尽可能安装的与单片机芯片靠近些,用以减少寄生电容,为了更好地保证振荡器可靠地工作和稳定行,其电路图如图3-2所示。
图3-2时钟电路
用晶振和电容构成谐振电路。
电容C1、C2容量在15~40pF之间,大小与晶振频率和工作电压有关。
但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用30pF的电容作为微调电容。
在设计电路板时,晶振、电容等均应尽可能靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。
2.复位电路
复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化以外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境也需按复位键以重新启动。
AT89C51芯片部有复位电路,RST引脚是复位信号的输入端高电平有效,复位方式有自动复位和手动复位两种。
计算机在启动运行时都需要复位,复位时使中央处理器CPU和部其他部件处于一个确定的初始状态,从这个状态开始工作。
AT89C51单片机有一个复位引脚RST,高电平有效。
在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统部复位。
复位有两种方式:
上电复位和按钮复位。
在此次的设计中,我采用按键复位,其电路图如图3-3所示。
图3-3复位电路
只要RST保持高电平,AT89C51单片机将循环复位。
复位期间,ALE、PSEN输出高电平。
RST从高电平变为低电平后,PC指针变为0000H,使单片机从程序存储器地址为0000H的单元开始执行程序。
复位后,容各寄存器的初始容如表4-1所示,当单片机执行程序出错或进入死循环时,可按复位按钮重新启动。
3.3独立键盘电路
键盘是人与AT89C51单片机联系的重要手段,用于向CPU输入运行参数,控制系统的运行状态。
由四个独立按键来控制两个发光二极管的亮灭,四位独立按键的操作输入单片机,通过编程实现对LED的控制电路图如下图3-4示。
图3-4独立按键电路
3.410位AD转换电路
AT89C51部有一个10位SARADC和一个差分输入多路选择器。
该ADC工作在200ksps的最大采样速率时可提供真正10位的线性度,INL为±1LSB。
ADC系统包含一个可编程的模拟多路选择器,用于选择ADC的正输入和负输入。
端口I/O引脚中的20个(48脚封装)或21个(32脚封装)引脚可用作ADC的输入,另外,片温度传感器的输出和电源电压(VDD)也可以作为ADC的输入。
用户固件可以将ADC置于关断状态以节省功耗。
A/D转换可以有6种启动方式:
软件命令、定时器0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。
这种灵活性允许用软件事件、周期性信号(定时器溢出)或外部硬件信号触发转换。
一个状态位用于指示转换完成,或产生中断(如果被允许)。
转换结束后10位结果数据字被锁存到ADC数据寄存器中。
窗口比较寄存器可被配置为当ADC数据位于一个规定的围之或之外时向控制器申请中断。
ADC可以用后台方式连续监视一个关键电压,当转换数据位于规定的围之/外时才向控制器申请中断。
模拟多路选择器(AMUX0)选择去ADC的正输入和负输入,端口引脚、片温度传感器输出和正电源(VDD)中的任何一个都可以被选择为正输入,端口引脚、VREF和GND中的任何一个都可以被选择为负输入。
当GND被选择为负输入时,ADC0工作在单端方式,在所有其它时间,ADC0工作在差分方式。
转换码的格式在单端方式和差分方式下是不同的。
每次转换结束后,寄存器ADC0H和ADC0L中保存ADC转换结果的高字节和低字节。
转换数据在寄存器对ADC0H:
ADC0L中的存储方式可以是左对齐或右对齐,由AD0LJST位(ADC0CN.0)的设置决定。
当工作在单端方式时,转化码为10位无符号整数,所测量的输入围为0~VREF×1023/1024。
ADC0H和ADC0L寄存器中未使用的位被设置为‘0’。
10位AD转换电路如下图3-5所示。
图3-510位AD转换电路
3.5电源电路
电源(Vcc)是整个开发板正常工作的动力源泉。
电源电压过大会大大缩短芯片的工作寿命,严重的会烧毁芯片与其它元器件;过小将不能驱动实验板工作电路。
因此设定合适的电源电压值非常重要。
此开发板主要芯片工作电压均+3.3V左右,
开发板的电源电路如图3-6所示。
图3-6电源电路
3.6液晶显示电路
显示器件是开发板中普遍使用的输出器件,较常用的是LED数码管和LCD液晶显示器[9]。
前者仅能显示数据输出,而后者能显示更多,更复杂的字符,如汉字,甚至是图形等。
此开发板采用1602液晶显示器作为输出显示器件。
1602液晶引脚特性:
该液晶显示器以其微功耗、体积小、显示容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。
根据显示容可以分为字符型液晶,图形液晶。
根据显示容量又可以分为单行16字,2行16字,两行20字等等。
这里介绍常用的字16字X2行的字符型液晶模块的使用方法。
这是一种通用模块。
与数码管相比该模块有如下优点:
(1)位数多,可显示32位,32个数码管体积相当庞大了。
(2)显示容丰富,可显示所有数字和大、小写字母。
(3)程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。
开发板液晶显示电路如图3-7所示。
图3-7液晶显示电路
第4章电路PCB的制作
在任何开关电源设计中,PCB板的物理设计都是最后一个环节,如果设计方法不当,PCB可能会辐射过多的电磁干扰,造成电源工作不稳定,以下针对各个步骤中所需注意的事项进行分析。
4.1电路原理图设计
电路原理图设计本着连线简洁各功能模块清晰的设计思路设计。
因为后期要设计PCB电路板,因此要为每一个元件选择和设计合适的封装,必要的时候要添加自己特有元件的封装库。
4.2PCB电路板元件布局与走线设计
在硬件设计完成之后可以说最关键的应该是PCB板的设计,因为理论的东西无论讲解的多详细,指导的多全面,也不与实物摆放出来更具说服力。
要完成从理论到实际的升华就要设计PCB印制版图。
PCB设计注意事项:
由于开关稳压电源工作在高频开关状态,而且高频变压器初级侧有高达300V的直流电压,在功率开关管的集电极甚至有700V的瞬间高电压,因此在设计PCB板时要考虑电磁干扰问题和安全问题,主要应该注意PCB引线尽量短,功率输出部分引线尽量宽,甚至要加焊锡条,高压元件应该有足够的间距保证安全,在这套电路中既有模拟电路又有数字电路,这两部分电路地线要分开连接,最后再接到一起,防止出现共地干扰。
对于数字电路来说,时钟晶振应该尽量靠近单片机时钟脉冲输入引脚,防止引入干扰。
最后就是要注意各个模块电路元件尽量集中,在放置元件时应遵守先放置单元电路中的主要元件,一般是集成电路或体积较大,对整体电路影响较大的元件,然后根据小单元电路放置外围元件,以保证对其它电路影响尽量小,引线尽量短的原则。
在进行PCB板设计之前还要检查一下每个元件是否都有封装,封装是否正确,是否符合要求,对于没有封装的元件和封装不符合要求的元件要重新绘制封装,直到所有元件封装都正确为止。
4.3PCB板整体设计
(1)从原理图到PCB的设计流程:
建立组件参数→输入原理网表→设计参数设置→手动布局→手动布线→检查错误→输出。
(2)参数设置相邻导线间距必须能满足电气安全要求,而且为了便于操作和生产,间距也应尽量宽些。
最小间距至少要能适合承受的电压,在布线密度较低时,信号线的间距可适当地加大,对高、低电平悬殊的信号线应尽可能地短且加大间距,一般情况下将走线间距设为8mil。
焊盘孔边缘到印制板边的距离要大于1mm,这样可以避免加工时导致焊盘缺损。
当与焊盘连接的走线较细时,要将焊盘与走线之间的连接设计成水滴状,这样的好处是焊盘不容易起皮,而且走线与焊盘不易断开。
(3)元器件布局实践证明,即使电路原理图设计正确,印制电路板设计不当,也会对电子设备的可靠性产生不利影响。
例如,如果印制板两条细并行线靠得很近,则会形成信号波形的延迟,在传输线的终端形成反射噪声;由于电源、地线的考虑不周到而引起的干扰,会使产品的性能下降,因此,在设计印制电路板的时候,应注意采用正确的方法。
(4)设计布线图时走线尽量少拐弯,印刷弧上的线宽不要突变,导线拐角应≥90度,力求线条简单明了。
印刷电路中不允许有交叉电路,对于可能交叉的线条,可以用“钻”、“绕”两种办法解决。
即让某引线从别的电阻、电容、三极管脚下的空隙处“钻”过去,或从可能交叉的某条引线的一端“绕”过去,在特殊情况下如果电路很复杂,为简化设计也允许用导线跨接,解决交叉电路问题。
因采用单面板,直插组件位于top面,表贴器件位于bottom面,所以在布局的时候直插器件可与表贴器件交迭,但要避免焊盘重迭。
(5)检查布线设计完成后,需认真检查布线设计是否符合开始所制定的规则,同时也需确认所制定的规则是否符合印制板生产工艺的需求,一般检查线与线、线与组件焊盘、线与贯通孔、组件焊盘与贯通孔、贯通孔与贯通孔之间的距离是否合理,是否满足生产要求。
电源线和地线的宽度是否合适,在PCB中是否还有能让地线加宽的地方。
注意:
有些错误可以忽略,例如有些接插件的Outline的一部分放在了板框外,检查间距时会出错;另外每次修改过走线和过孔之后,都要重新覆铜一次。
(6)复查根据“PCB检查表”,容包括设计规则,层定义、线宽、间距、焊盘、过孔设置,还要重点复查器件布局的合理性,电源、地线网络的走线,高速时钟网络的走线与屏蔽,去耦电容的摆放和连接等。
(7)封闭的物理边框对以后的元件布局、走线来说是个基本平台,也对自动布局起着约束作用,否则,从原理图过来的元件会不知所措的。
但这里一定要注意精确,否则以后出现安装问题麻烦可就大了。
还有就是拐角地方最好用圆弧,一方面可以避免尖角划伤工人,同时