




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南城建学院本科课程设计报告提供全套毕业论文,各专业都有河南城建学院电子技术基础课程设计报告定 时 闹 钟姓 名: 连波 学 号: 094412130 专业班级: 0944121 指导老师: 张洛花 所在院系:电气与信息工程学院 2014年12月24日摘要本设计是一个定时闹钟,它仅使用单片的40引脚单片机完成闹钟的全部功能。设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。本文设计的定时闹钟采用80c51芯片,用汇编语言进行编程,时、分、秒用6位led数码管显示。在电路中通过四个按键s1、s2、s3和s4来进行定时和调时,定时时间到通过喇叭发出报警声。设计系统的主要功能 能显示 时时分分秒秒。能够设置定时时间、 修改定时时间。到定时时间能发出报警1 系统总体方案及硬件设计1.1系统总体方案1)由于要显示数字时间,所以需要6位数码管。2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。3)80c51单片机加上外围器件(2个3位共阳数码管,8个限流电阻和一个蜂鸣器)和应用程序(isis 7 professional软件和keil编译软件),构成相应的应用系统。1.2系统设计方框图晶振及复位按钮 单片机80c518个限流电阻蜂鸣器6位共阳数码管显示选位图1系统设计方框图1.3硬件设计1.3.1芯片:80c5180c51芯片内不包含一个8位中央处理器cpu,4kb程序存储器rom,128b随机存取存储器,ram,4个8位并行i/o接口,1个全双工串行通信接口,2个16 位定时器、计数器级及21个特殊功能寄存器。由先进cmos 工艺制造并带有非易失性flash 程序存储器 全部支持12 时钟和6 时钟操作 p89c51x2 和p89c52x2/54x2/58x2 分别包含128 字节和256 字节ram 32 条i/o 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行i/o 口 可用于多机通信 i/o 扩展或全双工uart以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结cpu但ram定时器,串口和中断系统仍然工作掉电模式保存ram的内容 但是冻结振荡器 导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据 运行可从时钟停止处恢复。.1.3.2蜂鸣器由p3.7口控制蜂鸣器,使其定时时间到能发出报警声。1.3.3时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2mhz12mhz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pf100pf之间取值。单片机的时钟电路:如图所示 限流电阻:8个10k电阻控制按键:本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。1.3.4显示器模块的设计利用2个七段数码管6个选位引脚连接c51单片机 p2.5 p2.0接口,其他8个引脚分别通过限流电阻与c51单片机的p0.0 - p0.7和共阳极数码管连接。数码管:单片机中通常使用7段led,led是发光二极管显示器的缩写。led显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。led显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。如图所示2软件设计2.1划分模块根据设计要求,定时闹钟程序可分为以下几个模块:1)显示时间的设置;2)闹钟时间的设置:4)定时时间的响应。显示时间s4按下?s3按下?s1按下?显示闹钟时间调整闹钟调整响铃主程序响铃判断yyynynnn初始化开始3.2程序流程图 程序流程图2.3汇编程序 org 0000h ljmp start org 000bh ljmp time;初始化;start: mov sp, #50h mov 20h,#00h ;定义秒 mov 21h,#00h ;定义分 mov 22h,#00h ;定义时 mov 23h,#01h ;定义闹钟分钟 mov 24h,#01h ;定义闹钟小时 mov 25h,#00h mov 26h,#01h mov 30h,#00h ;bcd second mov 31h,#00h mov 32h,#00h ;bcd minute mov 33h,#00h mov 34h,#00h ;bcd hour mov 35h,#00h mov 36h,#01h mov 37h,#00h mov 38h,#01h mov 39h,#00h mov 50h,#00h ;按键次数 mov tmod,#01h ;16位计数器 mov th0, #03ch ;赋初值 mov tl0, #0b0h mov ie, #87h ;中断允许 setb tr0 ;启动t0 mov r2,#14h mov p2,#0ffh clr p3.7;主程序;main: lcall timepro ;调用闹钟判断gb: lcall display1;调用时间显示 jb p1.3,m1 ;p1.3=1时转移 s4没有按下 lcall settime ;调用settime调时子程序 ljmp mainm1: jb p1.2,m2 ;p1 g.2=1时转移s3 lcall setatime ;调用setatime子程序 ljmp mainm2: jb p1.0,m4 ;p1.01时转移 s1 lcall lookatime ;调用lookatime显示闹钟子程序m4: ljmp main;延时子程序 ;delay: mov r4,#030hdl00: mov r5,#0ffhdl11: mov r6,#9hdl12: djnz r6,dl12 djnz r5,dl11 djnz r4,dl00 ret;时间调整;settime: ;设置时间l0: lcall display1mm1: jb p1.3,l1 ;p1.3=1时转移 mov c,p1.3 jc mm1 lcall delay1 ;延时 jc mm1mstop1: mov c,p1.3 ;p1.3为0时转移 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 ;小时计数循环 mov 22h,#00h ;复位 mov 34h,#00h mov 35h,#00h ljmp l0l1: jb p1.1,l2 ;p1.1=1时转移 mov c,p1.1 jc l1 lcall delay1 ;延时 jc l1mstop2: mov c,p1.1 ;p1.10时转移 jnc mstop2 lcall delay1 ;延时 mov c,p1.1 jnc mstop2 inc 21h ;分钟加一 mov a,21h cjne a,#3ch,go11 ;分钟计数循环 mov 21h,#00h ; 复位 mov 32h,#00h mov 33h,#00h ljmp l0 go11: mov b,#0ah div ab mov 32h,b ; 将a的低4位存入32单元 mov 33h,a ; 将a的高4位存入33单元 ljmp l0go12: mov b,#0ah div ab mov 34h,b ;将a的低4位存入34单元 mov 35h,a ; 将a的高4位存入35单元 ljmp l0l2: jb p1.0,l0 ; p1.01时转移 mov c,p1.0 jc l2 lcall delay1 ;延时 mov c,p1.0 jc l2stop1: mov c,p1.0 ; p1.00时转移 jnc stop1 lcall delay1 ;延时 mov c,p1.0 jnc stop1 mov 50h,#00h ljmp main; 设置闹钟;setatime:lcall display2 ; 调用display2显示闹钟n0: lcall display2mm2: jb p1.2,n1 ;p1.2=1时转移 mov c,p1.2 jc mm2 lcall delay1 ; 延时 jc mm2mstop3: mov c,p1.2 ; p1.20时转移 jnc mstop3 lcall delay1 ; 延时 mov a,50h inc 50h cjne a,#00h,hj2 ljmp n0hj2: mov c,p1.2 jnc mstop3 inc 24h ;小时加一 mov a,24h cjne a,#24,go22 ;小时计数循环 mov 24h,#00h ;复位 mov 38h,#00h mov 39h,#00h ljmp n0n1: jb p1.1,n2 ;p1.11时转移 mov c,p1.1 jc n1 lcall delay1 ;延时 jc n1mstop4: mov c,p1.1 ;p1.10时转移 jnc mstop4 lcall delay1 ;延时 mov c,p1.1 jnc mstop4 inc 23h ;分钟加一 mov a,23h cjne a,#60,go21 ;分钟计数循环 mov 23h,#00h ;复位 mov 36h,#00h mov 37h,#00h ljmp n0go21: mov b,#0ah div ab mov 36h,b ;将a的低4位存入36单元 mov 37h,a ;将a的高4位存入37单元 ljmp n0go22: mov b,#0ah div ab mov 38h,b ;将a的低4位存入38单元 mov 39h,a ;将a的高4位存入39单元 ljmp n0n2: jb p1.0 ,n0 ;p1.01时转移 mov c,p1.0 jc n2 lcall delay1 ;延时 mov c,p1.0 jc n2stop2: mov c,p1.0 jnc stop2 lcall delay1 mov 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 ;调用timeout bk:rettimeout: x1: lcall bz ;调用喇叭响应程序 lcall display2 ;延时 clr 25h.0 ;调用喇叭响应程序结束 jb p1.0, x1 ;p1.01时转移 lcall delay ;延时 clr 25h.0 ljmp display1 bz: clr p3.7 mov r7,#250 ;喇叭响应时间 t2: mov r6,#124 t3: djnz r6,t3 djnz r7,t2 setb p3.7 retlookatime:lcall display2 mm: jnb p1.0,lookatime lcall delay1 ljmp maindelay1: mov r4,#14h ;时间延时dl001: mov r5,#0ffhdl111: djnz r5,dl111 djnz r4,dl001 ret;*定时*time: push acc ;保护现场 push psw movth0,#03ch ;初值 movtl0,#0b0h djnz r2,ret0 movr2,#14h mov a,20h clr c inc a ;秒自加一 cjne a,#3ch,go1 ;秒计数循环 mov 20h,#0 ;复位 mov 30h,#0 mov 31h,#0 mov a,21h inc a ;分钟自加一 cjne a,#3ch,go2 ;分钟计数循环 mov 21h,#0h ;复位 mov 32h,#0 mov 33h,#0 mov a,22h inc a ;小时自加一 cjne a,#18h,go3 ;小时计数循环 mov 22h,#00h ;复位 mov 34h,#0 mov 35h,#0 ajmp ret0go1:mov 20h,a mov b,#0ah div ab mov 31h,a ;将a的低4位存入31单元 mov 30h,b ;将a的高4位存入30单元 ajmp ret0go2: mov 21h,a mov b,#0ah div ab mov 33h,a ;将a的低4位存入33单元 mov 32h,b ;将a的高4位存入32单元 ajmpret0go3:mov 22h,a mov b,#0ah div ab mov 35h,a ;将a的低4位存入35单元 mov 34h,b ;将a的高4位存入34单元 ajmpret0ret0: pop psw ;恢复现场 pop acc reti;*显示子程序*display1:mov r0,#30h mov r3,#0feh mov a,r3play1: mov p2,a mov a,r0 ;取要显示的数据 mov dptr,#dseg1 ;指向字形段码首地址 movc a,a+dptr cpl a ;查表取字形段码 mov p0,a ;指向p0口 lcall dl1 mov p2,#0ffh mov a,r3 ;判断是否显示到最低位 rl a ;左移一位 jnb acc.6,ld1 inc r0 ;缓冲器地址加一 mov r3,a ljmp play1ld1: retdisplay2: push acc ;保护现场 push psw mov r0,#36h mov r3,#0fbh mov a,r3play2: mov p2,a mov a,r0 ;取要显示的数据 mov dptr,#dseg1 ;指向字形段码首地址 movc a,a+dptr cpl a ;查表取字形段码 mov p0,a ;指向p0口 lcall dl1 ;调用dl1 mov p2,#0ffh mov a,r3 ;判断是否显示到最低位 rl a ;左移一位 jnb acc.6,ld2 inc r0 ;缓冲器地址加一 mov r3,a ljmp play2 ;调用play2ld2: pop psw pop acc ;恢复现场 ret ;delay;dl1: mov r7,#20hdl: mov r6,#20hdl6: djnz r6,$ djnz r7,dl retdseg1: db 3fh,06h,5bh,4fh,66h ;七段码表 db 6dh,7dh,07h,7fh,6fh end3 protell软件仿真:通过s1、s2、s3和s4四个按键,对时间进行修改和闹钟的设置。定时时间到能发出报警声,使用keil软件编辑程序,生成hex文件,然后用protel进行仿真,系统运行初始状态:按下s1键显示闹钟,松开后显示时间;按下s4键进入时间修改模式,再按s4键时间的时加1,按s2分加1,调整结束后按下s1恢复正常显示;按下s3键进入闹钟修改模式,再按s3键闹钟的时加1,按s2分加1,调整结束后按下s1恢复正常显示。4 课程设计体会:课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。通过本次单片机原理及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司视频脚本策划方案
- 公司美食类活动方案
- 公司水果采摘活动方案
- 公司植树挂牌活动方案
- 公司深圳湾公园活动方案
- 公司组织骑单车活动方案
- 公司旅游业余活动方案
- 公司羽毛球例行活动方案
- 公司温泉团建策划方案
- 公司线上周年庆活动方案
- 工贸行业重点可燃性粉尘目录(2022版)
- 近代史期末复习试题
- 教学设计 完整版:Summer holiday plans
- 2022年武汉市法院书记员招聘考试题库及答案解析
- 湖南省邵阳市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 齐齐哈尔大学教师教育实践中心申报材料汇总
- 中考物理总复习课教案(第一轮)
- 工厂开工试车方案
- 变电站土石方工程施工方案(42页)
- 英语专业四级写作评分标准
- 汽油柴油一书一签
评论
0/150
提交评论