




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用课程设计报告专 业: 电子信息工程 班 级: 0901 姓 名:指导教师: 二0 xx年 xx 月 xx 日15 任务书:一、设计题目led数字显示电子时钟二、设计要求 1、方案论证,确定总体电路原理图。 2、元器件选择,设计pcb图(或用万能电路实验板搭线)。3、绘制程序流程图,编写汇编语言源程序(或c语言源程序)。4、安装调试,实现数字时钟的基本功能,即能正确显示时、分、秒;可调整时间;秒闪功能。 目录一 电路原理图和设计程序流程图11. 单片机芯片选择方案12. 时钟主程序流程图23. 按键扫描程序流程图24. 时钟程序流程图3二 设计方案分析31. 时钟电路32. 复位电路43. 按键电路44. 显示电路55. led的结构与原理5三 程序仿真6四 心得体会7附一:参考书目9附二:源程序9一 电路原理图和设计程序流程图 单片机模块驱动模块按键模块led显示模块时钟模块电源模块 图一流程图系统由51系列单片机at89c51、按键、数码管显示、电源等部分构成。单片机部分包括时钟电路、复位电路;按键部分能够实现对时间的调整、设定。三个按键的功能分别为:小时的调整,分钟的调整,复位。电源部分(usb充电器)可输出5v电压,给系统供电。1. 单片机芯片选择方案方案一:at89s51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器。主要性能有:与mcs-51单片机产品兼容、全静态操作:0hz33hz、 三级加密程序存储器、32个可编程i/o口线、三个16位定时器/计数器、八个中断源、全双工uart串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。方案二:at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram)。主要性能有:兼容mcs51指令系统、32个双向i/o口、256x8bit内部ram、3个16位可编程定时/计数器中断、时钟频率0-24mhz、2个串行中断、可编程uart串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案一。2. 时钟主程序流程图时钟主程序流程图如图二所示。进入系统后首先实现程序的初始化,然后进入主程序,定时器开始计时,当定时器发生中断时刷新数码管同时显示,之后实现中断与显示的循环。图二时钟主程序流程图3. 按键扫描程序流程图 按键扫描程序流程图如图三所示。主程序进入键盘扫描程序后判断是否按下了p1.0。若是按下了p1.0为了去除抖动再进行确认是否按下p1.0,当确认按下了p1.0后判断按下p1.0的次数,若按了一次则进行秒调整,若按了两次则进行分调整,若按了三次则进行时调整。然后进入显示程序段进行显示刷新。图三按键扫描流程图4. 时钟程序流程图时钟程序流程如图四所示。设计中,采用51单片机的定时器的方式一定时,所以如图所示,当程序产生定时溢出中断时要重新赋初值。然后进行是否到一秒的判断,若到一秒则秒加一,若未到则直接退出中断。一秒到了加一以后进行是否秒到六十的判断,若秒到六十则秒清零,同时分加一,若秒未到六十则退出中断。分加一以后进行分是否到六十的判断,若未到六十则退出中断,若分到六十则分清零,同时小时加一。小时加一后进行小时是否到二十四的判断,若未到二十四则退出中断,若到二十四则清零,然后退出中断。图四时钟程序流程图二 设计方案分析1. 时钟电路 时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频。 cpu 的时钟振荡信号有两个来源:一是采用内部振荡器,此时需要在 xtal1 和xtal2 脚连接一只频率范围为033mhz 的晶体振荡或陶瓷振荡器及两只 30pf 电容。二是采用外部振荡,此时应将外部振荡器的输出信号接至 xtal1 脚,将xtal2 脚浮空。 利用单片机内部的定时功能来实现时钟的走时,通过编程实现每 50 毫秒产生一次中断,中断20 次后,秒单元加1,秒单元加到60 时,跳回到零再继续加,同时分单元加1;当分单元加到60 时,跳到零再继续加,同时时单元的个位加1,以次类推,从而实现秒、分、小时的走时。 本次设计中采用的是内部振荡器,频率为 12mhz 的晶体振荡器及 30pf 瓷片电容 。2. 复位电路 复位是指在规定的条件下,单片机自动将cpu 以及与程序运行相关的主要功能部件、i/o 口等设置为确定初始状态的过程。如果电路参数不符合规定的条件或干扰导致单片机不能正确的复位,系统将无法进行正常的工作,因此,复位电路除了要符合厂家规定的参数外,还要滤除可能的干扰。at89s51 单片机内部有一个由施密特触发器等组成的复位电路。复位信号是从其9 脚,即rst 脚输入的。at89s51单片机规定,当其处于正常工作基于51 单片机的数字时钟的设计状态,且振荡器工作稳定后,在rst 端有从高电平到低电平,且高电平时间大于两个机器周期的复位信号时,cpu 将完成对系统的复位。有两点需要注意:一、复位信号是高电平有效,二、高电平的保持时间必须大于两个机器周期,可见高电平保持时间与振荡频率有关。 上电复位是指在系统上电时,rst 端自动产生复位所需要的信号将单片机复位。上电时,rst 端高电平的维持时间取决于r(1k)和c(22uf)的值。要使单片机可靠的复位,设计中使其维持的时间足够长。 3. 按键电路 方案一:采用阵列式键盘 此类键盘是采用行列扫描方式,当按键较多时可以减少占用单片机的 i/o口数目。方案二:采用独立式按键电路 每个键单独占有一根i/o接口线,每个i/o口的工作状态互不影响,此类键盘采用端口直接扫描方式。但是当按键较多时占用单片机的i/o数目较多。 本系统只需三个按键,因此选择方案二。 如果按键采用中断的话,可以使单片机工作更加灵活、效率更高。由于该系统要用到 3 个按键,考虑到单片机的中断资源不够,所以就只用p1.0及p1.2 和p1.3 口。 4. 显示电路方案一:采用动态显示 这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通。当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮,外接7407组成显示电路。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件线路。 各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作用,所以适当选取循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪烁现象。方案二:采用静态显示 数码管工作在静态显示方式下,共阴极或共阳极点连接在一起接地或高电平。每位的段选线与一个8 位并行口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。该工作方式常采用串行口设定方式0 输出,外接74ls164 移位寄存器构成显示电路。 综合考虑,采用动态显示,采用一片7407芯片作为缓冲,分时选中三片数码管,从编程和提供的硬件等方面综合考虑后,决定采用动态显示的方法, 图五显示电路 led 显示器的结构与原理5. led的结构与原理一般数码管内部有共阴和共阳两种连接方式。共阴就是将各个发光二极管的阴极接地,共阴极数码管如图 所示。图中一个发光二极管就相当于一个数码段。若给某段加上高电平,那么相对的段就会亮。根据要想显示的数值给各段数码管加上相应的高电平就可以显示不同的数值了。 共阳就是将各个发光二极管的阴极一起接在高电平上。 从图 中可以看出共阳的显示器与共阴的显示器有一点区别,就是它将阳极连接在一起接到高电平上。这样在想显示某个数的时候,各个发光二极管赋低电平而不是在共阴时的高电平了,这就是共阴共阳的区别。 图六led的引脚图由于它内部构造不同,在显示时代码也有所不同,共阴七段led 段选码表 。 共阴七段led段选码显示字符数显代码显示字符数显代码00x3f50x6d 1 0x06 60x7d 2 0x5b 70x07 30x4f 80x7f 4 0x66 90x6f三程序仿真在proteus中画出原理图导入.hex文件,画出原理电路图。图七proteus仿真电路图四 心得体会在程序调试过程当中,出现了以下几个问题:首先在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机实习,我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:c语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。 最后,在设计之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。附一: 参考书目1 刘同法,单片机基础与最小系统实践,北京,北京航空航天大学出版社,20072 蒋辉平,单片机原理与应用设计,北京,北京航空航天大学出版社,20073 谭丙煜,怎样撰写科学论文m,2版,沈阳,辽宁人民出版社,1982 4 陈正义,单片机控制实习d附二:源程序#include unsigned char led12=0x3f,0x09,0xb3,0x9b,0x8d,0x9e,0xbe,0x0b,0xbf,0x9f,0x80,0x00; /用一维数组定义0-9、横杠、全灭unsigned char a6; unsigned char second=0,minute=0,hour=12;/初始值unsigned char hour1=0,minute1=0;/闹钟初始值unsigned char b6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/扫描unsigned char k=0;unsigned int temp; / 记录毫秒为秒的变量unsigned char m,shanshuo;/m模式、shanshuo闪烁标志sbit miaoshan=p10;sbit k1=p32;sbit k2=p33;sbit k3=p35;sbit beep=p36;void delay(unsigned n) /延时,可根据n调节int x,y; for(x=0;xn;x+) for(y=0;y24;y+); void init() m=0; miaoshan=0; /秒闪标志位 shanshuo=0; /闪烁标志beep=0; /整点报时 tmod=0x10; /定时器以方式1定时 th1=0xfd; tl1=0xff; ea=1; /打开总中断 et1=1; /允许定时器中断 tr1=1; /开启定时器void time1() interrupt 3 /定时器中断函数 th1=0xfe; /定时ms tl1=0x0c; temp+; if(temp=500) miaoshan=!miaoshan; if(temp=1000) /配合定时器定时s temp=0; second+; miaoshan=!miaoshan; if(second=59) second=0; if(minute7&hour23&minute=0&second1)|(hour1=hour&minute1=minute&second10&temp%500=0)beep=!beep; /整点报时 、闹钟响铃 if(k=6) k=0; p0=ak; p2=bk+; delay(1); p2=0x3f; void display()switch(m)case 0:a0=ledhour/10;a1=ledhour%10;a2=ledminute/10; a3=ledsecond%10;a4=ledsecond/10;a5=ledminute%10;break;case 1:if(shanshuo=1)a0=ledhour/10;a1=ledhour%10;elsea0=led11;a1=led11;a2=ledminute/10;a5=ledminute%10;a4=ledsecond/10;a3=ledsecond%10;break;case 2:a0=ledhour/10;a1=ledhour%10;if(shanshuo=1)a2=ledminute/10;a5=ledminute%10;elsea2=led11;a5=led11;a4=ledsecond/10;a3=ledsecond%10;break;case 3: a0=ledhour/10;a1=ledhour%10;a2=ledminute/10;a5=ledminute%10;if(shanshuo=1)a4=ledsecond/10;a3=ledsecond%10;elsea4=led11;a3=led11;break;case 4:if(shanshuo=1)a0=ledhour1/10;a1=ledhour1%10;elsea0=led10;a1=led10;a2=ledminute1/10;a5=ledminute1%10;break;case 5:a0=ledhour1/10;a1=ledhour1%10;if(shanshuo=1)a2=ledminute1/10;a5=ledminute1%10;elsea2=led10;a5=led10;break;void key_p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全工程师考试特种设备安全模拟试卷(附答案)
- 2024年资料员之资料员基础知识通关考试题库带答案解析
- 2025燃气职业技能鉴定常考点试卷附完整答案详解(考点梳理)
- 2025年民事诉讼法与程序考试题及答案
- 水溶肥生产线项目可行性研究报告
- 监控布线及立杆安装劳务合同
- 2025年山东钢铁集团有限公司校园招聘模拟试题附带答案详解带答案详解
- 第二水厂设备的日常保养和维护说明(大全)
- 数据库作业及参考答案
- 班组长应掌握的沟通方式
- KBZ2馈电开关华荣教案
- 检验科标本保存制度
- 《鼻内镜上颌窦开放》课件
- 2025版商业综合体物业服务合同招标文件3篇
- 建设工程降低成本、提高经济效益措施
- 课程思政融合深度学习的“实变函数与泛函分析”课程教学体系构建
- 2025年日历表( 每2个月一张打印版)
- 2024-2030年中国科技孵化器产业运行动态及投资发展前景调研报告
- 四年级下册数学200道竖式计算
- 江苏省南京市雨花台区实验小学2024-2025学年五年级上学期期中数学试题(文字版)
- RPA财务机器人开发与应用 课件 6.2 RPA银企对账机器人
评论
0/150
提交评论