欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机硬件课程设计报告书.docx

    • 资源ID:2534993       资源大小:253.30KB        全文页数:15页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机硬件课程设计报告书.docx

    1、单片机硬件课程设计报告书淮北师范大学硬件课程设计硬件课程设计报告学 院 计算机科学与技术 专 业 计算机科学与技术(非师范) 学 号 20091202020 20091202026学 生 姓 名 胡冰山 刘洵 指导教师姓名 于雷 2011年10月 8 日一、设计目的与内容:1、熟悉整个电路图,练习一下焊接操作;2、能够根据原理图焊接电路板,经过调试,保证整个电路板没有虚焊点;3、熟练掌握C51的编程方法与技巧;4、能够有效地控制LED、蜂鸣器和键盘的操作(可采用多种形式);5、编写出一个电子钟,六个数码管每两个一组,分别显示小时、分钟和秒;硬件设计要求:1.根据项目要求,去选择相应的电路,比如

    2、MCU系统,输入输出驱动电路,电源供电电路。2.整体布局合理,标注规范、明确、美观、不产生歧义。3.列出完整的元件清单(标号、型号及大小、封装形式、数量)。4.估算电路板的功耗,并对供电形式提出要求。5.根据设计好的原理图,焊接实物。软件设计要求:1.简单的用户使用说明书。2.根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模块。3程序在必要的地方进行注释。 每个函数的出入口要有输入输出参数的说明。 程序必须具有良好的可读性,可重用,容易调试和维护。4.使用c语言进行编程二、实验原理:1、LED灯的控制 由电路图可知,LED灯左侧阳极与电阻相连接高电平,右侧阴极与P1相连。因此

    3、:当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这四个引脚分别与四个开关相连,开关与地相连,所以当开关闭合时,P3_2=0,当开

    4、关断开时,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等接高电平时,电路连通,数码管亮,既可以显示数字。同样可以看到,P0口的八个引脚都与六个数码管相连,控制数码管中八个的亮灭,以达到显示09

    5、这10个数字的目的。(2)电子钟的上显示的数字之间的联系 1、六个数码管每两个一组,分别显示时,分,秒。判断当显示秒的数字,达到59时,将显示数字变为00,显示分钟的数字加1;当显示分钟的数字,达到59时,将显示的数字变为00,显示小时的数字加1;当显示小时的数字,达到23时,将显示的数字变为00。 2、六个数码管分为三组,前两个显示月份,后两位显示日期,中间两位作为分隔符号。5、中断函数模块 这个程序运用了两个中断函数,分别为定时器0和定时器1的中断,定时器0是用来计时,定时器1是用来动态扫描,这样使得电子钟的性能更稳定。6、实验电路图总电路图:数码管: 二极管:蜂鸣器:按键:单片机:7.系

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

    7、法设计与分析六、源程序及系统文件使用说明:#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 temp; unsigned char led10=0x00,0xfe,0xfc,0xf8,0x

    8、f0,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; time1 +;void delay(uchar i) /延迟函数 uchar j,k; for(j=0;ji;j+)

    9、 for(k=0;k125;k+);void Beep() /钟表滴答声控制函数 P2_1=0; delay(1); P2_1=1; delay(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) day=1; month+; else if(day=32) day=1; month+; if(month=13) month=1; void set_time() /调节时间函数 P3

    10、=0xff; if(key2=0) /调节小时 delay(200); if(key2=1) hour+; if(hour=25) hour=0; if(key3=0) /调节分钟 delay(200); if(key3=1) min+; if(min=60) min=0; if(key4=0) /调节秒 delay(200); if(key4=1) second+; if(second=60) second=0; void set_date() /调节日期 P3=0xff; if(key2=0) / 调节月份 delay(200); if(key2=1) month+; if(month=1

    11、3) month=1; if(key3=0) /调节日份 delay(200); if(key3=1) day+; if(month=2&day=30) day=1; else if(month=4)|(month=6)|(month=9)|(month=11)&(day=31) day=1; else if(day=32) day=1; void show_time() /显示时间 P2=0x04; P0=numsecond%10; delay(6); P2=0x08; P0=numsecond/10; delay(6); P2=0x10; P0=nummin%10; delay(6); P

    12、2=0x20; P0=nummin/10; delay(6); P2=0x40; P0=numhour%10; delay(6); P2=0x80; P0=numhour/10; delay(6);void show_date() /日期显示 P2=0x04; P0=numday%10; delay(6); P2=0x08; P0=numday/10; delay(6); P2=0x10; P0=0x02; /显示数码管为- delay(6); P2=0x20; P0=0x02; delay(6); P2=0x40; P0=nummonth%10; delay(6); P2=0x80; P0=

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


    注意事项

    本文(单片机硬件课程设计报告书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开