收藏 分享(赏)

30秒定时器 非常详细 论文 课程设计.doc

上传人:saw518 文档编号:7472142 上传时间:2019-05-19 格式:DOC 页数:16 大小:194KB
下载 相关 举报
30秒定时器 非常详细 论文  课程设计.doc_第1页
第1页 / 共16页
30秒定时器 非常详细 论文  课程设计.doc_第2页
第2页 / 共16页
30秒定时器 非常详细 论文  课程设计.doc_第3页
第3页 / 共16页
30秒定时器 非常详细 论文  课程设计.doc_第4页
第4页 / 共16页
30秒定时器 非常详细 论文  课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、电子技术课程设计报告专 业:电子信息工程班 级:07 电本 1 班 题 目:30 秒定时器 姓 名:王少阳、朱佩奇 指导教师:侯丽 二零零九年十月三十一日摘要此实验为三十秒定时器。定时器是生活中比较常见的电子仪器的功能之一。在 10 多个课题中,算是比较常见,但又比较实用,恰巧作者正在自学单片机,如果用单片机做的话,不失为一个学习的好机会。这个实验的难点和优点都是程序控制。因为单片机应用比较灵活,很有学习价值;而又因为它应用很灵活,所以必须学习大量的硬件知识和程序设计。最小系统 ,就是最简单的输出/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。单片机的最小系统包括晶振电路

2、复位电路 和电源 , 这时最小系统基本组成 当然还可以添加矩阵键盘 数码管等。此实验的原理是,利用单片机的最小系统,通过锁存器 74HC573 控制数码管,来实现 30 秒定时器的功能。本实验过程包括:前期设计:原理图、PCB 图的设计(DXP 制作)C 语言程序设计及 HEX 等相关的文件的生成(Keil 软件编写)烧录程序至单片机(STC,单片机实验板)元器件的收集实验制作:电源的设计电路板焊接后期的整理:电路检测,测算误差思路整理,记录得与失【关键词】 单片机;STC89C52 ; LED 数码管显示器;计时器 ;三极管 C1008前言现在电子仪器发展迅速,而且功能越来越齐全化,体积微型

3、化,仪器智能化;电压,电流要求越来越简单,功耗越来越低。而单片机就是其中的佼佼者。单片机有这体积小,功耗低(89C52 功耗在 100MW 左右) ,功能强,性能价格比高,易于推广应用等显著特点,所以在现代社会中已经占统治地位。事 实 上 单 片 机 是 世 界 上 数 量 最 多的 计 算 机 。 现 代 人 类 生 活 中 所 用 的 几 乎 每 件 电 子 和 机 械 产 品 中 都 会 集 成 有 单 片 机 。 手 机 、电 话 、 计 算 器 、 家 用 电 器 、 电 子 玩 具 、 掌 上 电 脑 以 及 鼠 标 等 电 脑 配 件 中 都 配 有 1-2 部 单片 机 。 而

4、 个 人 电 脑 中 也 会 有 为 数 不 少 的 单 片 机 在 工 作 。 汽 车 上 一 般 配 备 40 多 部 单 片 机 ,复 杂 的 工 业 控 制 系 统 上 甚 至 可 能 有 数 百 台 单 片 机 在 同 时 工 作 ! 单 片 机 的 数 量 不 仅 远 超 过PC 机 和 其 他 计 算 的 综 合 , 甚 至 比 人 类 的 数 量 还 要 多 。我们学习了单片机,在条件的允许下,就能制作生活中几乎全部的看起来比较复杂的电子作品。本实验设计要求:记录实验过程中的主要步骤及细节,实现 30 秒定功能,其误差不超过1%。大学过程是一个理论过程,实践的机会比较少,往往会

