ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:483.29KB ,
资源ID:2061912      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2061912.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华科大通信工程09级课程设计报告正式版.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

华科大通信工程09级课程设计报告正式版.docx

1、华科大通信工程09级课程设计报告正式版 单片机应用 课程设计报告题 目: 电子钟的设计 院 (系): 信息科学与技术 专业班级: 通信0902 学生姓名: 学 号: 指导教师: 20 12 年 6 月 11 日至20 12 年 6 月 15 日华中科技大学武昌分校制单片机应用课程设计任务书一、设计(调查报告/论文)题目电子钟的设计二、设计(调查报告/论文)主要内容通过对电子钟的安装调试,需学习掌握完成:(1)单片机系统的整体设计流程。(2)单片机系统的硬件、软件调试方法及相关工具的使用。(3)理解电路原理图与工作过程。(4)各种常见元器件的选择及使用。三、原始资料(1)电子钟的电路原理图及元器

2、件清单(2)制作套装四、要求的设计(调查/论文)成果用80C51/52单片机编程控制显示的电子钟。(1) 要有8位LED显示器,分别显示“年号:月份:日期”/“时:分:秒”(2) 可以设置四个输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”,即“SHIFT”,“NUM+”,“NUM-”,“SAVE”。(3) 显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”。按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。(4) 能够正确安装和焊接硬件电路板。拿到元器件后,用万用

3、表对电子元器件进行参数测量、检查。焊接时,要焊点饱满、光洁,无虚焊、漏焊、错焊。(5) 熟悉单片机系统的工作原理及调测方法。软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课程设计报告,格式符合学校规范标准,字数不少于2000字。五、进程安排第一天:讲解课题,选择课题,分发元器件,焊接、调试硬件;第二天到第四天:编写、调试程序;第五天:系统验收、评分,交课设报告。六、主要参考资料1 陈青.单片机应用课程设计指导书.武汉:华中科技大学武昌分校.2 姜志海.单片机原理及应用.北京:电子工业出版社,2007.3 康华光.电子技术基础模拟部分,北京:高等教育出版

4、社,2003.指导教师(签名): 20 年 月 日 目 录1.课程设计的目的 12.课程设计题目描述和要求 13.课程设计报告内容 13.1 课题设计方案及基本原理 23.2 软件设计 23.3 调试 34.总结 4参考资料 4附录1电路原理图 5附录2 硬件实物图 6附录3 源程序清单 91 课程设计的目的例文如下,可以根据自己的需要加入相应文字:通过对电子钟的安装调试,需学习掌握:(1) 单片机系统的整体设计流程。(2) 单片机系统的硬件、软件调试方法及相关工具的使用。(3) Protel绘制电路原理图的方法。(4) 各种常见元器件的选择及使用。2 课程设计题目描述和要求题目描述:电子钟的

5、设计制作要求:用80C51/52单片机编程控制显示的电子钟。(1) 要有8位LED显示器,分别显示“年号:月份:日期”/“时:分:秒”(2) 可以设置四个输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”,即“SHIFT”,“NUM+”,“NUM-”,“SAVE”。(3) 显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”。按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。(4) 能够正确安装和焊接硬件电路板。拿到元器件后,用万用表对电子元器件进行参数测量、检查。焊接

6、时,要焊点饱满、光洁,无虚焊、漏焊、错焊。(5) 熟悉单片机系统的工作原理及调测方法。软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课设报告。3 课程设计报告内容内容:1、按实验要求写出实验电路内容、构成原理。2、写出实验焊接、调试硬、软件直至完成的过程。3、写出实验中遇到的问题,及其解决的方法。4、写出测试结果(数据表格),或画出波形图。5、个人收获、体会和建议。6、附带电路原理图、程序流程图、程序清单。3.1 课题设计方案及基本原理 首先定义一些用到的管脚:调时,调分,调秒。调节关,调节开,日期开,日期关 然后定义时分秒xiaoshi,fen,mi

