




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题名称: 单片机技术数字钟电路的设计 目 录第一节 引言.4第二节 设计方案的选择与论证5第三节 系统原理设计6 3.1设计思想6 3.2系统框图.6第四节 硬件设计.7 4.1元器件清单.7 4.2电路设计及工作原理.10 4.2.1控制部分.10 4.2.2数码管显示部分.12第五节 软件设计 135.1程序原理概述135.2程序代码.14第六节 调试19 第七节 USB下载STC89C52RC单片机的使用说明.20第八节 总结24 单片机的多功能数字钟设计工职院电信09D1 朱华指导教师:刘训非 第1节 引 言 本系统采用单片机89SC52控制,以89SC52为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用ATMEL公司的89SC52芯片,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。 本次设计通过对一个实现定时、时钟显示、报时、控制等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由、LED数码管、按键、三极管、74LS244、电阻等组成。能实现时钟时、分、秒的显示。也具有时间设置。文章后附有电路图、程序清单。 第二节 设计方案的选择与论证 该课题主要有两种方案:一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。在以上两种方案中:第一种是直接采用的是数字电路,但是在外围电路和控制比较麻烦,需要比较多的器件来控制;第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其他的都是由软件来实现。第一种一切都由硬件实现,几乎没有软件编程,但电路复杂、芯片多、后续制板及硬件调试麻烦而且成本高;第二种虽电路简单、芯片少、成本低,但编写程序相当复杂。经过一番利弊的权衡及对今后电子业发展趋势的考量,最后敲定用单片机方案实现。另外用单片机实现本设计也有两种可选的子方案:第一种,用软件编程实现设计中的钟控功能;另一种则选用单片机加时钟芯片实现钟控功能。在本次主要的是时间的设计,因此对时间的精度要求是比较高的,竟量是误差减少到最小值,但是为了更好的练习复习自己在以前所学习的编程能力,所以不采用单片机加时钟芯片的方案,直接用软件编程实现钟控功能。总的来看,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计算机,且将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格方向发展,因此敲定用单片机加软编程方案符合今后电子业发展趋势;另外运用此方案既能将自己以前学过的模拟电路、数字电路、单片机、汇编语言、Protel99 第三节 系统原理设计3.1 设计思想单片机控制系统是整个控制系统的核心,它完成整个系统的信息处理及协调功能。本次我们选用ATMEL公司的AT89C51芯片;其功能强大,兼容性好。AT89C51是与8051兼容的CHMOS微控制器。与CHMOS工艺的8051一样,支持软件选择的空闲和掉电两种节电方式。 在AT89C51的P2.0P2.3是数码管的段选;P2.4P2.6是数码管的位选。P1.0和P1.1是发光二极管。是显示制式切换后的工作制式.P1.2是蜂鸣器,作闹铃和准点报时用。P0.0P0.7是按键的判断输入口,是对时间调整闹铃时间设置,和其他功能的区分。3.2系统框图制式切换控 制按钮时间控 制触摸开 关单片机译码电 路制式切换和制式显示电路驱动电 路时显示分显示秒显示 第四节 硬件设计4.1 元器件清单在元器件分析表器件名规格型号实测值封装功能电阻2K1.99KAXIAL0.4分压偏置5.1K5.09KAXIAL0.4限制电流10099.2AXIAL0.4限制电流200207AXIAL0.4滤除纹波1K1.0007KAXIAL0.4高电平复位排阻10K9.9KSIP9保证高电平输出方键正常BNC调整时间二极管4148正常DIODE0.4整流稳压管100uF/10V正常DIODE0.4稳压单片机AT89C51正常DIP40输出低电平有效集成芯片MAX202CPE正常DIP16提供信号SN74LS244N正常DIP20提供数码管信号数码管LG5641BH正常DIP12显示时与分LG5621DH正常DIP10显示秒JP1正常DB-9F提供电源JP2正常SIP3提供电源JP3正常SIP3提供电源电容0.1uF正常RAD0.1保证温漂电解电容100uF 10V正常RB.2/.4复位三极管8550正常TO-92B放大晶振11.0592M正常XTL1提供时序频率图3-1品名封装规格数量器件号焊接注意电阻直插(RJ 1/4W)1006R1,R4,R7,R10,R14,1002001R131K1R202K6R2,R5,R8,R11,R15,2K5.1K6R3,R6,R9,R12,R16,5.1K排阻10K*81RN1注意方向电容直插(间距2.54)30pF2C9,C110.1F2C7, C105C1,C2,C3,C4,C5不需焊接电解超小型(间距2.54)100F/25v2C6,C8注意正负极二极管直插41481D2注意正负极稳压管5.1V/1W1D1注意正负极三极管85506Q1,Q2,Q3,Q4,Q5,Q6注意方向数码块共阳LG5641BH1U1(12P座)注意方向LG5621DH1U3(10P座)注意方向晶振11.0592M1X1小方键2S1,S2插件RS232-9卧、孔1JP1不需焊接电源座1JP2白色3芯座1JP3注意方向IC座DIP161U2:MAX202CPE不需焊接DIP201U4:HD74LS244P注意方向DIP401U5:P89C52X2BN注意方向4.2电路设计及其工作原理4.2.1控制部分:89SC5289SC52AT89C51单片机是国Atmel公司生产的采用高性能的静态89C2051设计,是一个低电压,高性能CHMOS 8位单片机,片内含4kbytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。 89SC52的单片机,但它只有40个引脚,32个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。此外,由于器件采用了动态设计,可提供很宽的操作频率范围(频率0HZ24MHZ)。即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。图4-189SC52时钟电路在本设计中89SC52的时钟电路采用内部时钟方式,此方式是在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器。在本设计中XTAL1和XTAL2两端跨接12MHz晶体振荡器,其发出的脉冲直接送入内部时钟电路。本设计采用按键手动复位的按键电平复位。图4-2 89SC52复位电路89SC52在本设计中的I/O口应用:89SC52的P2.0P2.3控制7448译码实现数码管段选;AT89C51的P2.4P2.6控制74LS138实现数码管位选;AT89C51的P1.1 P1.1控制AM PM显示;AT89C51的P1.2控制蜂鸣器实现闹钟的闹铃;AT89C51的P0连接按钮,用于输入校时、定时信号和停止信号。4.2.2数码管显示部分 本设计中所涉及数码管皆采用共阳数码管,显示电路为动态扫描式显示。4.2.2数码管显示部分本设计中所涉及数码管显示电路为动态扫描式显示。静态的实现有诸多缺点,电路设计复杂,实现的成本较高等。此图就是数码管的原理图如图:AT89C51译码器此图就是实现这个设计的pcb板第5节 软件设计 5.1程序原理概述 在程序设计这一环节,本次将其分为时钟中断程序、时钟显示程序、键盘程序、闹钟定时控制程序、闹钟响闹程序、音乐响闹程序、主程序、各程序衔接程序。在以下几节中将根据实际各个部分的编程及调试顺序,依次介绍各程序的设计思想和流程。5.2总的设计思想 在本次主要是使用的是数字闹钟,因此主要部分是数字钟的实现,因此要实现这样的功能必须要在硬件的电路上实现数字钟的实现,然后在此基础上逐步实现其他的功能, 数字电子钟的程序大概可以分为三个部分:时钟主程序、时钟显示程序、时钟中断程序。时钟主程就是对时钟的各个模块的实现。时钟显示程序是将秒显示用发光二极管显示,每一秒点亮一次;将分个位、分十位、时个位、时十位数据存储单元的计时数据通过设置段选和位选、由74LS47段选译码,最后显示在相应的数码管上。时钟中断程序则通过重设计时、1秒计时与时钟程序相结合实现秒个位、秒十位、分个位、分十位、时个位、时十位数据存储单元的数据按计时规则加1进位和清零,以配合时钟显示程序实现数字电子钟。在实现数字电子钟的基础上,逐一添加调试键盘程序、闹钟定时程序,闹钟音乐程序,最后实现设计目标。键盘程序就是通过软件扫描各按键状态来实现各按钮的功能。5.2程序代码DATA_SEGSEGMENTDATA;定义一个DATA段STACKSEGMENTIDATA;定义一个堆栈段BIT_SEGSEGMENTBIT;定义一个位段bKeyBITP1.0;IdleConstEQU50RSEG STACK DS10H ;16个字节的堆栈RSEGDATA_SEG;开始DATA_SEG段buffer:DS6;6个字节的显示缓冲区ms50:DS 1;50ms计数ms250:DS 1;250ms计数sec: DS 1 ;秒min: DS 1 ;分hour:DS 1;时ms50_1:DS1;存放多少个50ms,用于记录按键时间SetPos:DS1;设置位置SetPos1: DS1;需要屏蔽的数码管RSEG BIT_SEGbIdle:DBIT1;省电模式bTwinkle:DBIT1;当前设置位置闪烁CSEGAT0;相当于小汇编的ORGLJMPMAINCSEGAT000BH;定时器T0中断处理入口地址LJMPINT_Timer0CSEGAT001BH;定时器T1中断处理入口地址LJMPINT_Timer1CSEGAT0100HMAIN:MOVSP,#STACK-1;堆栈CLRbIdleCLRbTwinkleMOVms50,A;清零ms50MOVms250,AMOVhour,#12;设定初值: 12:59:50MOVmin,#59MOVsec,#50MOVTH0,#60;定时中断计数器初值MOVTL0,#176;定时50msMOVTMOD,#11H;定时器0,1:方式一MOVIE,#8AH;中断初始化,EA=1,ET0=1, ET1 = 1SETBTR0;开定时器T0MOVSetPos,#0FFH;MAIN1:ACALLAdjustBuffer;调整显示缓冲区MAIN2:ACALLKey;调用键扫描ACALLDisplayJNBF0,MAIN2CLRF0SJMPMAIN1;需要刷新显示时间;中断服务程序INT_Timer0:MOVTL0,#176+5MOVTH0,#60PUSH01HMOVR1,#ms50INCR1;50ms单元加1CJNER1,#5,ExitIntMOVR1,#0;恢复初值INCR1MOVA,SetPosCJNEA,#0FFH,INT_Timer0_1SJMPINT_Timer0_2INT_Timer0_1:CPLbTwinkleSJMPExitInt1INT_Timer0_2:INCR1CJNER1,#4,ExitIntMOVR1,#0;恢复初值INCR1INCR1;秒加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;分加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;时加1CJNER1,#24,ExitInt1MOVR1,#0ExitInt1:SETBF0ExitInt:POP01HRETI;中断服务程序INT_Timer1:MOVTL0,#176+5MOVTH0,#60INCms50_1RETIHexToBCD:MOVB,#10DIVABMOVR0,BINCR0MOVR0,AINCR0RETAdjustBuffer:MOVR0,#bufferMOVA,secACALLHexToBCDMOVA,minACALLHexToBCDMOVA,hourACALLHexToBCDRET;显示Display:JNBbIdle,Display3RET;省电模式Display3:PUSHBPUSHACCPUSHDPLPUSHDPHPUSH00HMOVR0,#bufferMOVB,#0FEHMOVDPTR,#SEG_TABDisplay1:MOVA,R0MOVCA,A+DPTR;取段码MOVP0,AMOVA,BJNBbTwinkle,Display4ORLA,SetPos1 Display4:MOVP2,A;选种数码管CALLDelay1msMOVA,BRLAJNBACC.6,Display2MOVB,AINCR0SJMPDisplay1Display2:POP00HPOPDPHPOPDPLPOPACCPOPBRETSEG_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;段码DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB0FFH,0BFH;延时1msDelay1ms:PUSHACCMOVA,#230DJNZACC,$MOVA,#230DJNZACC,$POPACCRET;设置功能SetFunTab:AJMPNoSet;不需要调整AJMPSetHour;调整小时AJMPSetMin;调整分钟AJMPSetSec;调整秒钟NoSet:CLRbTwinkleRET;不在设置状态SetHour:INChourMOVA,hourCJNEA,#24,SetHour1MOVhour,#0SetHour1:SJMPSetFun1SetMin:INCminMOVA,minCJNEA,#60,SetMin1MOVmin,#0SetMin1:SJMPSetFun1SetSec:INCsecMOVA,secCJNEA,#60,SetFun1MOVsec,#0SetFun1:SETBF0RET;调整闪烁位置SetPosTab:AJMPNoSetPosAJMPSetHourPosAJMPSetMinPosAJMPSetSecPosNoSetPos:MOVSetPos1,#0RETSetHourPos:MOVSetPos1,#30HRETSetMinPos:MOVSetPos1,#0CHRETSetSecPos:MOVSetPos1,#03HRETKey:ACALLDisplayJNBbKey,Key4JNBTR1,Key3CLRTR1SETBbKeyMOVA,ms50_1CJNEA,#10,$+3JNCKey1;调整时间SetFun:MOVA,SetPosINCARLAMOVDPTR,#SetFunTabJMPA+DPTRKey1:CJNEA,#IdleConst,$+3JNCKey2;进入设置状态SetPosFun:INCSetPosMOVA,SetPosCJNEA,#3,SetPosFun1MOVSetPos,#0FFH;退出设置状态SetPosFun1:MOVA,SetPosINCARLAMOVDPTR,#SetPosTabJMPA+DPTRKey2:SETBbIdle;进入省电模式MOVP2,#0FFHKey3:RETKey4:JNBTR1,Key5MOVA,ms50_1CJNEA,#IdleConst,$+3JNCKey2RETKey5:ACALLDisplayACALLDisplayACALLDisplayACALLDisplayJNBbKey,Key6SJMPKey3Key6:CLRbIdleMOVTH1,#60MOVTL1,#176SETBTR1MOVms50_1,#0RETEND第六节 调试在进行调试的时候,有可能出现很多的问题,比如说虚焊,漏焊,当然这都是由于人为的原因造成的,也有不是很明显的又像是pcb板的设计时候没有考虑周全的,走线是直角的,这样会有一定的干扰。都是走顿角的话这对设计的要求要更高。我们设计也只能尽力而为了。调试的时候万用表是很好的器材。当然如果能对电路很是熟悉,调试 会简单点。我在实践中就遇到过调试的问题,出现的情况是按键按了无效,第一感觉就是哪里漏焊,虚焊,亦或是原理图本身的问题,从而导致pcb板的出错,首先我是先从那按键周围的电路查找,所对应的管脚着手,原来是一个管脚没焊好,按照原理是应该连在一起的,于是就找来导线将其焊接好,继续进行调试,结果就顺利的解决了,起初是认为我的判断出错呢,还好后来想起了,最终解决了问题。 第七节 USB下载STC89C52RC单片机的使用说明将USB串口线的驱动安装请看“关于USB转串口线和编程器连接的问题.pdf”文件。会显示USB-SERIAL CH340(COM7),记住COM?的端口号,要在STC-I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天平考试题及答案
- 2025年公需课《人工智能赋能制造业高质量发展》试题(附答案)
- 2025年高校教师岗前培训高等教育心理学知识竞赛考试题库(附答案)
- 2025年高级焊工题库及答案
- 2025年高端制造业专业考试试题及答案
- 《数字政府统一基础运维规范 第6部分:政务云服务实施》编制说明
- 健康干预培训试题及答案
- 《教材发行管理办法》
- 2025年频率测量仪器项目发展计划
- 经营流程与管理办法
- 矿山安全供电讲义
- 最全婚礼筹备清单:婚礼流程婚礼采购必备清单
- 混龄教育完整版本
- GB/T 19520.21-2023电气和电子设备机械结构482.6 mm(19 in)系列机械结构尺寸第3-109部分:嵌入式计算设备的机箱尺寸
- 龙湖地产集团公司劳动合同范本
- 规范权力运行方面存在问题及整改措施范文(五篇)
- 土壤退化与生态恢复课件
- 山东省海洋知识竞赛(小学组)考试题库大全-上(单选题汇总)
- 宝安区人民医院药品目录西药
- 岳阳楼记翻译
- 成语接龙上韩兴娥
评论
0/150
提交评论