文档详情

电子定时器讲解

s****a
实名认证
店铺
DOCX
300KB
约23页
文档ID:167602379
电子定时器讲解_第1页
1/23

课程设计报告课程名称 •单片机原理及应用课程设计设计题目: 电子定时器 院 系: 通信与控制工程 专 业: 电子信息工程 班 级: 0902 学生姓名: 学 号: 起止日期•—指导教师: 教研室主任: 指导教师评语:指导教师签名: 年 月 日成 绩 评 定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字: 年 月 日教学系审核意见:主任签字: 年 月 日单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了由于单片 机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点, 目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”随着电子技 术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使 用起来很不方便根据这种实际情况,本设计基于单片机的多用途定时器它造价低, 功能全,整体功能价格比高,配以小键盘,8255芯片和LED显示器,有可适应各种场 合的定时预警之用的特点关键词:电子定时器;单片机;LED显示器;小键盘;8255芯片;继电器设计要求 11方案论证与对比 11.1方案一 11.2方案二 11.3方案对比与选择 12系统硬件电路的设计 22.1芯片的选择 22.2 STC89C52 引脚功能 32.3 8255 芯片 32.4 8255芯片引脚功能 42.5复位电路 52.6数码管显示电路 62.7继电器 63系统软件的程序设计 73.1软件程序内容 73.2主程序流程图 73.3定时程序设计 73.4实时时钟程序设计步骤 83.5程序说明 84详细仪器清单 96参考文献 95总结与思考及致谢 10附录一:原理图 12附录二:程序 13电子定时器设计要求本课题以单片机为核心,设计并制作电子定时器,具有以下功能:1、 电子定时器能定时给电器供电或断电;2、 给电最大时间可以长达2min;3、 四位数码管显示时间;4、 继电器作电器电源输出控制。

1方案论证与对比1.1方案一为了实现LED数码管的数字显示,采用静态扫描实现,此方法操作复杂,并且一 个端口只能对应一个数码管1.2方案二采用动态扫描实现LED数码管的数字显示,能有效的节省端口资源,并且操作也相对简单系统总体设计框图如图1所示:继电器STC89C5282单片机U〉5控制器图1系统总体设计框图6位LED显示器1.3方案对比与选择根据以上方案的介绍与对比,显然选择方案二2系统硬件电路的设计2.1芯片的选择STC89C52RC是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用 STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚 结构STC89C52RC具有如下特点:40个引脚(引脚图如图2所示),4k Bytes Flash片内程 序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O) 口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口, 看门狗(WDT)电路,片内时钟振荡器。

此外,STC89C52RC设计和配置了振荡频率可为0Hz并可通过软件设置省电模式 空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作, 掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复 位同时该芯片还具有PDIP、TQFP和PLC等三种封装形式,以适应不同产品的需求2345618910111213141516171819201P1.0/T2VCCP1.1/T2EXP0.0/AD0P1.2P0.1/AD1P1.3P0.2/AD2P1.4P0.3/AD3P1.5/MOSIP0.4/AD4P1.6/MISOP0.5/AD5P1.7/SCKP0.6/AD6RSTP0.7/AD7P3.0/RXDEAP3.1/TXDALE/PROGP3.2/INT0PSENP3.3/INT1P2.7/A15P3.4/T0P2.6/A14P3.5/T1P2.5/A13P3.6/WRP2.4/A12P3.7/RDP2.3/A11XTAL2P2.2/A10STAL1P2.1/A9GNDP2.0/A84030293938353433323?2423222\262528273736图2芯片引脚图2.2 STC89C52引脚功能VCC (40): +5V;GND (20):接地;卩0口(39 — 32): P0口为8位漏极开路双向I/O 口,每引脚可吸收8个TTL门电流;P1 口(1 — 8): P1 口是从内部提供上拉电阻器的8位双向I/O 口,P1 口缓冲器能接收 和输出4个TTL门电流;卩2口(21 — 28): P2口为内部上拉电阻器的8位双向I/O 口,P2口缓冲器可接收和输 出4个TTL门电流;P3 口(10—17): P3 口是8个带内部上拉电阻器的双向I/O 口,可接收和输出4个TTL 门电流,P3口也可作为AT89C51的特殊功能口;RST (9):复位输入。