5、造成理论与实践相脱节,这是国内大学教育系统的通病,不过对于学生来说切不可好高骛远。一般从大三会开始接触到一些专业课程,电子相关专业会开设相关的单片机应用课程并且会有简单的实验项目,那么要充分把握实验课的机会,多多地实际上机操作练习。平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会 2-3 个人合作做一个完整系统,会更有帮助。到了大四毕业设计阶段,也可以选择相关的课题作些实际案例增长经验。做什么事情都有个经验的积累过程,循序渐进。在此实验设计中,制造者可以借此学到很多东西,也知道更多的知识要学。光学知识

6、不动手是不行的,纸上谈兵,把问题退到以后,很可能永远解决不了问题。三十秒定时器设计报告-单片机的初步学习与应用. .设计目的:实现 30 秒定时器;训练动手能力,学习单片机的控制与制作。.设计任务:1.30 秒计时器功能,两位数字显示,计时时间间隔为 1 秒;2.从 1 到 30 增计时,每次计时结束时,发光二极管闪动,蜂鸣器响,显示器显示 0;3.设置外部开关,可使计时器直接清零。设计要求:使用常用芯片和其他元器件等,在一块电路板上实现 30 秒定时器。尽量使用所学知识。. 最小系统:最小系统 ,就是最简单的输出/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。单片机的最小

7、系统包括晶振电路 复位电路 和电源 , 本实验最小系统只控制数码管、发光二极管、蜂鸣器。.原理图1402398756STCGNDLBelUFJW-PKRVY.MpOEHQ?fgadcbI两.参考程序:/*文件名 :实现 30 秒定时器* 描述 :该程序实现数码管从 130 跳动,每秒跳动一次。到 30 然后清零,LED 的闪烁,在使用某款新单片机时,经常就用类似的闪烁灯程序来判断单片机是否正常* 创建人 : 王少阳,2009 年 12 月 15 日* 版本号 : 1.0*/#include#include#define uint unsigned int /“uint“用来定义无符号整型数。#

8、define uchar unsigned char /这里用“uchar“代替“unsigned char“,“uchar“用来定义无符号字uchar temp,aa,bai,shi,ge;sbit dula=P26;sbit wela=P27;sbit beep=P23; /定义蜂鸣器控制端口/*下一行 code 去掉后 table 会被存到 RAM 中,因为单片机的 RAM 比 ROM 小的多*/*所以,对于不会改变的值应该用 code 或者 #define 去定义,让这些固定值存到 ROM 中去*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x

9、6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /编码表:0 到 F 的段控制void display(uchar shi,uchar ge);void delay(uint z);void init();/* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无*/void main() init();/初始化子程序while(1)if(aa=20) /当 aa 为 20 时,i 自加一次,20 * 50MS = 1Saa=0;emp+;if(temp=31)temp=0; bai=temp/100;shi=t

10、emp%100/10;ge=temp%10;display(shi,ge);if(temp=30)beep=1; /蜂鸣器响delay(150); uchar i;while(1)P1 = 0x7f; /P1.7 亮亮for(i=0; i0;x-)for(y=110;y0;y-); /这个是通过软件仿真得出的数 /* 名称 : void display(uchar shi,uchar ge)* 功能 : 实现动态扫描* 输入 : shi,ge* 输出 : 无*/void display(uchar shi,uchar ge)/* dula=1;P0=tablebai;dula=0;P0=0xf

11、f;wela=1;P0=0xfe;wela=0;delay(1); */dula=1;P0=tableshi; /数码管段值dula=0;P0=0xff; /灯都熄灭,防止人眼的视觉停留wela=1;P0=0xfe;/1111 1110Bwela=0;delay(2); /*延时,实现软件消抖,去掉的话会出现该暗的米有暗下去,这时人眼能分辨动态显示。*/dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xfd;/1111 1101Bwela=0;delay(2);/* 名称 void init()* 功能 : 定时器的初始化,12MHz 晶振,50ms*

12、输入 : 无* 输出 : 无*/void init() wela=0;dula=0;temp=0;TMOD=0x01; /设置定时器 0 工作方式 1。STC89C52 是 16 位定时器。2 的 16次方=65536。TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; /开总中断,IE7ET0=1; /开定时器中断TR0=1; /启动定时器 0/* 名称 :void timer0()* 功能 : 定时器中断,中断一次,aa 加一* 输入 : 无* 输出 : 无*/void timer0() interrupt 1 /中断优先级别为 1;中断方式