7、ao 接着就是数码管的段选用数组定义出来,好后面直接调用 再就是8位就是数码管个数给相应的xiaoshi,fen,miao 各两个,分为高地位 接下来就是调用函数的申明 主函数开始: 1.调用中断,使定时中断开始 2.把整个主函数放到一个死循环里面 3,若有P0.5按下就调用日期函数显示日期 4.调用键盘控制函数,实现时分秒的控制 5.把得到的键盘控制xiaoshi,fen.miao分配给fenpei函数,让他算出相应的数码管位选 6.一切准备好了,直接调用显示函数 7.如果没有任何控制键按下,那就显示时间,中断作用了其中中断标志最为关键。判断准则图3-1 波形图3.2 软件设计 首先,我是用

8、C语言编的,相比于会变应该简单多了设计方案:程序所用的个片程序段调用1, 中断准备程序(中断初始化的一些初值等)2, 分配函数,作用是计算出时分秒的具体数值然后传给相应的时分秒调用出品 华科大论坛 、3, 数码管显示程序,也就是 P1端口的为选和段选4, 延时函数,主要用作数码管动态显示延时和键盘防抖延时设计5, 键盘调试程序,用作调时间的6, 日期显示函数,直接调用过来显示日期3.3 调试 4 总结出品 华科大论坛 、本来想用汇编写的,但是由于去年暑期在这里稍微练习了熟悉了一下C编写,其实去年用C才刚玩到中断就没搞了,但是还得感谢去年这里的氛围老师总共给我接近5天的时间来写程序和调试,其实最

9、难的不是写程序而是不断的问题接踵而来,让你粗手不及,头天下午把程序写完本以为天衣无缝,自己在电脑上反复编译没错,高兴死了跑到实验室去玩,结果烧进去没反映,而且软件兼容性也有问题,很多的问题你几乎没遇到过,但是你必须的解决,程序绝对不是一遍就能出来的,是通过不断的实验现象不断改进,通过实验结果数码管显示情况,按键情况等来判断程序那里有问题,所以我觉得C还是好多了,因为我写的时候全部是调用,主函数几乎都是调用的,模块完全独立,实验结果哪里显示不对我直接找到相应的模块就可以了,比如调分不对,那我直接到按键调用程序里面找到调分这段程序就OK了!总结倒是没有什么东西,就是练练手,实践出真知撒,天天啃课本

10、完全不是一回事!所以我一直说单片机你可以不看书,直接写程序,从流水等开始一步一步来,回头你就会发现什么课本的,汇编什么的都是浮云灯亮了,数码管显示了,计算器能工作了参考文献1 姜志海.单片机原理及应用.北京:电子工业出版社,2007.2 陈堂敏.刘焕平主编.单片机原理与应用.北京:北京理工大学出版社,2007.3 沈美明.温动蝉编著.IBM-PC汇编语言程序设计.北京:清华大学出版社,1994.4 张仰森等编.微型计算机常用软硬件技术速查手册.北京:北京希望电脑公司,1994.5 江修汗等编.计算机控制原理与应用.西安:西安电子科技大学出版社,1999.附录1电路原理图附录2 硬件实物图 附录

11、3 源程序清单#include/#define unsigned char uchar/#define unsigned int uintsbit D0=P00; /秒调sbit D1=P01;/分调sbit D2=P02;/时跳sbit D3=P03;/调节开关(开)sbit D4=P04;/调节开关(关)sbit D5=P05;/日期开关sbit D6=P06;/从日期返回时钟显示unsigned int xiaoshi=0,fen=0,miao=0;unsigned char duan=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09;/

