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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于单片机可调节数字电子钟设计设计性实验报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机可调节数字电子钟设计设计性实验报告.docx

1、基于单片机可调节数字电子钟设计设计性实验报告综合性、设计性实验报告姓名 学号 姓名 学号 专业 通信工程 实验课程名称 单片机原理与应用 指导教师及职称 赵全友 副教授 开课学期 2014 至 2015 学年 上 学期上课时间 2015年 9 月 2 日 湖南科技学院教务处编印一、实验设计方案实验名称:可调节数字电子钟设计实验时间: 2016-1-4小组合作: 是 否小组成员: 1、实验目的: 1)学习数码管的基本知识。2)学会如何控制动态数码管扫描显示。2、实验设备及材料:硬件设备:单片机实验箱、USB烧录线机器配置:计算机一台操作系统:Win7开发工具:Keil C、Proteus、Fla

2、sh Magic 一套3、实验内容: 问题描述利用共阴极的6位LED数码管进行显示,然后用定时器T0实现定时,实现一个数字电子钟,实现时、分、秒,并用“.”隔开显示。编程任务1. 利用通过修改电路实现对数字电子钟实现控制,即能适时地设置时间,并完成相应的程序。2利用通过修改电路实现一个电子秒表,启动秒表,暂停秒表,秒表清零,秒表显示到毫秒。样例1. 定时1秒,采用16位定时50ms,共定时20次才可达到1秒,进一步可实现分时。2. 利用小延时或者另一个定时器实现对8个数码管的动态扫描显示。3. 时间设置采用外部中断。4、实验方法步骤及注意事项:(注意:此部分为本实验的关键部分,请自行填写,不得

3、雷同!)实验步骤(自行填写)1、打开电脑并运行Keil C建立工程;2、编辑C51程序文本文件,写入核心代码并添加到source group里;3、把实验箱接通电源及烧录线,打开Flash Magic软件把程序下载到芯片里面;4、验证实验结果。解题思路(注意:以下部分仅为提示,请自行填写;若表格不够,可自行拉伸。)1 如何实现定时1秒,1分,1小时2 如何实现对动态数码管的动态扫描显示3 如何实现多功能的电子表。解题思路: 1、使用定时器0作为实时时钟每隔50ms产生一次脉冲( 即给定时器0赋初值为TH0=(65536-50000)/256; TL0=(65536-50000)%256; ),

4、计数20次就是1秒;当计数到60秒时,秒钟全部清零给分钟计数加一;同理当分钟计数到60时给小时加一,分钟全部清零;小时计数到24才清零。 2、先对动态数码管进行段选编码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f分别对应0、1、2、3、4、5、6、7、8、9,然后对数码管进行位选依次亮不同的数码管,在短暂的时间里由于人眼的余辉效应可以看到数码管是同时亮的。 3、利用中断0计数进行模式切换已达到多功能的目的,然后用中断1合理配合标志位对相应功能进行操作。5参考文献:单片机原理与接口技术张毅刚主编,人民邮电出版社,2008 单片机原理及应用(第

5、二版), 曹巧媛 主编,电子工业出版社, 2004指导老师对实验设计方案的意见:指导老师签名: 年 月 日 二、实验报告1、实验目的、设备与材料、实验内容、实验方法步骤见实验设计方案2、实验程序(请自行填写,可拉大表格)实验核心代码:#include#define uint unsigned int#define uchar unsigned charuchar aa,ss,bb,num1,num2,flag1,flag2,p1,p2,flag3,flag4,flag5,flag6;uchar mms1,mms2,ms1,ms2,mm1,mm2,s1,s2,m1,m2,h1,h2,h;sbit

6、 dula=P26; sbit wela=P27;sbit k1=P32; /外部中断0sbit k2=P33; /外部中断1sbit k3=P35; /定时器中断1sbit led=P00;sbit alarm=P23;uchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void display0(uchar s1,uchar s2,uchar m1,uchar m2,uchar h1,uchar h2);void delay(uint z);vo

7、id init();void main() init();/初始化子程序 while(1) switch(num1) case 1: /调时 flag3=1; led=0; display0(s1,s2,m1,m2,h1,h2); break; case 2: /秒表 flag3=0; display0(mms1,mms2,ms1,ms2,mm1,mm2); break; case 3: /闹钟 flag3=0; break; default: display0(s1,s2,m1,m2,h1,h2); /计时 if(flag2=1) /秒表清零 mms1=0;mms2=0;ms1=0;ms2=

8、0;mm1=0;mm2=0;flag1=0;flag2=0; if(h=1&s10;x-) for(y=110;y0;y-);void display0(uchar s1,uchar s2,uchar m1,uchar m2,uchar h1,uchar h2) dula=1; P0=table1h2; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); /h2 dula=1; P0=table1h1|0x80; /显示小时后的小数点 dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); /h

9、1 dula=1; P0=table1m2; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); /m2 dula=1; P0=table1m1|0x80; /显示分钟后的小数点 dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); /m1 dula=1; P0=table1s2; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); /s2 dula=1; P0=table1s1; dula=0; P0=0xff; wela=1; P0=0x

