您好,欢迎访问三七文档
11.实训目的(1)认识AT89系列单片机芯片及其系统。(2)认识单片机的基本原理,应用及编程。(3)了解单片机编程器的基本原理,应用及其编程烧录软件的使用。(4)学习单片机开发软件的基本使用及其操作。(5)学习时钟/温度显示的程序设计。(6)学习单片机实际应用实例的电路设计及软件调试技巧。2.实训要求(1)在芯片里烧录软件,并进行实物操作(2)识别不同的电子元器件的规格和种类,熟练掌握焊接技术。(3)利用7489C51、DS18B20、RESPACK-8、SOUNDER、等芯片制作一个时钟温度显示器,该时钟温度显示器具有显示温度、复位、开始计时、停止计时等功能。3.实训步骤(1)设计方案的选择因指导老师在试验开始时以定好实验方案,所以方案的选择以指导老师的为准。(2)电路原理分析一般电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。该可调电子钟/温度显示电路(如图1)主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路电路和温度感应电路组成。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码2显示电路将“时”、“分”、“秒”计数器的输出状态用四段显示译码器译码,通过四段显示器显示出来(秒由分右下角的小数点来表示,即闪一下一秒)。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。电子时钟由89C52,BUTTON,四段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能;可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一;还可以通过按键实现温度的显示。P00P01P02P03P04P05P06P07XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130pFC230pFX1CRYSTALC310uFR94.7kR10100R11100R121k234567891RP1RESPACK-8K1K2K3128.0DQ2VCC3GND1U2DS18B20LS1SOUNDERP00P01P02P03P04P05P06P07ABCDEFGDpABCDEFGDp图1.1系统仿真图4.芯片封装及其功能(1)AT89C52AT89C52是美国ATMEL(爱特梅尔)公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),器件采用ATMEL公司的高密度/非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器CPU)和FLASH存储单元,AT89C52单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的3芯片。如图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚备选功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)4P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(2)晶振电路AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图所示方式连接。晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。根据实际情况,本设计晶振选择频率为12MHZ,电容选择30pF如图。经计算得单片机工作胡机器周期为:us112112)(M振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上。时钟发生器是个二分频的触发器,它将振荡器的信号频率fosc除以2,向CPU提供两相时的时5钟号。(3)复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图)。C310uFR11100R121k图1.2复位电路(4)按键电路K1键:在正常显示时间状态下按下K1键,开始计时,再按K1键,暂停计时K2键:当K1键连按三次后按下K2键时,所校对的分加一。当K1键连按四次后按下K2键时,所校对的时加一。K3键:按下K3键时,可以显示当前的温度,松开按键时继续接着刚才的时间显示。K1K2K3图1.3按键电路(5)显示器如图为四段显示数码管,A,B,C,D,E,F,G,DP别与AT89C52的P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7引脚相连。1,2,3,4引脚分别与AT89C52的P2.0,P2.1,P2.2,P2.3引脚相连。四段显示数码管与AT89C51的引脚连线6之间连接上拉电阻来保护数码管如图ABCDEFGDp图1.4显示器(6)蜂鸣器如图所示,蜂鸣器由P3.4引脚驱动,当该引脚有脉冲输出时,则蜂鸣器发出“滴滴滴”的响声。R10100LS1SOUNDER图1.5蜂鸣器(7)温度感应电路该电路能感应现场的温度并生成电信号传送给AT89C51。7R94.7k128.0DQ2VCC3GND1U2DS18B20图1.6温度感应电路5.系统仿真、调试及结果分析(1)主程序流程图本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、校对设置程序、EEPROM读写程序等组成。主要程序设计流程图如下所示:开始K1是否按下?K2是否按下?K3是否按下?显示温度YNYN延时去抖动K1是否按下?小时增加1延时去抖动K2是否按下?分钟增加1显示时间K3是否按下?延时去抖动YYNK3是否抬起?YNNYYNN开始重装初值,计数器加1,是否半秒?秒显示标志位反转是否1秒?软件计数器清0,秒加1是否60秒?秒清0,分钟加1是否60分?分清0,小时加1是否24小时?小时清0返回YYYYYNNNNNN图1.7主程序流程图与1s中断服务子程序流程图8(2)中断服务程序流程在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。在主程序中,对不同的按键进行扫描,实现时间调整,复位清零,显示时间等功能,系统中断流程图如图。(3)电子时钟利用定时器T0实现1s定时,T0设置为方式1,时间50ms,利用软件计数20次,实现1s定时。中断服务子程序流程图如图参考以上流程图编写程序。使用Proteus和Keil仿真。使用定时器中断T0实现。开始取小时十位显示代码送P0位选显示器“1”位返回延时取小时个位显示代码,添加小数点送P0延时取分钟十位显示代码送P0延时取分钟个位显示代码延时位选显示器“2”位位选显示器“3”位位选显示器“4”位半秒标志位是否为1?NY添加分钟个位显示代码小数点显示代码送P0开始扫描P1口判断有无按键按下?小时加1是否为24小时?小时清0K3是否按下?时间/温度切换显示返回YYYYNNNN延时去抖动扫描P1口判断有无按键按下?NYK1是否按下?分钟加1分钟是否为60?分钟清0YYK2是否按下?NN图1.8显示子程序流程图与按键扫描子程序流程图96.电路制作与调试测试调整1)可调电子钟/温度显示系统的测试用Keil编写可调电子钟/温度显示系统所需要的软件,然后用Proteus按照原理图画出可调电子钟/温度显示系统的仿真电路图,让后把用Keil编写的程序载入到仿真电路中,最后用Proeul进行仿真。正常计数时认真观察显示器的显示情况,依次按K1,K2,K3,K4按键,观察显示器能否能按按键的功能显示出应有的数字。2)整体测试经过验证我们小组的可调电子钟/温度显示系统的仿真图具有显示复位等应有的功能。焊接的实物电路在输入别人正确的程序后具有显示复位等应有的功能。以上两个实验可以证明我们组的这两个模块是没有问题的
本文标题:单片机原理及应用
链接地址:https://www.777doc.com/doc-3138537 .html