《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计_第1页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计_第2页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计_第3页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计_第4页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学专业课程设计3(微处理器与微控制器应用)课程设计说明书目录1设计方案11.1 设计目的11.2 设计任务12 设计总体框图12.1 系统设计方框图12.2 程序流程图23 设计单元电路33.1 at89c51的时钟电路33.2 at89c51的复位电路设计43.3 at89c51的显示电路设计43.4 at89c51的按键电路设计54 电路原理说明64.1 at89c51芯片管脚及其功能64.2 电路总原理及硬件原理图84.3 软件设计95 参考文献206 设计心得20附录:21附录1:调试报告21附录2:元器件清单22定时闹铃的设计1设计方案1.1 设计目的本设计是一个定时闹钟,

2、它仅使用单片的20引脚单片机完成闹钟的全部功能。设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。1.2 设计任务 本设计是一个定是闹钟,它仅使用单片40个引脚单片机at89c51完成闹钟的全部功能,包括时钟显示,时钟设置,闹钟设定和闹钟报时。设计目的是学习和巩固单片机知识,使用学习过的关于at89c51的基础知识能有更深入的理解,学会独立思考,独立工作,以及提高对所学习的应用基本理论分析和解决实际问题的能力。2 设计总体框图2.1 系统设计方框图6位共阳数码管显示单片机at89c51

3、限流电阻晶振及复位按钮led指示灯图1 系统设计框图开 始2.2 程序流程图有关变量的初始化启动走时显示时间判断是否闹钟时间到yled亮nns4是否按下s3是否按下yynn按s3?按s2?按s2?按s4?yyyy调 整 时钟 分调 整 时钟 时设置闹钟 时设 置 闹钟 分nnnn按s1?按s1?按s1?按s1? yyyy图2 程序流程图3 设计单元电路3.1 at89c51的时钟电路at89c51系列的单片机时钟方式分为内部和外部方式,外部方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义

4、:一是指为保障系统正常工作的基准振荡定时信号,主要有晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;而是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现。本设计的采用内部时钟方式。时钟电路如图3所示。图3 时钟电路3.2 at89c51的复位电路设计 复位是单片机的初始化操作,起主要功能是把pc初始化为0000h,使单片机从0000h单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错祸操作错误使系统处于死锁状态时,为摆脱困境,可以使

