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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计单片机电秒计时器.docx

1、单片机课程设计单片机电秒计时器中国矿业大学单片机课程设计姓 名: * 学 号: * 专 业: 自动化 题 目: 单片机电秒计时器 专 题: 单片机系统设计 指导教师: * 设计地点: * 时 间: * 2011 年 6月单片机课程设计任务书专业年级 * 学号 * 学生姓名 * 任务下达日期: 2011 年 6 月 18日设计日期: 2011年6月18日 至 2011年 6月28日设计题目:单片机电秒计时器设计专题题目:单片机系统设计设计主要内容: 通过单片机系统实现秒表计时功能,可以进行暂停计时、恢复计时、设定时间和清零等操作。设计要求:1.系统上电,数码管显示“99”.2.每隔1秒,数码管显

2、示减1,减小到“00”后,数码管显示“00”,同时继电器开启。3.设置按键S13,当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢计时。4.当停止计时时,按下S14键,可以设置秒数,按键S1-S10分别对应数字0-9;先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。按下S13键启动计时。5.设置按键S15,当S15按下时,数码管显示为“99”,秒表从新开始计时。6.考试过程中,应使用硬件平台指定的资源进行设计。指导教师签字:摘要 单片机极高的性能价格比,受到人们的重视和关注,应用很广、发展很快,51单片机是各单片机中最为典型和最有代表性的一种。本实

3、验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以倒数的计数器。本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个电秒计时器,包括以下功能:通过单片机系统实现秒表计时功能,可以进行暂停计时、恢复计时、设定时间和清零等操作。该计数器系统主要由计数器模块、LCD显示器模块、键盘模块、复位模块等部分组成。关 键 词:AT89C51单片机、 C语言编程、键盘模块、LCD显示器1 理论设计 .11.1系统设计要求.12 AT89C51介绍.22.1引脚定义及功能32.2 I/O端口功能43 系统硬件介绍83.1

4、单片机最小系统83.2复位电路93.3时钟电路103.4显示电路103.5键控电路124 软件设计134.1 基本任务 134.2 按键定义及显示标志134.3 主程序框图135小结 15参考文献: 16附录 17附录一 单片机印刷电路板原理图 17附录二 元件清单 181 理论设计1.1系统设计要求(1)该倒计时器应具有基本倒时功能;(2)具有暂停,复位功能;(3)时间可以任意调整;(4)时间用数码管显示,初始值为99S,扫描时间为1S。采用单片机程序设计制作,它是利用芯片AT89S51的特殊功能,上电两个数码管将显示99,P3口控制4X4矩阵按键开关,输入数字。通过P0口对两片74HC27

5、3进行控制,一片输出字型码,一片输出字位码。P2.4和P2.5控制74HC02,来确定字位和字形码地址。其系统框图如图1所示。 2 AT89C51介绍AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,它与MCS51系列的许多机种都具有兼容性,并具有广泛的代表性。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反

6、复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51的特点与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡

7、器和时钟电路 2.1引脚定义及功能AT89C51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O端口线、电源线、控制线、外接晶体线四部分。其封装形式有两种:双列直插封装(DIP)形式和方形封装形式,如图3-1所示。图3-1 AT89C51引脚主电源引脚VCC:供电电压(+5V)。GND:接地。2.2 I/O端口功能P0口: P0口有八条端口线,命名为P0.0P0.7,其中P0.0为低位,P0.7为高位。每条线的结构组成如图3-2所示。它由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。P0口是一个三态双向I/O口,它有两种不同的功能,用于不同的工作环境。

8、P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 图3-2 P0口位结构图 P1口:P1口有八条端口线,命名为P1.0P1.7,每条线的结构组成如图3-3所示。P1口是一个准双向口,只作普通的I/O口使用,其功能与P0口的第一功能相同。作输出口使用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,使场效应管T截止,然后才能读

9、取数据。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 图3-3 P1口位结构图P2口:P2口有八条端口线,命名为P2.0P2.7,每条线的结构如图3-4所示。P2口也是一个准双向口,它有两种使用功能:一种是当系统不扩展外部存储器时,作普通I/O口使用,其功能和原理与P0口第一功能相同,只是作为输出口时不需外接上拉电阻;另一种是当系统外扩存储器时,P2口作系统扩展的地址总线口使用,输出高8位的

10、地址A7A15,与P0口第二功能输出的低8位地址相配合,共同访问外部程序或数据存储器(64 KB),但它只确定地址并不能像P0口那样还可以传送存储器的读写数据。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLAS

