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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

硬件课程设计报告Word文档格式.docx

1、 由电路图可知,LED灯左侧阳极与电阻相连接高电平,右侧阴极与P1相连。因此:当P1为低电平(即P1=0)时,电路连通,LED灯亮,当P1为高电平时(即P1=1)时,电路不通,LED灯不亮。所以,可以通过控制P1的值控制LED灯的亮与不亮。而因为八个LED灯与P1口上八个引脚相连,因此可以控制每个接口的值控制每个LED灯的亮灭。比如当P1=0x04时,第五个灯不亮。2、蜂鸣器的控制 由电路图可知,蜂鸣器一侧与三极管相连,另一侧与高电平相连,而三极管与电阻相连后接P2_1口。因此当P2_1=1时,蜂鸣器响;当P2_1=0时,蜂鸣器不响。3、键盘的控制 (1) 由电路图可知,P3_2到P3_5这四

2、个引脚分别与四个开关相连,开关与地相连,所以当开关闭合时,P3_2=0,当开关断开时,P3_2=1,所以可以根据查看P3_2等值的0或1来判断开关是否闭合。 (2) 要达到通过键盘控制数码管显示数字的目的,可以将P3_2为0时,表示要修改数字,而用P3_3到P3_5为0时分别对应时分秒等进行数值的加1。 (3) 由电路图可知,开关S1闭合时,电路断开。4、 电子钟的显示(1) 电子钟上数字的显示原理 由电路图可知, P2_7到P2_2这六个引脚分别与六个数码管相连,中间有一10k的电阻,还有一三极管,通过三极管的特性可知,当P2_7等接高电平时,电路连通,数码管亮,既可以显示数字。同样可以看到

3、,P0口的八个引脚都与六个数码管相连,控制数码管中八个的亮灭,以达到显示09这10个数字的目的。(2)电子钟的上显示的数字之间的联系 1、六个数码管每两个一组,分别显示时,分,秒。判断当显示秒的数字,达到59时,将显示数字变为00,显示分钟的数字加1;当显示分钟的数字,达到59时,将显示的数字变为00,显示小时的数字加1;当显示小时的数字,达到23时,将显示的数字变为00。 2、六个数码管分为三组,前两个显示月份,后两位显示日期,中间两位作为分隔符号。5、中断函数模块 这个程序运用了两个中断函数,分别为定时器0和定时器1的中断,定时器0是用来计时,定时器1是用来动态扫描,这样使得电子钟的性能更

4、稳定。6、实验电路图总电路图:数码管: 二极管:蜂鸣器:按键:单片机:7.系统的元器件清单表2.1 系统元器件表器件型号数量单片机12C5A60S21个按键普通5个三极管8个开关6脚双路排阻A103J,A427J,A102J1个,1个,二极管灯电容10F2个 数码管 CPS056AR6个电阻若干下载接口4针接口蜂鸣器压电式单排针三、主要功能模块流程图:main函数流程图四、拓展功能: (1) LED灯的花样设计:可根据自己的喜好设计出各种各样的LED灯 (2) 利用数码管实现日期的显示:显示月份与日期,根据月份判断每月天数五、参考文献: 新编单片机原理及应用、c语言程序设计、51单片机C语言教

5、程、51实验指导、数据结构、算法设计与分析六、源程序及系统文件使用说明:#include #define uchar unsigned char uchar num=0xbd,0x90,0xa7,0xb6,0x9a,0x3e,0x3f,0xb0,0xbf,0xbe; /09uchar hour=12,min=0,second=0,flag,time1,month=12,day=1; /给各个数附初值uchar set_hour=12,set_min=1,set_switch=1,key1_time,function;uchar bell=0x17,0x13,0x2b; /显示开与关,ON,OF

6、 uchar temp;unsigned char led10=0x00,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xaa;sbit key1=P32;sbit key2=P33;sbit key3=P34;sbit key4=P35;sbit bell_ring=P21;int i;#define uint unsigned int uint count=0;void timer() interrupt 1 using 0 /秒表控制函数 TH0 = (65536 - 50000)/256; TL0 = (65536 - 50000)%256; tim

7、e1 +;void delay(uchar i) /延迟函数 uchar j,k; for(j=0;ji;j+) for(k=0;k125;k+);void Beep() /钟表滴答声控制函数 P2_1=0; delay(1); P2_1=1; void time() / 时间进行函数 if(time1=20) time1=0; for(i=0;i=30) month+; day=1; else if(month=4)|(month=6)|(month=9)|(month=11)&(day=31) else if(day=32) if(month=13) month=1;void set_ti

8、me() /调节时间函数 P3=0xff; if(key2=0) /调节小时 delay(200); if(key2=1) if(hour=25) hour=0; if(key3=0) /调节分钟 if(key3=1) if(min=60) min=0; if(key4=0) /调节秒 if(key4=1) if(second=60) second=0;void set_date() /调节日期 if(key2=0) / 调节月份 month+; if(month=13) month=1; if(key3=0) /调节日份 if(month=2& day=1; else if(month=4)

9、|(month=6)|(month=9)|(month=11)& else if(dayvoid show_bell() /显示设置的闹铃时间 P2=0x04; /显示ON,OF if(set_switch%2=0) P0=bell2; /OF delay(6); else P0=bell1; /ON P2=0x08; P0=bell0; delay(6); P2=0x10; P0=numset_min%10; P2=0x20; P0=numset_min/10; P2=0x40; P0=numset_hour%10; P2=0x80; P0=numset_hour/10;void set_b

10、ell() /设置闹铃函数 / P3=0xff; if(key2=0) delay(200); if(key2=1) set_hour+; if(set_hour=24) set_hour=0; if(key3=0) if(key3=1) set_min+; if(set_min=60) set_min=0; if(key4=0) if(key4=1) set_switch+;void show_time() /显示时间 P2=0x04; P0=numsecond%10; P0=numsecond/10; P0=nummin%10; P0=nummin/10; P0=numhour%10; P

11、0=numhour/10;void show_date() /日期显示 P0=numday%10; P0=numday/10; P0=0x02; /显示数码管为- P0=nummonth%10; P0=nummonth/10;void walk_up_bell() /响铃设置 if(min=set_min)&(hour=set_hour) temp=1; else temp=0; if(temp=1)&(set_switch%2=1)&(second=5) for(i=0;2; Beep(); else bell_ring=0; void key_board() / 功能选择 P3=0xff;

12、 if(key1=0) if(key1=1) key1_time+; function=key1_time%4; switch(function) case 0 : show_time();break; case 1 :set_time(); case 2 : show_date();set_date(); case 3 : show_bell();set_bell();void main() TMOD = 0x01; EA=1; ET0=1; TR0=1; while(1) key_board(); time(); date(); walk_up_bell();七、总结在组装单片机硬件设备时要细心,要有耐心,在实验时要注意安全。在编译软件时,程序刚开始没有什么头绪,通过各种资料的搜集后发现调用各种函数来实现比较容易,整个过程中出现了很多小问题,各个函数的调用比较混乱。通过一系列的梳理后慢慢清晰,发现比较的容易。

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

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