13、:定时/计数器 0(T0)TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;程序的中的重点技巧:1.两位以上的数码管,是不能在静态时同时显示不同的符号的,所以就需要用到动态显示,具体方法是每位数码管一次都显示几毫秒,实现动态扫描,使人在肉眼难以分辨(人眼的分辨能力是 0.1 秒左右),例如:dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xfd;/1111 1101Bwela=0;delay(2);2.常用程序驱动几个发光二极管来判断单片机是否工作正常,具体是用循环移动 P1 扣来实现。3. 如果按键按下,需

14、要测试按键是否断开:while(!key1);4.按键在闭合和断开时,触点会存在按下会执行几个抖动脉冲,常用软件消抖,比较方便实用,先延时 10 毫秒,大致跳过抖动时间,然后再测试。如: delay(5);if(key1=0)其他的在这里就不详细讲述了。为了保证程序能正确且正常运行,程序需要在单片机实验板上调试好了才能烧录,然后才能连接到电路板上。具体步骤:keil4 编写程序生成 HEX 文件(注意晶振频率为 11.0592MHz)按下抖动释放抖动理想波 形实 际波 形稳 定 闭合5 V5 VAB无 抖动有抖动5ms 左右 5ms 左右用 STC 把程序下载到单片机上。.两个基本电路: 复位

15、电路和晶振电路复位电路:一般需要送 4 个时钟周期的高电平。按键后:电容器被短路放电、RST 直接和 VCC 相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到 RST,仍然是“复位状态”;稍后,充电结束,电流降为 0,电阻上的电压也将为 0,RST 降为低电平,开始正常工作。晶振电路:产生一个固定频率的脉充,驱动芯片等元件工作。晶振也叫晶体振荡器,能产生振荡,其特点是固有频率十分稳定,而且震动具有多谐性,除了奇频震动外还有奇次谐波泛音震动。性能上,晶振的品质因素 Q 和特性阻抗都非常高,而且接入系数很小,因此具有很高的频率稳定度。.实

16、验仪器,工具,元件:硬件:计算机,单片机实验板,吸焊器,电烙铁,万用表等软件:Keil4 , STC , Protel 2004 DXP .元器件如表:.焊接电路: 按照 PCB 图安置元件,尽量减小导线长度,布局要合理,紧凑。收集元件:主要通过指导老师购买,还自己购买,同学相互查找。实在凑不齐的可以考虑用其他的代替。比如:此实验中 1K 的电阻没有买到,用的是 200 代替。在满足实验原理的的前提下,可以替代。检测元件:因为元件有可能已损坏,或者不准确,就可能会影响电路。所以用万用表测量他们的实际数值。其中电阻,电容,数码管,单片机底座,导线,开关都能用万用表测量,其他的因为实际实验条件的限

17、制,不能测试和测量。比如,22PF 的电容,在测量时,大小只有17PF,所以不能用。焊接:每焊接时都要用万用表测试是否焊接成功。焊接电路板时,布局合理紧凑,近的用锡连接,远的用导线练级,尽量使导线裸露的长度短些。有的导线比较密集,需注意不要短路。此实验中,密集点有单片机的 P0 口附近 10 个焊点和锁存器 74HC573-1 的 20 个。可用万用表测试相邻的两焊点是否短路。焊接错误时,用吸焊器把锡吸走,重新焊接。电源线有 7 个地线,5 个+5V。导线比较多,所以要注意布局合理。因为焊点比较多,所以错误不可避免,在实验中要细心+耐心。焊接完,要检测。用万用表检测电路是否连接良好,是否短路。