11、H编程和校验时接收高八位地址信号和控制信号。P3口:P3口有八条端口线,命名为P3.0P3.7,每条线的结构如图3-1所示。P3口是一个多用途的准双向口。第一功能是作普通I/O口使用,其功能和原理与P1口相同。第二功能是作控制和特殊功能口使用,这时八条端口线所定义的功能各不相同,如表3-4所示。P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。图3-4 P2口位结构图 图3-5 P3口位结

12、构图表1 P3口各位的第二功能引脚第二功能功 能 说 明 P3.0RXD串行数据输入端 P3.1TXD串行数据输出端 P3.2INT0外部中断0中断请求信号输入端P3.3INT1外部中断1中断请求信号输入端P3.4T0定时/计数器0外部计数脉冲输入端P3.5T1定时/计数器1外部计数脉冲输入端P3.6WR片外RAM写选通信号输出端 P3.7RD片外RAM读选通信号输出端 3 系统硬件介绍3.1单片机最小系统 该原理图包含单片机以及外部连接译码,锁存电路端口,其中的ALE,REST为高电平时用来启动ADC0809.P0口控制数码输出显示以及控制键盘的。晶振采用12MHZ,该频率有利于提高串口的通

13、信可靠性,同时又保证单片机有较高的运行速度。3.2复位电路单片机在开机时都需要复位,以便CPU及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机复位电路工作原理:当通电瞬间 稳压电源给电容充电。RESET为复位输入端,当RESET引脚持续两个机器周期以上的高电平时,使单片机完成复位操作,随着电容充电结束,将使电容与电阻之间将呈现低电平,单片机复位结束。复位操作的主要功能是把PC初始化为0000H,使单片机程序存储器从0000H单元开始执行程序。本设计主要采用上电自动复位电路,其电路图如图4所示图(4) 复位电路3.3时钟电路本篇论文选择的方案中采用的是内部振荡方式。采用内部方

14、式时在XTAL1和XTAL2引脚上接石英晶体和微调电容可以构成振荡器,如图5所示。图中C1、C2起稳定振荡频率、快速起振的作用。内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。振荡频率的选择范围为1MHz12MHz。图(5)振荡电路3.4显示电路显示器件有很多种,常用的有发光二极管,数码管,液晶显示器等,本文采用8位共阴极LED动态扫描显示,SN74HC273N输出所需字形,SN74HC273N选择字位。在动态方式中,逐个地循环地点亮各位显示器。如图所示: 数码管显示电路显示译码电路部分由P0口输出显示包含: 显示译码电路 显示译码电路3.5键控电路键盘是微机应用系统中使用最广泛的一种

15、数据输入设备,按照键盘按键的结构形式,可分为独立式键盘和矩阵式键盘。本文主要采用矩阵式键盘,此键盘控制电路主要是用于调整时间 4 软件设计4.1 基本任务 利用单片机系统设计电秒表计时器4.2 按键定义及显示标志1.设置按键S13,当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢计时。2.当停止计时时,按下S14键,可以设置秒数,按键S1-S10分别对应数字0-9;先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。按下S13键启动计时。3.设置按键S15,当S15按下时,数码管显示为“99”,秒表从新开始计时。4.3主程序框图 5 小结通过这次的课程

16、设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。参考文献:1、胡汉才,单片机原理及其接口技术(2版),清华大学出版社 2、单片机实验指导书3、张毅刚,彭喜元,孟升卫,刘兆庆 MCS-51

17、单片机实用子程序设计(第二版) 哈尔滨工业大学出版社 2003年4、孙育才,MCS-51系列单片微型计算机及其应用,东南大学出版社5、曹巧媛,单片机原理及应用教学、实践、设计指导,电子工业出版社6、谢自美,电子线路设计实验测试(2版),华中科技大学出版社7、 求是科技 单片机通信技术与工程实践 人民邮电出版社 2005年附录附录一 单片机印刷电路板原理图附录二 元件清单单片机主板型号元件号数量0.01F电容C21, C2220.1F电容C2, C3, C4, C5, C6, C7, C8, C9, C10, C17, C19, C25, C80, C81141K电阻R1, R2, R4, R6

18、, R7, R9, R10, R11, R12, R16, R17, R18, R19, R23, R28, R37, R39, R40, R41, R42, R43, R44, R45, R46, R47, R51, R53, R82, R85291N4148二极管D1, D2, D331N4729稳压二极管D82, D8322K电阻R31, R3622.2K电阻R9914.7K9针排阻RES214.7K dont fit it不焊接RES114.7F电容C23110K电阻R5, R13, R21, R30, R35, R38, R49, R50, R52, R59, R891110F电解电

