版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《单片机技术及应用》课程设计报告专业:班级:姓名:指导教师:二0一一年11月14日摘要近年来随着计算机在社会领域的渗透和大规模集成电路的开展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格廉价,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善本次做的数字钟是以单片机〔AT89C51〕为核心,结合相关的元器件〔3个2位共阳数码管,一个发光二极管和一个蜂鸣器〕和应用程序〔proteus软件和KEIL编译软件〕,构成相应的应用系统。关键词:单片机AT89C51共阳数码管发光二极管蜂鸣器proteus软件KEIL编译软件目录TOC\o"1-3"\u1.课题设计目的42.课程设计题目描述和要求42.1AT89C51的单片机简介52.2LED显示电路82.3键盘控制电路83.课程设计报告内容93.1.方案设计要求9方案设计与论证9整体设计框图10系统设计流程图11绘制数字时钟电路Protues仿真原理图12启动ISIS7Professional软件12仿真电路绘制12电路检测13软件设计14运行keil软件编写程序并编译、连接14将程序烧入单片机并运行14运行程序15软件与硬件调试154.总结165.附录17数字时钟源程序17实物图24参考文献25基于单片机的数字时钟设计的数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机STC89C51在Proteus软件中实现数字时钟的定时、时间调整、闹正设置等功能。具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的根底。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机数字时钟。单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。此数字钟是一个将“时〞、“分〞、“秒〞显示于人的视觉器官的计时装置。显示器件选用LED七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用独立式按键识别过程,按“时〞,“分〞,“秒〞数据送出显示处理方法。〔1〕具有时、分、秒计数显示功能,以24小时循环〔2〕LED数码管显示时、分、秒的个位和十位〔3〕可以在任意时刻校准时间〔4〕能够完成时间的显示、定时闹钟、复位等功能2.1AT89C51的单片机简介〔一〕AT89C51的介绍AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O接口电路等一台计算机所需要的根本功能部件,AT89C51单片机内包含以下几个部件:〔1〕一个8位CPU;〔2〕一个片内振荡器及时钟电路;〔3〕4K字节ROM程序存储器;〔4〕128字节RAM数据存储器;〔5〕两个16位定时器/计数器;〔6〕可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;〔7〕32条可编程的I/O线〔四个8位并行I/O端口〕;〔8〕一个可编程全双工串行口;〔9〕具有五个中断源、两个优先级嵌套中断结构。其内部结构框图如以下图所示:〔二〕AT89C51单片机的局部管脚说明:AT89C51单片机采用40条引脚双列直插式器件,引脚除5V〔40脚〕和电源地〔20脚〕外,其功能分为时钟电路、控制信号、输入/输出三大局部,引脚图如以下图:①Vcc40电源端;GND20接地端。工作电压为5V。②外接晶振引脚晶振连接的内部、外部方式图XTAL119、XTAL218:XTAL1是片内振荡器的反相放大器输入端,XTAL2那么是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。③复位RST9常用复位电路图在振荡器运行时,有两个机器周期〔24个振荡周期〕以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能存放器SFR全部清零。④/EA=131脚当/EA=1时,访问内部程序存储器,当PC值超过内ROM范围时,自动转执行外部程序存储器的程序;当/EA=0时,只访问外部程序存储器。〔三〕另外介绍一下输入输出引脚〔本系统只用到P0、P1、P2口〕:(1)P0端口[P0.0-P0.7]是一个8位漏极开路型双向I/O端口,端口置1〔对端口写1〕时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2)P1端口[P1.0-P1.7]是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3)P2端口[P2.0-P2.7]是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。2.2LED显示电路本课程设计用到共阳极数码管通过其引脚图,便可顺利完成其连接。。2.3键盘控制电路通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。3.1.方案设计要求设计制作一个数字时钟,要求能实现根本走时,并以数字形式显示时、分、秒;采用24小时制;能实现校时、校分,定时闹钟的功能,也可以添加其他功能.3.2方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。方案二:采用FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:本钱高,大材小用。方案三:采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,本钱低,易于实现。缺点:走时有一定的误差。经过综合考虑本钱问题以及电路实现问题,选择第三种方案实现设计要求。3.3整体设计框图如以下图所示3.4系统设计流程图如以下图所示开始开始初始化初始化主程序主程序YS0闭合YS0闭合NN响铃判断NN响铃判断Y显示时间Y显示时间时间调整响铃时间调整响铃YS4按下YS4按下NNY闹钟调整Y闹钟调整S3按下S3按下NNNS1按下NS1按下YY显示闹钟显示闹钟绘制数字时钟电路Protues仿真原理图启动ISIS7Professional软件元件的加载:找到原件后双击原件即可完成加载原件。仿真电路绘制放置元件→调整原布局→连线最后得到的原理图如下:通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。电路检测电路连接完毕后,单击运行按钮〔如以下图〕检测电路是否有误,如果电路如果无误进行软件检测。运行keil软件编写程序并编译、连接3.6.2将程序烧入单片机并运行运行程序单片机应用系统的调试包括硬件和软件两局部,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的。4.总结首先作为一个团队,团结精神最重要。团结是使整个团队的凝聚力。在完成工程时,需要小组所有成员的共同努力,只凭个人的力量是无法完成的。其次是个人分工。每个人的能力不同,我们根据每个人的实际情况具体分工。力求其在指定时间内完成任务,这样才能保证任务顺利完成。我们深刻地感受单片机不单是一门文化课程,更是一门科学技术。单片机课程设计那么是人生课程,我们学到了很多课堂上无法学到的东西。从新奇好玩到失败后的痛苦无助,从失败中爬起,哪怕再失败,也永不放弃。这就是单片机课程设计教会我们的最珍贵的知识。此次课程设计我们组虽然成功的完成了任务,但是我们并不满足。因为温度影响超声波的传播速度,我们参加了温度补偿模块,这样可以根据环境温度应用不同的公式计算距离。此次课程设计是某一年电子设计大赛的课题,我们从中学到了很多技术知识。经过这次单片机课程设计实验,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也稳固了我的编程思想和焊接技术。本次的数字时钟设计,让我对自己在大学四年的知识的到了回忆,例如模电和数电以及做PCB的软件。它也让我充分发挥了对所学知识的理解和设计的书面表达能力。这为今后自己进一步深化学习,积累了一定的珍贵经验。撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业根底知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。本次的课程设计,让我发现理论必须用于实践,否那么只是一张白纸。此外只有理论水平提高了,才能更好的运用于实践。另外,本次课程设计也考验了我的认真的态度。只有做事拥有认真的态度与科学的方法,才能成功。我认为课程设计非常有必要,因为它能让我们主动去寻找遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。使用keil软件编写源程序ORG0000HLJMPSTARTORG000BHLJMPTIME;********初始化*********START:MOVSP,#50HMOV20H,#00H;定义秒MOV21H,#00H;定义分MOV22H,#00H;定义时MOV23H,#01H;定义闹钟分钟MOV24H,#01H ;定义闹钟小时MOV25H,#00HMOV26H,#01HMOV30H,#00H;BCDSECONDMOV31H,#00HMOV32H,#00H;BCDMINUTEMOV33H,#00HMOV34H,#00H;BCDHOURMOV35H,#00HMOV36H,#01HMOV37H,#00HMOV38H,#01HMOV39H,#00HMOV50H,#00H;按键次数MOVTMOD,#01H;16位计数器MOVTH0,#03CH;赋初值MOVTL0,#0B0HMOVIE,#87H;中断允许SETBTR0;启动T0MOVR2,#14HMOVP2,#0FFH;*********主程序**********MAIN:JBP1.4,GBLCALLTIMEPRO ;调用闹钟判断GB: LCALLDISPLAY1 ;调用时间显示JBP1.3,M1;P1.3=1时转移S4没有按下LCALLSETTIME;调用SETTIME调时子程序LJMPMAINM1:JBP1.2,M2;P1g.2=1时转移S3LCALLSETATIME;调用SETATIME子程序LJMPMAINM2:JBP1.0,M4;P1.0=1时转移S1LCALLLOOKATIME;调用LOOKATIME显示闹钟子程序M4:LJMPMAIN;*********延时子程序********DELAY:MOVR4,#030HDL00:MOVR5,#0FFHDL11:MOVR6,#9HDL12:DJNZR6,DL12DJNZR5,DL11DJNZR4,DL00RET;***********时间调整*******SETTIME: ;设置时间L0:LCALLDISPLAY1MM1:JBP1.3,L1;P1.3=1时转移MOVJCMM1LCALLDELAY1;延时JCMM1JNCMSTOP1LCALLDELAY1 ;延时MOVA,50HINC50HCJNEA,#00H,HJ1LJMPL0JNCMSTOP1INC22H;小时自加一MOVA,22HCJNEA,#18H,GO12;小时计数循环MOV22H,#00H;复位MOV34H,#00HMOV35H,#00HLJMPL0L1:JBP1.1,L2;P1.1=1时转移JCL1LCALLDELAY1;延时JCL1MSTOP2:MOVC,P1.1 ;P1.1=0时转移JNCMSTOP2LCALLDELAY1;延时JNCMSTOP2INC21H;分钟加一MOVA,21HCJNEA,#3CH,GO11;分钟计数循环MOV21H,#00H;复位MOV32H,#00HMOV33H,#00HLJMPL0GO11:MOVB,#0AHDIVABMOV32H,B;将A的低4位存入32单元MOV33H,A;将A的高4位存入33单元LJMPL0GO12:MOVB,#0AHDIVABMOV34H,B;将A的低4位存入34单元MOV35H,A;将A的高4位存入35单元LJMPL0L2:JBP1.0,L0;P1.0=1时转移JCL2LCALLDELAY1;延时JCL2STOP1:MOVC,P1.0 ;P1.0=0时转移JNCSTOP1LCALLDELAY1;延时JNCSTOP1MOV50H,#00HLJMPMAIN;*******设置闹钟*******SETATIME:LCALLDISPLAY2;调用DISPLAY2显示闹钟N0:LCALLDISPLAY2MM2:JBP1.2,N1;P1.2=1时转移JCMM2LCALLDELAY1;延时JCMM2MSTOP3:MOVC,P1.2 ;P1.2=0时转移JNCMSTOP3LCALLDELAY1;延时MOVA,50HINC50HCJNEA,#00H,HJ2LJMPN0JNCMSTOP3INC24H;小时加一MOVA,24HCJNEA,#24,GO22;小时计数循环MOV24H,#00H;复位MOV38H,#00HMOV39H,#00HLJMPN0N1:JBP1.1,N2;P1.1=1时转移JCN1LCALLDELAY1;延时JCN1MSTOP4:MOVC,P1.1 ;P1.1=0时转移JNCMSTOP4LCALLDELAY1;延时JNCMSTOP4INC23H;分钟加一MOVA,23HCJNEA,#60,GO21;分钟计数循环MOV23H,#00H;复位MOV36H,#00HMOV37H,#00HLJMPN0GO21:MOVB,#0AHDIVABMOV36H,B;将A的低4位存入36单元MOV37H,A;将A的高4位存入37单元LJMPN0GO22:MOVB,#0AHDIVABMOV38H,B;将A的低4位存入38单元MOV39H,A;将A的高4位存入39单元LJMPN0N2:JBP1.0,N0;P1.0=1时转移JCN2LCALLDELAY1;延时JCN2JNCSTOP2LCALLDELAY1JNCSTOP2MOV50H,#00HLJMPMAIN;*******闹钟判断*****************TIMEPRO:MOVA,21HMOVB,23HCJNEA,B,BK;判断定时闹钟的分钟MOVA,22HMOVB,24HCJNEA,B,BK;判断定时闹钟的小时LCALLTIMEOUT;调用TIMEOUTBK:RET;**************喇叭报警*****************TIMEOUT:X1:LCALLBZ;调用喇叭响应程序CLR25H.0;调用喇叭响应程序结束LCALLDELAY ;延时LJMPDISPLAY1MOVP1.6,CMOVR7,#0FFH;喇叭响应时间T2:MOVR6,#0FFHT3:DJNZR6,T3DJNZR7,T2RET;*************显示闹钟时间************LOOKATIME:LCALLDISPLAY2MM:JNBP1.0,LOOKATIMELCALLDELAY1LJMPMAINDELAY1:MOVR4,#14H;时间延时DL001:MOVR5,#0FFHDL111:DJNZR5,DL111DJNZR4,DL001RET;***********定时**************TIME:PUSHACC;保护现场PUSHPSWMOV TH0,#03CH;初值MOV TL0,#0B0HDJNZR2,RET0MOV R2,#14HMOVA,20HCLRCINCA;秒自加一CJNE A,#3CH,GO1;秒计数循环MOV20H,#0;复位MOV30H,#0MOV31H,#0MOV A,21HINCA;分钟自加一CJNEA,#3CH,GO2;分钟计数循环MOV21H,#0H;复位MOV32H,#0MOV33H,#0MOV A,22HINC A;小时自加一CJNEA,#18H,GO3;小时计数循环MOV22H,#00H;复位MOV34H,#0MOV35H,#0AJMPRET0GO1: MOV 20H,AMOVB,#0AHDIVABMOV31H,A;将A的低4位存入31单元MOV30H,B;将A的高4位存入30单元AJMPRET0GO2:MOV21H,AMOVB,#0AHDIVABMOV33H,A;将A的低4位存入33单元MOV32H,B;将A的高4位存入32单元AJMP RET0GO3: MOV 22H,AMOVB,#0AHDIVABMOV35H,A;将A的低4位存入35单元MOV34H,B;将A的高4位存入34单元AJMP RET0RET0:POPPSW;恢复现场POPACCRETI;********显示子程序**********DISPLAY1: MOV R0,#30HMOVR3,#0FEHMOVA,R3PLAY1:MOVP2,AMOVA,@R0;取要显示的数据MOVDPTR,#DSEG1;指向字形段码首地址MOVCA,@A+DPTRCJNER0,#34H,PAORLA,#80HPA:CJN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年环保志愿者招聘笔试题
- 2026年冬季保暖安全知识
- 2026年小学二年级上册语文口语交际表达训练卷含答案
- 2026年小学六年级下册语文暑假作业基础卷含答案
- 2026年海南省五指山市高三生物下册期末考试模拟考试卷及参考答案(培优A卷)
- 2026年汉服旅拍主题公园摄影点布局
- 人教版数学一年级上册《统计》的教学设计
- 舰船用模块化智能装备集成系统生产项目可行性研究报告模板拿地申报
- 操作规程明确经过安全培训教育
- 加油站加油服务指南
- 2026年工程成本核算管理考试试卷及答案
- 水族馆海水鱼类养护管理工作手册
- 2026年高考(山西卷)数学试题及答案
- 中学科技节科普知识竞赛题库(试题附答案305题)
- 2026年四季养生食谱搭配课件
- 河南省豫西北教研联盟(平许济洛四市)2026届高三下学期3月第三次质量检测语文试题(含答案)
- 2026年统计执法监督人员考试题库及答案
- 律师业务合规管理制度
- 第一性原理培训讲座课件
- AQ3062-2025《精细化工企业安全管理规范》专项检查表(共4份)
- 食品机械安全培训课件
评论
0/150
提交评论