9999秒计数单片机设计.doc_第1页
9999秒计数单片机设计.doc_第2页
9999秒计数单片机设计.doc_第3页
9999秒计数单片机设计.doc_第4页
9999秒计数单片机设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计北海职业学院课程设计报告课 程 名 称:单片机技术课程设计1设 计 题 目: 9999秒计时器设计 系 别: 电子信息工程系 专 业: 应用电子技术 学 号: 20100503232 姓 名: 黄富弟 指 导 教 师: 张志杰 目 录第1节 引 言2第2节 9999秒计时器硬件设计3第3节 系统的软件设计7实训感受12第1节 引 言单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。本秒表/时钟设计就是利用单片机的上述优点,采用目前市场上性能价格比较高的MCS-52单片机设计而成的最小系统。它在实际生活中具有广泛的应用。例如:工业生产中的定时启停自动化设备、学校中上下课铃定时控制、农村广播站每天早中晚广播的自动定时控制均可采用本仪器。1.1 秒表的概述 秒表是电器制造,电国,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。目前所使用的电秒表大多是指针式或集成电路型的,结构相对复杂、测试功能单一。但我们这次设计的秒表比较简单,所以使用很简单。1.2 本设计任务 用单片机实现四位数码管动态扫描显示,要求9999秒倒计时或0到9999秒正计时。用proteus做仿真图,并编写程序,最后做实物图实现其功能。1.3 系统主要功能 9999秒计时器主要是用在精确计间方面。比如:学校里的校运会、答题倒计时等方面。它通过一个按键来控制它的开和停,它能及时有效的记录瞬间时间。而且它在我们生活中运用很广泛,希望我们做的这个计时器对以上方面有所帮助。它也许比较简单,而且有可能达不到很多人的要求,但我相信通过我们过一步的学习,我们一定会制造出更好的系统,为社会大众服务。第2节 9999秒计时器硬件设计2.1 系统的硬件构成及功能9999秒计时器的原理框图如图1所示。它由以下几个部件组成:单片机AT89C51、两个静态数码显示、一个按钮等其它组件。 图1 99秒计时器系统原理框图 系统板硬件连线 (1 把“单片机系统”区域中的P0.0/AD0P0.6/AD6端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ae端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.6/AD6对应着e。 (2 把“单片机系统”区域中的P2.0/A8P2.6/A14端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ae端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,P2.6/A14对应着e。 (3 把“单片机系统“区域中的P3.7/RD用导线连接到”独立式键盘“区域中的SP1端口上; 22 AT89C51单片机及其引脚说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。图2 AT89C51单片机此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。1 主要特性:8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2管脚说明:VCC:供电电压GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表1所示:表1 P3口功能说明P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读先通)P3口同时为闪烁编程和编程校验接收一些控制信号。第3节 系统的软件设计本系统的软件系统主要可分为主程序、定时计数中断程序二大模块。下面对部分模块作介绍。31 系统主程序设计 系统主流程图T0服务程序处理:在正常计时状态下,若按下P1.1口按键,则进行时钟 /秒表功能的转换,转换后计时从开始。当按下P1.2口的按键时,可实现清0、计时启动、暂停功能。中断返回处理SEC并显示SEC=0SEC=10吗?SEC加1TCNT=0TCNT=99?TCNT加1T0中断入口 第4节 应用程序编写:SECONDEQU30HTCOUNTEQU31HKCOUNTEQU32HKEYBITP3.7ORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVDPTR,#TABLEMOVP0,#3FHMOVP2,#3FH ;开始,数码管显示00MOVSECOND,#00HMOVTCOUNT,#00HMOVKCOUNT,#00HMOVTMOD,#01H ;定时器0工作在方式1MOVTL0,#(65536-50000)/256MOVTH0,#(65536-50000) MOD256K1:JBKEY,$ ;等待按键LCALLDELAYJBKEY,$MOVA,KCOUNTCJNEA,#00H,K2 ;判断按键次数SETBTR0 ;第1次按键,启动定时器MOVIE,#82HJNBKEY,$INCKCOUNT ;按键抬起,按键次数值加1LJMPK1K2:CJNEA,#01H,K3CLRTR0 ;第2次按键,关闭定时器MOVIE,#00HJNBKEY,$INCKCOUNT ;按键抬起,按键次数值加1LJMPK1K3:CJNEA,#02H,K1 ;第3次按键,返回初始状态JNBKEY,$LJMPSTARTINT_T0:MOV TH0,#(65536-50000)/256MOV TL0,#(65536-50000) MOD 256INCTCOUNTMOVA,TCOUNTCJNEA,#2,I2 ;是否计够0.1秒MOVTCOUNT,#00HINCSECONDMOVA,SECONDCJNEA,#100,I1 ;是否计够10秒MOVSECOND,#00HI1:MOVA,SECONDMOVB,#10DIVABMOVCA,A+DPTR ;显示时间MOVP0,AMOVA,BMOVCA,A+DPTRMOVP2,AI2:RETITABLE: DB 3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDELAY:MOVR6,#20D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETEND实训感受 这次的单片机应用系统设计对我们来说真的好难哦,只上了一个学期的课,只学了理论,从未接触任何实践,程序也还没完全得心应手,甚至可以说一些小的程序编写可能还要花费我们很多时间。突然说要自己亲手设计一个应用系统,一下子感觉实在难啊,根本不知道从何下手。后来实在没办法,只有去网上查找相关的设计或者到书上去找例子,从而来让自己有个如何去做的思路。通过在网上和书上很多例子的参考,基本了解了设计报告的结构和写法,同时也让我知道了单片机的功能真的是如此的大,几乎应用于我们身边的每时每刻。这次我主要的设计是一个99秒计时器,通过对按键来决定秒表的开停,超过99秒就会自动清“0”,设计原理很简单。这次主要参考了网上的一个实例,再加上了一些自己的补充。我主要针对了这个设计的原理和程序的编写,从而来更好的会习设计的方法和创新。虽然现在讲创新很难,但是相信对设计看多了,也安全熟悉了,讲创新肯定也就不会再难。程序对我们来说有点长,对于现在的我来说肯定编不出来,所以主要的还是以看懂为主。根据每个程序的功能各不相同来使程序简化。其实我们平时不懂就应该自己去学习去弄明白,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论