19、容 C18,C97212MHz晶振U7, U15222pF电容C1, C15, C86, C87427电阻R48168电阻R93, R95274HC002输入4与非门U1174HC022输入4或非门U21100电阻R581220u/16V电解电容C161470电阻R20, R22, R24, R25, R26, R27, R29, R3488050PNP 三极管Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q1088550PNP 三极管Q1, Q2, Q11, Q124AT89S5151单片机U41ATmega48-8AVR单片机U391Bell无源蜂鸣器LS11型号元件号数量DAY

20、-44位数码管DS16, DS172Dpy Blue-CA数码管DS151Header 25.08mm2P端子P11Header 35.08mm3P端子P41Header 44-Pin单排针P11, P122Header 55-Pin单排针P131Header 5X25*2排线座P3, P212Header 1010-Pin单排针P9, P102Header 1515-Pin单排针P2, P82Header 2020-Pin单排针P5, P62LED0 GREEN绿色发光二极管DS80,DS14,DS1,DS3,DS5,DS7,DS10 7LED0 RED红色发光二极管DS2, DS4, DS

21、6,DS8, DS9,DS11, DS12, DS13,DS819LEDFR红外发光二极管DS191LM358双运放U101MC74HC245AN同相三态总线收发器U111SN74HC273N8D触发器U8, U92SRD-5VDC-SL-C5V继电器REALAY11SW6*6*9按钮KEY1, KEY2, KEY3, KEY4, KEY5, KEY6, KEY7, KEY8, KEY9, KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16,K1, K2, K3, K4, S421SW-DIP44*2 双排针S7, S282SW-DIP84*8 双排

22、针S11SW-SPDT3-Pin单排针S31SW-SPST2-Pin单排针S2, S6, S29, S80, S81, S946TEST1-Pin单排针J1, J2, J33TL0038BD38KHz红外接收头P71USBA型USB插座 J81附录三 程序代码#include #include#define uchar unsigned char#define uint unsigned int#define Font_code XBYTE0xefff /字符码写地址#define reg_code XBYTE0xdfff /字位码写地址#define key_addr XBYTE0xf7ff

23、 /读按键地址bit x=0;bit y=0;uchar key_n; uint m;uint s; sbit P12=P10; unsigned char const jian; unsigned char const dofly=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71; void delay(uchar x) uchar i; while(x-) for(i=0;i100;i+);void get_key(void) uchar temp; Font_code=0x00

24、; reg_code=0xfe; temp = key_addr & 0x0f; /第一列 if(temp=0x0e) delay(200); if(temp=0x0e) key_n=0; if(x=1)&(y=0) ) m=m%10;y=1; else m=(m/10)*10;y=0; if(temp=0x0d) delay(200); if(temp=0x0d) key_n=4; if(x=1)&(y=0) m=m%10+40;y=1; else m=(m/10)*10+4;y=0; if(temp=0x0b) delay(200); if(temp=0x0b) key_n=8; if(x

25、=1)&(y=0) m=m%10+80;y=1; else m=(m/10)*10+8;y=0; if(temp=0x07) key_n=12; s+; x=0; y=0; reg_code=0xfd; temp = key_addr & 0x0f; /第二列 if(temp=0x0e) delay(200); if(temp=0x0e) key_n=1; if(x=1)&(y=0) ) m=m%10+10;y=1; else m=(m/10)*10+1;y=0; if(temp=0x0d) delay(200); if(temp=0x0d) key_n=5; if(x=1)&(y=0) )

26、m=m%10+50;y=1; else m=(m/10)*10+5;y=0; if(temp=0x0b) delay(200); if(temp=0x0b) key_n=9; if(x=1)&(y=0) ) m=m%10+90;y=1; else m=(m/10)*10+9;y=0; if(temp=0x07)key_n=13; reg_code=0xfb; temp = key_addr & 0x0f; /第三列 if(temp=0x0e) delay(200); if(temp=0x0e) key_n=2; if(x=1)&(y=0) ) m=m%10+20;y=1; else m=(m/10)*10+2;y=0; if(temp=0x0d) delay(200); if(temp=0x0d) key_n=6; if(x=1)&(y=0) ) m=m%10+60;y=1; else m=(m/10)*10+6;y=0; if(temp=0x0b)key_n=10; if(temp=0x07)key_n=14; reg_code=0xf7; temp = key_addr & 0x0f; /第四列 if(temp=0x0e) delay(200); if(temp=0x0e) key_n=1; if(x=1)&(y=0) ) m=m%10+30;y=1; else m

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

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