当振荡器复位时,要保持RST引脚2个机器周期的高电平时 间;ALE/PROG (30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址 的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变 的频率周期输出正脉冲信号,此频率为振荡器频率的1 /6,它可用作对外部输出的脉冲或 用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲;PSEN (29):外部程序存储器的选通信号在由外部程序存储器取指期间,每个机 器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;EA/VPP (31):当EA保持低电平时,外部程序存储器地址为(0000H—FFFFH) 不管是否有内部程序存储器oFLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1 (19):反向振荡器放大器的输入及内部时钟工作电路的输入;XTAL2 (18):来自反向振荡器的输出;2.3 8255 芯片单片机系统里常用的8255芯片是一个典型的可编程通用并行接口芯片,用来扩展单 片机的端口,它具有三个8位的并行口,有三种工作方式,可作为单片机与各种外部设 备连接的接口电路。

934^5678910111213141516171819201PA3PA4PA2PA5PA1PA6PA0PA ?/RD■ WR/CSRESETGNDDOAlDIAOD2PC7D3PC6D4PC5D5PC4D6PCOD7PCIV(?(?PC2PB7PC3PB6PBOPB5PB1PB4PB2PB3图3芯片引脚图403938373635343332282726J ■2423T7UH212.4 8255芯片引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器) 均被清除,所有I/O 口均被置成输入方式CS :芯片选择信号线,当这个输入引脚为低电平时,即/cs=o时,表示芯片被选中,允 许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据 总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据 或控制字写入8255D0〜D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出 指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0〜PA7:端口 A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输 入锁存器PB0〜PB7:端口 B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器PCO〜PC7:端口 C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输 入缓冲器端口 C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一 个4位的锁存器,分别与端口 A和端口 B配合使用,可作为控制信号输出或状态信号输 入端口AO,A1 :地址选择线,用来选择8255的PA 口,PB 口,PC 口和控制寄存器.当A0=0,A1=0时,PA 口被选择;当A0=0,A1=1时,PB 口被选择;当A0=1,A1=0时,PC 口被选择;当A0=1.A1=1时,控制寄存器被选择.2.5复位电路MCS-51单片机的复位是由外部的复位电路来实现的复位引脚RST通过一个斯密 特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯 密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信 号上电复位:上电复位电路是一种简单的复位电路,只要在RST复位引脚接一个电 容到VCC,接一个电阻到地就可以了。

上电复位是指在给系统上电时,复位电路通过 电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电 过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间为了保证 系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间上电自动复位电路图如图4所示:图4上电自动复位图上电自动复位是通过外部复位电路的电容充电来实现的只要Vcc的上升时间不超 过1ms,就可以实现自动上电复位2.6数码管显示电路显示电路采用6个LED数码管单片机通过8255芯片的扩展端口驱动LED数码管(AT89C52输出口能吸收20mA电流),用动态扫描法实现LED显示数码管显示器 成本低,配置灵活在单片机应用系统中广泛应用数码管电路图如图5所示:图5数码管电路图2.7继电器继电器是一种电子控制器件,它具有控制系统和被系统控制,通常应用于自动控制 电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”键盘电路图如图6所示:图6继电器电路图3系统软件的程序设计3.1软件程序内容本设计的软件程序包括主程序、中断子程序、键盘处理程序和时钟显示子程序等3.2主程序流程图此设计的主程序流程图如图7所示:图7主程序流程图3.3定时程序设计单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的 内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器 加1。

如果MCS-51采用的11.092MHz晶体,则计数频率为1MHz,即每过1us的时间 计数器加1这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出 计数器的初值MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应 的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两 种工作模式和4种工作方式定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=O、1)的低5位和THX 的高8位所构成TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢 出标志位TFX.当定时器/计数器工作于方式1,为16位的计数器本设计单片机多功能定时器, 所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟 脉冲,每个机器周期产生一个脉冲使计数器增13.4实时时钟程序设计步骤1、 选择工作方式,计算初值;2、 采用中断方式进行溢出次数累计;3、 从秒——分一一时的计时是通过累加和数值比较实现的;4、 主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方 法等待中断的到来;5、 中断服务程序:进行计时操作;6、 键盘处理程序:主要进行通电时间的调整,调整时间可以精确到秒。

3.5程序说明系统开机后,从00:01:59开始倒计时,通过按中断0表示开始调整时间,在按六次 分别调整各位数,当数码管显示00:00:00时继电器工作4详细仪器清单表格一:仪器清单元件名称数量PCB板122UF电容130PF电容2发光二极管13位数码管2三极管9015811.0592 晶振1轻触开关161K电阻22STC89C52 芯片18255芯片1继电器15总结与思考及致谢根据实际情况,本设计基于单片机的多用途定时器它造价低,功能全,整体功 能价格比高,配以小键盘和LED显示器、8255芯片,有可适应于各种场合的定时预警 之用的特点结合课堂学习知识,平时积累以及查阅相关资料,我们终于将电子定时器 的程序写出了虽然刚开始程序不够完美,但是在程序的调试过程中,通过反复探讨研 究,反复修改以及在指导老师的指导下,我们的程序已经达到了设计要求经过了这两 周的单片机课程设计,我们更加了解单片机这门课程和单片机的作用,增强了自己的动 手实践能力,体会到了团队合作的力量无所不能最后,我们要特别感谢谭周文老师给予我们的耐心指导以及同班同学的帮助参考文献[1] 李华.MCS — 51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1999.[2] 赵德安,等.单片机原理与应用[M].北京:机械工业出版社,2004.9[3] 王幸之,等.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社.2000.[4] 童诗白华成英.模拟电子技术基础[M].北京:高等教育出版社,2001(2003重印)[5] 马忠梅等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1998, 10[6] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大 学出版社,1999, 6[7] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996[8] 楼然苗等.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.3附录- 原理图卜.|.'.|17-.■一畫 - 一 sX-—SSI.□til4 LI-" P 屮 T P ■— Lq rr: 口 一. r_口 NBR£# M寺 CIS, s^. 1 豈3=d SVJ ZVJ rv.4 EV*o□□-u a -3 u jO □□-U U "3 U Js GV 二 E 白_V7「窘 二 X ETI TMIrrd: Tr_WTi # _'

{uchar i;for(i=0;iv6;i++){a8255_PA=a[5-i];a8255_PB=table[count[i]];if(i==2lli==4)a8255_PB=a8255_PB-0x20;delay();}}uchar Inkey(){uchar i,j,temp,templ;uchar table[]={0xef,0xdf,0xbf,0x7f};for(i=0;i<4;i++){a8255_PC=〜table[i];if(a8255_PC!=〜table[i]) //检测有键按下去{ delay1();temp1=a8255_PC;for(j=0;j<16;j++){if(keytab[j]=temp1)〃 判断{count[flag]=j;if(count ⑶>0)count ⑶=0;if(count[5]>0)count[5]=0; flag++; break;}}}}return 0;}void Init(){EA=1;ETO=1;EX0=1;IT0=1;TH0=0x3c;TL0=0xb0;TMOD=0x01;TR0=1;count[2]=1;count[3]=0;count[4]=0;count[5]=0;count[1]=5;count[0]=9;a8255_CON=Ox81;}void main(){Init();while(l){display。

if(count[2]=0&&count[3]=0&&count[4]=0&&count[5]=0&&count[1]==0&&count[0]==0){Speak=O;TR0=0;}}}void timer0() interrupt 1{uchar temp;TH0=0x3c;TL0=0xb0;temp++;if(temp==20) //one second{temp=0;count[0]--;}if(count[0]v0) //ten seconds{count[0]=9;count[1]--;}if(count[1]<0)// one minutecount[l]=5;if(count[2]==0){if(count[3]==0){if(count[4]=0){count[5]--;count[4]=0;count[3]=0;count[2]=1;}else{count[4]--;count[3]=0;count[2]=1;}}elsecount[3]--;count[2]=1;}elsecount[2]--;}if(count[2]<0) //two minutes{count[2]--;}if(count[3]vO){count ⑶=0;count[4]--;}if(count[4]<0){count[4]=0;count[5]--;}if(count[5]<0){count[5]=0;count[4]=0;count[3]=0;count[2]=1;}if(count[5]=l &&count[4]==0){count[5]=count[4]=0;}}void Change。

interrupt 0{uchar i;TR0=0;EX0=0;count[0]=count[1]=count[2]=count[3]=count[5]=count[4]=0;for(i=0;iv6;i++){ while(flag==i){Inkey();display}}flag=0;TRO=1;}。

下载提示
相关文档
正为您匹配相似的精品文档