18、注意事项:晶振,因为人体所带电磁波和人体手指电阻会破坏晶振的正常震荡,或者停振,所以程序会跑飞或者“死机” ,复位按后单片机复位,当然就正常了!一般晶振是不能用受碰的,我自己做的电路,晶振引脚部位会用热熔胶封好!在晶体外壳上焊接一条线,然后接 GND.1 IC 名单 型号 个数2 单片机 stc89C52 13 锁存器 74HC573 24 数码管 2 位的,共阴极 25 晶振 12MHz 16 电容 39PF 27 电容 10UF 28 开关 按键开关 29 开关 波动开关 110 电路板 10*20 111 排阻 10K 欧 112 电阻 3K 欧 113 电阻 30 欧 114 发光二极

19、管 0.5V 亮 315 单片机底座 40 引脚 116 三极管 C1008 npn 117 蜂鸣器 1需要特别注意的是,单片机的 驱动能力很低 。单片机输出的电压虽然容易控制,但是它的输出电流有限,所以经常用一些方法增加它的驱动能力。此实验用到了接上拉电阻(10K 的排阻) ,锁存器输出,三极管驱动这三种方法。.测试:1.将电路接上稳压电源,先后执行电路的数码管定时,蜂鸣器报警,放光二极管闪动,暂停/继续定时。看是否满足设计要求。在时间误差的测试中,得到数据很接近真实数据,这是因为人的反应速度的误差,而是用定时器的计时方式,误差是非常小的,在日常生活中一般不予考虑,但是在高精度测量时,就很有

20、必要了,所以我们要了解本实验的误差: 误差原因、大小及特点产生单片机定时器溢出中断与响应中断的时间误差有两个原因。一是定时器溢出中断信号时,正在执行某指令;二是定时器溢出中断信号时,正在执行某中断服务程序。由上面可以看出在执行 1 秒的时间过程中,本实验程序中断 1 次,溢出 2 次,所以误差 =(max1+2*max2)*30=(4+8*2)*30=600电路改进及发展:实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法: 软件定时:软件定时不占用硬件资源,但占用了 CPU 时间,降低了 CPU 的利用率。 采用时基电路定时:例如采用 555 电路,外接必要的

21、元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。 采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。.对单片机做定时器的优点,和缺点:单片机讲求实时性,所以实时性好。资源紧张,要求功耗低多为针对应用的定制,功能相对单一,在上面跑的软件移植性差大多数不支持第三方软件,很多甚至没有操作系统,有的连 MMU 都没有。我们学生用单片机可以向嵌入式的工程应用方向发展,从事嵌入式系统的开发工作。总结其间,我熟悉了从构想设计、画电路图

22、、分析电路、绘制 PCB 电路板、选择元件参数规格、购买元件、焊接、调试到最后的外形设计等产品生产步骤以及一些方法,通过与同学的讨论,解决了许多问题,但也出现了许多问题,比如数码管显示串连、单片机驱动低需要外加电路驱动等,还须在以后的学习中不断地探索、学习。另外,还要多与同学讨论、研究,多向别人请教,这样才能明白自己的迷团,学到新的东西;别人遇到的一些问题,自己也要参与解决,以增长见识。设计中,还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更

23、明白易懂。这次的单片机课程设计重点是理论与实际的相结合。不再只读书了。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。结束语 :通过本次设计,使我认识并了解了基本的设计开发过程,在这过程中,我的身边的同学们和导师给了我很多的启示和帮助,而且我觉的对以前不了解的单片机知识有了一个更高更深的了解。我相信我所学的东西在以后的工作学习中会起很大的作用。参考书目:1 刘刚,秦永左, 单片机原理及应用 ,北京,北京大学出版社,2006 年.2 道辉, 单片机系统设计与实践 ,北京,电子工业出版社,2006 年.3 门宏, 电子技术快速入门-图解 ,人民邮电出版社,2006 年.4 杨志忠, 电子技术课程设计 ,南京,机械工业出版社,2008 年 6 月.5 黎文模、段晓峰编著, Protel DXP 电路设计与实例精解 ,北京,人民邮电出版社, 2006.6 赵文博、刘文涛编著, 单片机语言 C51 程序设计 ,北京,人民邮电出版社, 2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报