5、复位键以重新启动,也可以通过监视定时器来强迫复位。ret引脚是复位信号的输入端,如图4所示。图4 复位电路 3.3 at89c51的显示电路设计分段式显示器(led数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。led数码管有共阳、共阴之分。图是共阳式、共阴式led数码管的原理图和符号,如图5所示。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管。led显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位led显示器,通常都是采用动态扫描的方法

6、进行显示,其硬件连接方式如图6所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第三个和第四个数码管,秒的十位和个位分别显示在第五个和第六个数码管。定时时间到后,p3.7被置位,二极管发光,提醒闹钟时间到。 图5 共阳式、共阴式led数码管的原理图和数码管的符号图 图6 数码管硬件连接图3.4 at89c51的按键电路设计s1按键接在p2.0口,用于切换正常走时、调时间、设定闹钟;s2按键接在p2.1口,用于调整时间分加一和设置闹铃分加一功能键;s3按键接在p2.2口,按下后进入闹钟设置状态;s4按键接在p2.3口,按下后进入时间调整状态。按键连接如图7所示。图7 按

7、键硬件连接图4 电路原理说明4.1 at89c51芯片管脚及其功能at89c51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,可稳定地工作于5v的电源下.该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器。at89c51芯片引脚图如图8所示。图8 at89c51芯片引脚图at89c51管脚说明: vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输

8、入。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”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作

9、为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口:管

10、脚 备选功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断0) p3.3 /int1(外部中断1) p3.4 t0(记时器0外部输入) p3.5 t1(记时器1外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输

11、出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内

12、部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。4.2 电路总原理及硬件原理图电路总原理:将软件.hex文件添加到芯片后,就可开始仿真。此设计中数码管显示时分秒,时为24进制,分和秒都为60进制。当按下s3时进入闹钟设置状态,此时再按下s3则设置闹钟时,每按一下闹钟时加一,到23h时回到0h,接着按下s2则设置闹钟分,每按一下闹钟分加一,之后按下s1回到时间显示状态;当按下s4时进

13、入时钟调整状态,此时再按下s4则调整时钟时,每按一下时钟时加一,到23h时回到0h,接着按下s2则设置时钟分,每按一下时钟分加一,之后按下s1回到时间显示状态。电路总原理图如图9所示。图9 电路总原理图4.3 软件设计设计程序如下:org 0000hljmp startorg 000bh ljmp time start:mov sp,#51h mov 20h,#00h ;定义秒 mov 21h,#00h ;定义分 mov 22h,#00h ;定义时 mov 23h,#00h ;定义闹钟分 mov 24h,#00h ;定义闹钟时 mov 25h,#00h mov 26h,#00h mov 30h

14、,#00h ;bcd 显示时间秒 mov 31h,#00h mov 32h,#00h ;bcd 显示时间分 mov 33h,#00h mov 34h,#00h ;bcd 显示时间时 mov 35h,#00h mov 36h,#00h ;bcd 闹钟分 mov 37h,#00h mov 38h,#00h ;bcd 闹钟时 mov 39h,#00h mov 50h,#00h ;按键次数 mov tmod,#01h mov th0,#03ch mov tl0,#0b0h mov ie,#82h ;中断允许 setb tr0 ;启动t0 mov r2,#14h mov p2,#0ffh clr p3.

15、7main: lcall timepro ;判断是否为闹钟gb: lcall display1 ;显示时间 jb p1.3,m1 lcall settime ljmp mainm1: jb p1.2,m2 lcall setatime ljmp mainm2: jb p1.0,m4 lcall lookatimem4: ljmp maindelay:mov r4,#030h ;延时子程序dl00: mov r5,#0ffhdl11: mov r6,#09hdl12: djnz r6,dl12 djnz r5,dl11 djnz r4,dl00 retsettime: ;设置时间l0: lcal

16、l display1mm1: jb p1.3,l1 ;进入时间设置状态 mov c,p1.3 jc mm1 lcall delay1 jc mm1mstop1: mov c,p1.3 ;设置时钟时 jnc mstop1 lcall delay1 mov a,50h inc 50h cjne a ,#00h,hj1 ljmp l0hj1: mov c,p1.3 jnc mstop1 inc 22h mov a,22h cjne a,#18h,go12 ;时为24h时清零 mov 22h,#00h mov 34h,#00h mov 35h,#00h ljmp l0l1: jb p1.1,l2 mo

17、v c,p1.1 jc l1 lcall delay1 jc l1mstop2: mov c,p1.1 ;设置时钟分 jnc mstop2 lcall delay1 mov c,p1.1 jnc mstop2 inc 21h mov a,21h cjne a,#3ch,go11 ;分为60s时清零 mov 21h,#00h mov 32h,#00h mov 33h,#00h ljmp l0go11: mov b,#0ah div ab mov 32h,b mov 33h,a ljmp l0go12: mov b,#0ah div ab mov 34h,b mov 35h,a ljmp l0l2

18、: jb p1.0,l0 mov c,p1.0 jc l2 lcall delay1 mov c,p1.0 jc l1stop1: mov c,p1.0 ;回到时间显示 jnc stop1 lcall delay1 mov c,p1.0 jnc stop1 mov 50h,#00h ljmp mainsetatime:lcall display2 ;设置闹钟n0: lcall display2mm2: jb p1.2,n1 mov c,p1.2 jc mm2 lcall delay1 jc mm2mstop3: mov c,p1.2 ;设置闹钟时 jnc mstop3 lcall delay1

19、 mov a,50h inc 50h cjne a,#00h,hj2 ljmp n0hj2: mov c,p1.2 jnc mstop3 inc 24h mov a,24h cjne a,#18h,go22 ;时为24h时清零 mov 24h,#00h mov 38h,#00h mov 39h,#00h ljmp n0n1: jb p1.1,n2 mov c,p1.1 jc n1 lcall delay1 mov c,p1.1 jc n1mstop4: mov c,p1.1 ;设置闹钟分 jnc mstop4 lcall delay1 mov c,p1.1 jnc mstop4 inc 23h

20、 mov a,23h cjne a,#3ch,go21 ;分为60s时清零 mov 23h,#00h mov 36h,#00h mov 37h,#00h ljmp n0go21: mov b,#0ah div ab mov 36h,b mov 37h,a ljmp n0go22: mov b,#0ah div ab mov 38h,b mov 39h,a ljmp n0n2: jb p1.0,n0 mov c,p1.0 jc n2 lcall delay1 mov c,p1.0 jc n1stop2: mov c,p1.0 ;回到时间显示 jnc stop2 lcall delay1 mov

21、c,p1.0 jnc stop2 mov 50h,#00h ljmp maintimepro:mov a,21h ; 判断是否为闹钟 mov b,23h cjne a,b,bk mov a,22h mov b,24h cjne a,b,bk setb 25h.0 mov c,25h.0 lcall timeout jmp bk1bk: clr p3.7bk1: rettimeout: setb p3.7 ret lookatime: lcall display2 ;判断s1是否按下,若按下则显示时间,否则显示闹钟mm: jnb p1.0,lookatime lcall delay1 ljmp

22、main delay1: mov r4,#14hdl001: mov r5,#0ffhdl111: djnz r5,dl111 djnz r4,dl001 rettime: push acc ;定时 push psw mov th0,#0e0h mov tl0,#0b0h djnz r2,ret0 mov r2,#14h mov a,20h clr c inc a ;秒自加1 cjne a,#3ch,go1 ;秒计数循环 mov 20h,#00h ;复位 mov 30h,#00h mov 31h,#00h mov a,21h inc a ;分自加1 cjne a,#3ch,go2 ;分计数循环

23、 mov 21h,#00h ;复位 mov 32h,#00h mov 33h,#00h mov a,22h inc a ;时自加1 cjne a,#18h,go3 ;时计数循环 mov 22h,#00h ;复位 mov 34h,#00h mov 35h,#00h mov a,21h ajmp ret0go1: mov 20h,a mov b,#0ah div ab mov 31h,a ;秒高位 mov 30h,b ;秒低位 ajmp ret0go2: mov 21h,a mov b,#0ah div ab mov 3h,a ;分高位 mov 32h,b ;分低位 ajmp ret0go3: m

24、ov 22h,a mov b,#0ah div ab mov 35h,a ;时高位 mov 34h,b ;时低位 ajmp ret0ret0: pop psw pop acc retidisplay1:mov r0,#30h ;显示子程序 mov r3,#01hplay1: mov a,r3 mov p2,a mov a,r0 mov dptr,#dseg1 mov c a,a+dptr mov p0,a lcall dl1 mov a,r3 rl a mov r3,a mov c,acc.6 jc ld1 inc r0 ljmp play1ld1: retdisplay2: push acc

25、 push psw mov r0,#36h mov r3,#04hplay2: mov a, r3 mov p2,a mov a,r0 mov dptr,#dseg1 movc a,a+dptr mov p0,a lcall dl1 mov a,r3 ;判断是否显示到最低位 rl a ;左移一位 mov r3,a mov c,acc.6 jc ld2 inc r0 ;缓存器地址加一 ljmp play2ld2: pop psw pop acc retdl1: mov r7,#20hdl: mov r6,#20hdl6: djnz r6,$ djnz r7,dl retdseg1: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end 5 参考文献1高峰.单片微型计算机原理与接口技术(第二版).北京:科学出版社,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论