




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业综合实践报告课题名称: 基于单片机技术数字钟电路的设计 系 部: 电子与通信工程系 班 级: 电信10c2 姓 名: 汤继磊 学 号: 102221234 指导教师: 刘训非 2012年 4 月29日论文/设计/报告原创性声明本人郑重声明:所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 2011 年 9月 15 日 论文/设计/报告版权使用授权书本论文/设计/报告作者完全了解学校有关保障、使用学位论文/设计/报告的规定,同意学校保留并向有关论文/设计/报告管理部门或机构送交论文/设计/报告的复印件和电子版,允许论文/设计/报告被查阅和借阅。本人授权省级优秀论文/设计/报告评选机构将本论文/设计/报告的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文/设计/报告。本论文/设计/报告属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)作者本人签名: 2011 年 9 月15 日 指导教师签名: 年 月 日 目录第1节 摘 要4第2节 设计方案的选择与论证5第3节 系统原理设计6 3.1 设计思想63.2 系统框图6第4节 硬件设计74.1元器件清单74.2电路设计及其工作原理8 4.2.1控制部分8 4.2.2数码管显示部分9 4.2.3按钮与开关部分10 4.2.4原理图与pcb图部分12第5节 软件设计135.1程序原理概述135.2总的设计思想135.3程序代码13第6节 调试19第7节 结束语22参考文献23第1节 摘 要 本系统采用单片机stc89c52rc控制,以stc89c52rc为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用atmel公司的stc89c52rc芯片,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。 本次设计通过对一个实现定时、时钟显示等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由stc89c52rc、led数码管、按键、三极管、74ls244、稳压管、二极管、电阻等组成。能实现时钟时、分、秒的显示。也具有时间设置。文章后附有电路图、程序清单。abstractthe system uses the monolithic stc89c52rc control to stc89c52rc as the core, it to complete the entire system of information processing and coordination function, this design we choose atmel company stc89c52rc chip, the powerful, good compatibility, also support the software choice of space and power lost two power saving mode. the design of the software, hardware, are adopted the modular design method, improve the design efficiency. this design through to a realization timing, the clock display functions of time the design of the system, which combines the data transfer display, digital pipe display, dynamic scanning and single-chip microcomputer timing interrupts, and technology. system stc89c52rc, by led digital tube, buttons, transistor, and 74 ls244, tube, diodes, voltage resistance etc. can realize the clock, minutes and seconds when the display. also has the time set. after the article with a circuit diagram, program list.第2节 设计方案的选择与论证 该课题主要有两种方案:一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。在以上两种方案中:第一种是直接采用的是数字电路,但是在外围电路和控制比较麻烦,需要比较多的器件来控制;第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其他的都是由软件来实现。第一种一切都由硬件实现,几乎没有软件编程,但电路复杂、芯片多、后续制板及硬件调试麻烦而且成本高;第二种虽电路简单、芯片少、成本低,但编写程序相当复杂。经过一番利弊的权衡及对今后电子业发展趋势的考量,最后敲定用单片机方案实现。另外用单片机实现本设计也有两种可选的子方案:第一种,用软件编程实现设计中的钟控功能;另一种则选用单片机加时钟芯片实现钟控功能。在本次主要的是时间的设计,因此对时间的精度要求是比较高的,竟量是误差减少到最小值,但是为了更好的练习复习自己在以前所学习的编程能力,所以不采用单片机加时钟芯片的方案,直接用软件编程实现钟控功能。总的来看,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计算机,且将进一步向着cmos化、低功耗、小体积、大容量、高性能、低价格方向发展,因此敲定用单片机加软编程方案符合今后电子业发展趋势;另外运用此方案既能将自己以前学过的模拟电路、数字电路、单片机、汇编语言、protel99等知识结合实践进行一次全面的检测,又能为将来实际制作电路积累宝贵的经验。第3节 系统原理设计3.1 设计思想单片机控制系统是整个控制系统的核心,它完成整个系统的信息处理及协调功能。本次我们选用atmel公司的stc89c52rc芯片;其功能强大,兼容性好。stc89c52rc是与8051兼容的chmos微控制器。与chmos工艺的8051一样,支持软件选择的空闲和掉电两种节电方式。 在stc89c52rc的p0口是数码管的段选;p2.0p2.5是数码管的位选。单片机采用stc89c52rc, 设计有1个2位和1个4位0.5英寸共阳数码管和时间设置按键。可开设数字钟等实训项目。使用说明:配套提供的实验源程序所能实现的功能。模块通电后,6位数码管显示12:59:50秒,正常运行,长按“s2”键(约3秒)松开,第一第二位数码管闪烁,此时轻按“s2”键,可设置“时” (023),再长按“s2”键(约3秒)松开,第三第四位数码管闪烁,此时轻按“s2”键,可设置“分” (059), 再长按“s2”键(约3秒)松开,第五第六位数码管闪烁,此时轻按“s2”键,可设置“秒” (059),如此循环。设置完成后再长按“s2”键(约3秒)松开即进入正常运行状态。3.2系统框图p1.0 p0口stc 89c52 p2.0 p2.5resets1驱动s26位数码显示段选位选 第四节 硬件设计4.1 元件清单品名封装规格型号器件号实测值功能贴片电阻0805101(100)r199.5偏置电组、保护电路r499.5r799.3r1099.3r1499.5r2199.6201(200)r130.199k102(1k)r200.987k202(2k)r21.95kr51.97kr81.96kr111.96kr151.98kr181.97k512(5.1k)r35.11kr65.15kr95.08kr125.12kr165.09kr195.09k排阻10k*8rn1驱动电路电容060330ufc9正常稳定晶振c110.1ufc7滤波去高频、中频、低频正弦电压c10电解电容rb.2/.4100uf/25vc6正常保持稳定振荡c8二极管in47334148d2正常保护电路稳压管in41485.1v/1wd1正常稳定电压输出时5.1v三极管sot-23/p1.98550q1pnp位选放大q2q3q4q5q6数码管dip12lg5641bhu1(12p座)正常显示时、分 数dip10lg5621dhu3(10p座)正常显示秒数晶振xtal111.0592mx1正常提供一个振荡电路小方键sw-pbs1正常s1复位按钮s2s2设计时间(时、分、秒)dip20dip20u4(sn74ls244n)正常驱动电路保持(数码管)额定电压dip40dip40u5(at89c52)正常控制作用sip-3con3jp34.2电路设计及其工作原理4.2.1控制部分:stc89c52rc单片机stc89c52rc单片机概述:stc89c52rc单片机是国atmel公司生产的采用高性能的静态stc89c52rc设计,是一个低电压,高性能chmos 8位单片机,片内含4kbytes的可反复擦写的只读flash程序存储器和128 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元。 stc89c52rc是一个功能强大的单片机,但它只有40个引脚,32个双向输入/输出(i/o)端口,其中p1是一个完整的8位双向i/o口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。此外,由于器件采用了动态设计,可提供很宽的操作频率范围(频率0hz24mhz)。即具备可用软件设置的睡眠省电功能,系统的唤醒方式有ram、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内ram将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。 图4-1 stc89c52rc时钟电路连接在本设计中stc89c52rc的时钟电路采用内部时钟方式,此方式是在xtal1和xtal2两端跨接晶体或陶瓷谐振器。在本设计中xtal1和xtal2两端跨接12mhz晶体振荡器,其发出的脉冲直接送入内部时钟电路。本设计采用按键手动复位的按键电平复位。图4-2 stc89c52rc外部复位电路设计stc89c52rc在本设计中的i/o口应用:stc89c52rc的p0口控制sn74ls244n译码实现数码管段选;stc89c52rc1的p2.0、p2.5控制数码管位选; stc89c52rc的reset连接按钮,用于输入校时、定时信号和停止信号。4.2.2数码管显示部分 本设计中所涉及数码管皆采用共阳数码管,显示电路为动态扫描式显示。图4-3数码管及显示电路选择数码管显示位选:stc89c52rc的p0口输出控制数码管段选,在本次设计的电路中,因为是使用的是共阳数码管,因此由stc89c52rc的p0.0p0.7的输出控制sn74ls244n,使之输出相应的端口为低电平,控制数码管点亮。图4-4 数码段位选原理数码管段选at89c51的p2.0p2.5控制数码管位选,在设计的时候,怕在芯片输出的电流信号过大,因此在输出的时候加了限流电阻,为保护数码管,防止烧坏。 图4-5 数码管位选原理4.2.3 按钮与开关部分长按“s2”键(约3秒)松开,第一第二位数码管闪烁,此时轻按“s2”键,可设置“时” (023),再长按“s2”键(约3秒)松开,第三第四位数码管闪烁,此时轻按“s2”键,可设置“分” (059), 再长按“s2”键(约3秒)松开,第五第六位数码管闪烁,此时轻按“s2”键,可设置“秒” (059),如此循环。设置完成后再长按“s2”键(约3秒)松开即进入正常运行状态。图4-6按键电路原理4.2.4原理图与pcb图部分图4-7电路原理图图4-8 pcb图第5节 软件设计5.1程序原理概述 在程序设计这一环节,本次将其分为时钟中断程序、时钟显示程序、键盘程序、主程序、各程序衔接程序。在以下几节中将根据实际各个部分的编程及调试顺序,依次介绍各程序的设计思想和流程。5.2总的设计思想 在本次主要是使用的是数字闹钟,因此主要部分是数字钟的实现,因此要实现这样的功能必须要在硬件的电路上实现数字钟的实现,然后在此基础上逐步实现其他的功能, 数字电子钟的程序大概可以分为三个部分:时钟主程序、时钟显示程序、时钟中断程序。时钟主程就是对时钟的各个模块的实现。时钟显示程序是将秒显示用发光二极管显示,每一秒点亮一次;将分个位、分十位、时个位、时十位数据存储单元的计时数据通过设置段选和位选、由sn74ls244n段选译码,最后显示在相应的数码管上。时钟中断程序则通过重设计时、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;相当于小汇编的orgajmpmaincsegat000bh;定时器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第六节 调试usb下载stc89c52rc单片机的使用说明将usb串口线的驱动安装请看“关于usb转串口线和编程器连接的问题.pdf”文件。会显示usb-serial ch340(com7),记住com?的端口号,要在stc-isp软件中进行设置。将usb转串口线与编程器连接好,将单片机放入编程器zip1锁紧座上(芯片缺口朝上),打开stc-isp软件(stc_isp_v480.exe),选择stc单片机型号,打开要下载的程序文件,设置com号,点击下载按钮,当出现给mcu上电提示时,插上usb取电线,进行正常下载。实物图实训小结经过一周的实训学习,我学到了很多东西,有专业知识方面的,也有思维和人家交往方面的.俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,选一个自己有兴趣的题目。其次,对老师的要求要一丝不苟的实践,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 在专业知识方面,自从进入大学以后在这一方面我从不认为自己是懒惰的,但这次课程设计使我对学习有了重新的认识勤奋不等于好结果,粗心一定会有苦果。对于这次单片机综合课程实习,我在思想上的体会就是作为一名电子专业的大学生,要求具备的首要素质绝对应该是严谨。我们这次实训所遇到的多半问题多数都是由于我们不够严谨。其次在和人交流上,我认识到,无论做什么事情,有困难,有疑问,要和同学多讨论,几个人一起想办法总比一个人强,你一个解决方案,她一个,两者综合又有一个方案。只有想不到,没有做不到。只要有心、有毅力、要坚强,没什么能难倒我们。实验最关键是要有耐心,有时实验电路和程序并不能一次成功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025农产品买卖合同模板
- 水闸消防安全知识培训课件
- 水粉画草丛中的鸭子课件
- 乡镇水源保护方案
- 小升初语文古诗鉴赏知识点衔接-《曲》练习(含答案)
- 桥梁检测设备选型与使用方案
- 学生宿舍节能设计与技术应用方案
- 水电验收课件第五元素
- 水电站业务知识培训课件简报
- 二零二五年度新能源设备采购及运营合作协议
- 工业空调培训课件模板
- 防汛安全教育试卷(含答案)
- 2025届上海市高考英语考纲词汇表
- 陕西省特种设备隐患排查清单(2025年)
- 快递行业交通安全培训
- 货款转让协议书
- 燃气公司加气站操作规程及安全要求
- 装修砸墙安全协议书
- DB4407∕T 70-2021 地理标志产品 新会陈皮
- 送水工劳务合同协议
- 读博协议和合同
评论
0/150
提交评论