10、df; wela=0; delay(1); /s1void init() wela=0; dula=0; num1=0,num2=0;flag1=0;flag2=0;flag3=0;flag4=0;flag5=0;flag6=0;p1=0;p2=0; aa=0;ss=0;bb=0;s1=0;s2=0;m1=0;m2=0;h1=0;h2=0; mms1=0;mms2=0;ms1=0;ms2=0;mm1=0;mm2=0; TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-10000)/256; TL1=(6553

11、6-10000)%256; EA=1; /开放总中断 ET0=1; /开放定时器0中断 TR0=1; ET1=1; /开放定时器1中断 TR1=0; EX0=1; /开放外部中断0 ,k1 EX1=1; /开放外部中断1 ,k2void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa+;bb+;/h=h1; if(aa=20) aa=0; if(s1=9) s1=0; /m2+; if(s2=5) s2=0; if(m1=9) m1=0; if(m2=5) m2=0; if(h1=9) h1=0; h2

12、+; h=1; /闹钟标志位 else if(h1=3&h2=2) h1=0; h2=0; else h1+; /end if6 /end if5 else m2+; /end if4 else m1+; /end if3 else s2+; /end if2 else s1+; /end if1 if(bb=5) /设置一定频率的闹钟铃声 p2=p2; bb=0; void timer1() interrupt 3 TH1=(65536-10000)/256; TL1=(65536-10000)%256; if(flag4=0) ss+; if(ss=1) ss=0; if(mms1=9)

13、mms1=0; if(mms2=9) mms2=0; if(ms1=9) ms1=0; if(ms2=5) ms2=0; if(mm1=9) mm1=0; if(mm2=5) mm2=0; else mm2+; /end if6 else mm1+; /end if5 else ms2+; /end if4 else ms1+; /end if3 else mms2+; /end if2 else mms1+; /end if1 else if(!k3) if(flag6=0) TR0=0;m1+;flag5=1; /调分 else TR0=0;h1+;flag4=0;flag5=0;flag

14、6=0; /调时 TR0=1; void inter0() interrupt 0 if(k1=0) delay(20); if(k1=0) if(flag1=0) num1+; if(num1=4) num1=0; else flag2=1; /end if1 void inter1() interrupt 2 if(k2=0) delay(20); if(k2=0) if(flag3=0) p1=p1; flag1=1; if(p1) TR1=1; else TR1=0; else if(flag5=0) flag4=1; else flag6=1; 3、对实验现象、数据及观察结果的分析与

15、讨论:经过不断调试实验最终现象及数据结果都正常,可以正常以秒为单位进行24小时制计时,当秒钟计数到60时向分钟进位,秒钟自动清零;当分钟计数到60时向小时进位,分钟自动清零,同时整点报时启动;当小时计数到24时自动全部清零。同时秒表也可以正常运行毫秒计数到100自动向秒钟进位且毫秒自动清零,同理秒计数到60自动向分进位,当分计数到60时自动清零;若按下k2键则秒表暂停,此时若再按下k1则秒表清零;在按一次k1模式切换键则回到时钟主界面。4、结论:实验设计方案基本可以完全符合题目要求,可以实现设计基本功能;在设计执行调时功能方案时还可以在定时器里设置标志位实现数码管位选延迟以达到调时闪烁醒目目的

16、。5、实验总结1)、本次实验成败之处及其原因分析:注:从技术角度来分析实验的成功或失败,分析实验过程中出现了哪些问题,程序出现了什么错误,出现错误的具体原因是什么,以及是如何解决的。 问题:数码管显示亮度存在模糊现象,按键按的不准;原因:数码管没有消影,按键没有实现防抖;解决:在数码管进行位选时立马屏蔽(P0=0xff)或者增加一定短暂的延时;对按键进行消抖,即可以延时15ms再做判断。2)、本实验的关键环节及改进措施:做好本实验需要把握的关键环节: 1、对定时器初值的设定以及使用,这样才能精确到秒以及毫秒; 2、数码管的动态显示原理的理解及实现的掌握; 3、两个中断接口的配合使用,以及合理利

17、用标志位这样才能实现多功能。若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善: 在进行数码管位选时可以在头文件加 #include 利用intrinsic函数移位的功能可以很方便实现数码管的位选而不需要手动编码。 3)、对实验的自我评价:(注:自己的体会、感想和收获等) 刚开始对实验设计的整体理解的不是很全面,但在做的时候遇到不懂的就不断的查阅相关资料,尤其在多功能这一块,需要对标志位深刻理解和灵活使用,配合两个外部中断开关以实现好几个功能,由于本身也有单片机开发板,所以在开发板上不断的调试不断的修改,可以很方便的看到自己设计的实验结果,最终经过两天不断的努力终于弄出来了,实验设计的要求都得以实现,并扩展了整点报时功能。指导老师评语及得分:签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1