12、相当于P1的低位,数码管段选;unsigned char c7,c6,c5,c4,c3,c2,c1,c0;/定义时分秒对应的高地位的具体数字unsigned int a,b;/定义中断溢出标志void fenpei();/fenpei函数申明,作用是计算出时分秒的具体数值然后传给c7,c6,c5.void zdzb();/中断准备工作void xianshi(unsigned char c7,unsigned char c6,unsigned char c5,unsigned char c4,unsigned char c3,unsigned char c2,unsigned char c1,

13、unsigned char c0);void delay(unsigned char z);/延时函数申明void key(); /键盘控制时分秒申明void riqi();/日期调用函数申明void main()/主函数 zdzb();/中断开始 while(1)/整个主函数一直循环 if(D5=0)/判断P0.5键是否按下 delay(50); if(D5=0)/再次判断是否按下,这是个防抖设计,如果此时=0,那么就确定是按下了 riqi(); /显示日期 key(); /键盘控制调节时分秒 fenpei();/把相应的时分秒计算出来 xianshi(c7,c6,c5,c4,c3,c2,c

14、1,c0);/显示时钟 if(b=1)/b是个中断标志,意思是定时了1s后b=1,此时才执行下面操作 miao+; if(miao=60) miao=0; fen+; b=0;/注意,每次+1之后都要把b置0,否则中断就没意义了 if(fen=60) fen=0; xiaoshi+; b=0; if(xiaoshi=24)/这里是24 而不是60 xiaoshi=0 ; b=0; b=0;/如果秒不需要进位,同样需要把b之0 fenpei();/再次分配时分秒给c7,c6.好让key()函数调用 void xianshi(unsigned char c7,unsigned char c6,un

15、signed char c5,unsigned char c4,unsigned char c3,unsigned char c2,unsigned char c1,unsigned char c0) unsigned char m,n; m=0x00; /P1口高四位控制位选 n=duanc0;/co是秒的低位,把秒的低位给了P1口的低四位 m=m|n; /高四位和第四位相与,得到的就是P1口 P1=m; /直接显示了 delay(10);/短暂延时为了动态显示 m=0x10; n=duanc1; m=m|n; P1=m ; delay(10); m=0x30; n=duanc3; m=m|

16、n; P1=m ; delay(10); m=0x40; n=duanc4; m=m|n; P1=m ; delay(10); m=0x60; n=duanc6; m=m|n; P1=m ; delay(10); m=0x70; n=duanc7; m=m|n; P1=m ; delay(10); void fenpei() c7=xiaoshi/10;/取得小时的高位 c6=xiaoshi%10;/取得小时的低位 c5=0;/此处c5留空也行 c4=fen/10;/取得分钟的高位 c3=fen%10; c2=0; c1=miao/10;/取得秒的高位 c0=miao%10;void key(

17、) if(D3=0) delay(200); if(D3=0)/同理确定了P0.3按下了 TR0=0;/中断停止,因为我此时是要进行调整的 if(D0=0) delay(200); if(D0=0)/按下P0.3的同时也按下了P0.0,那就是调节秒钟的意思 miao+; fenpei();/每次调节+1之后都要重现分配以便利于key()再次调用 if(miao=60) miao=0;/雕节满了60就自动之0 while(D0=0);/如果一直按着那就是个死循环 if(D1=0)/以下的都和上面秒钟的调节注释类似 delay(200); if(D1=0) fen+; fenpei(); if(f

18、en=60) fen=0; while(D1=0); if(D2=0) delay(200); if(D2=0) xiaoshi+; fenpei(); if(xiaoshi=24) xiaoshi=0; while(D2=0); if(D4=0)/这个小if语句的作用是当你想结束调节的时候,想返回显示时钟,那就按下P0.4,重新开始计时 delay(50); if(D4=0) TR0=1; void zdzb() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void zhongdua

19、n() interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; a+; if(a=20) a=0; b=1; void delay(unsigned char z) unsigned char x,y; for(x=z;x0;x-) for(y=50;y0;y-); void riqi() while(1) unsigned char e,f; e=0x00; /P1口高四位控制位选 f=duan4;/co是秒的低位,把秒的低位给了P1口的低四位 e=e|f; /高四位和第四位相与,得到的就是P1口 P1=e; /直接

20、显示了 delay(10); e=0x10; f=duan1; e=e|f; P1=e ; delay(10); e=0x20; f=duan6; e=e|f; P1=e ; delay(10); e=0x30; f=duan0; e=e|f; P1=e; delay(10); e=0x40; f=duan2; e=e|f; P1=e; delay(10); e=0x50; f=duan1; e=e|f; P1=e; delay(10); e=0x60; f=duan0; e=e|f; P1=e ; delay(10); e=0x70; f=duan2; e=e|f; P1=e ; delay(10); if(D6=0)/注意此出按下P0.6是结束日期的显示,返回主函数显示时钟 break; 课程设计成绩评定表成绩评定项 目比例得 分平时成绩(百分制记分)30%业务考核成绩(百分制记分)70%总评成绩(百分制记分)100%评定等级优 良 中 及格 不及格指导教师(签名):20 年 月 日

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2