基于单片机的秒表课程设计_第1页
基于单片机的秒表课程设计_第2页
基于单片机的秒表课程设计_第3页
基于单片机的秒表课程设计_第4页
基于单片机的秒表课程设计_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的秒表课程设计姓名:班级:学号:专业:指导老师: 年 月 日 目录1、总体设计方案简介 1.1设计课程任务 1.2系统分析 1.3系统方案 1.4方案论证 2、硬件设计 2.1控制芯片的介绍 2.2硬件接线 2.2.1硬件接线接口 2.2.2硬件接线图3、软件设计 3.1程序设计思路 3.2流程图 3.3源程序 3.4仿真结果4、元件清单5、心得体会基于单片机的秒表课程设计摘要本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字式秒表的硬件电路的。电子秒表电路主要由at89s51单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八段数码显示和计时,能

2、通过控制电路控制时间的暂停和开始。关键字:at89s51 数码管 最小系统1总体设计方案简介1.1设计课题任务 设计一个具有特定功能的数字式秒表。用at89c52设计一个2位led数码显示“秒表”,显示时间为00-59,另设计一个“开始”按钮和一个“复位”按钮。按键说明:按“开始”按键,开始计数,数码管从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00。1.2系统分析 设计的电路主要是能多次计时,计时的多少通过显示电路出来,设计框图如图所示;控制部分技术和存储部分显示部分1.3系统方案利用at89c52单片机设计数显定时器。此方案采用at89c52单片机系统来实现。at89c52

3、芯片内含8kb的eeprom,不需要外扩展存储器,可是系统整体结构更为简单。设计框图如图所示;外部控制开关at89c52单片机七段数码显示1.4方案论证此方案是以at89c52芯片为中心控制系统,可实现计时、清零等功能,大大提高了系统的智能化,也是的系统所测结果精度大大提高。所以此方案可行。2硬件设计2.1控制芯片的介绍 at89s52是一种低功耗、高性能的片内含有4kb快闪可编程/擦除只读存储器,的8位cmos微控制器,使用高密度、非易失存储技术制造,并与80s52引脚和指令系统完全兼容。主要性能:与mcs-51微控制器 产品系列兼容。片内有4kb可在线重复编程的快闪擦写存储器存储数据保存时

4、间为10年宽工作电压范围:vcc可为2.7v到6v全静态工作:可从0hz至16mhz程序存储器具有3级加密保护128*8位内部rab32条可编程i/o线两个16位定时器/计数器中断结构具有5个中断源和2个优先级可编程全双串行通道空闲状态维持低功耗和掉电状态保存存储内容2.2硬件接线2.2.1硬件接线端口时钟引脚:xtal1和xtal2与内部的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。p2口:p2.6和p2.7端口分别控制数码管的十位和个位供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5v通过三

5、极管给数码管相应的位供电,这是只要po口送出数字的显示代码,数码管就能正常显示数字。po口:po.o-po.6端口用排线连接到数码管显示模块区域中的a-g端口上;po.o对应着a,.,po.6对应着g。p0.7接高电平。p1.0接“开始”按键2.2.2硬件接线图(见附录图)3软件设计3.1程序设计思路在硬件的基础上,可以通过软件完成数字式秒表的设计。我先用了矩阵键盘上的任意两个独立按键作为控制键。用一个键去控制计时的开始;用一个键做计时的清零按键。用按键扫描的方式判断按键是否按下。用动态显示的方法扫描秒表的计数,显示所记下的数。用中断的方法来进行计时加1,每10ms中断一次进行重新赋值并加1,

6、当10ms单元达到10,就令该单元赋0,并让100ms单元加1,以此类推。3.2流程图1主程序流程图 程序初始化开个中断p1.0=1关定时器0,1调用显示子程序p1.0=0开定时器0,1程序开始3.3源程序first equ p2.7 ;第一位数码管的位控制second equ p2.6 ;第二位数码管的位控制sec equ 00h ;1s到的标记ualue equ 21h ;秒计数器count equ 22h ;软件计数器dispbuf1 equ 5eh ;5eh是显示缓冲区dispbuf2 equ 5fh ;5ef是显示缓冲区hidden equ 10 ;消隐码在字型码表的第10位org

7、0000hljmp start1org 000bhljmp int_t0org 0100hstart1:jb p1.0,start1ljmp startstart:mov sp,#5fh ;设置堆栈指针初值mov value,#0 ;秒计数器mov count,#0 ;软件计数器mov dispbuf1,#0 ;显示缓冲区 填充0mov dispbuf2,#0 ; 显示缓冲区 填充0mov tmod,#01hmov th0,#0ech ;取60536的高8位,60536=65536-10000*6/12定时器初值,定时时间10msmov tl0,#98h ; 取60536的高8位,60536=

8、65536-10000*6/12定时器初值,定时时间10mssetb et0 ;开t0中断setb tr0 ;定时器t0开始运行clr secsetb ea ;开总中断loop:jbc sec,next ;1s到,消除1s到的标记lcall disp ;1s未到,调用显示程序sjmp loop ;继续循环next:mov a,valve ;获得秒的数值mov b,#10div ab ;二进制转化为十进制,十位和个位分别送显示缓冲区jz next1 ;如果a中值是0,高位0消隐sjmp next2 ;否则直接送去显示next1:mov a,#hiddennext2:mov dispbuf1,am

9、ov dispbuf2,b ;个位送显示缓冲区lcall displjmp loop ;主程序到此结束disp: : 显示子程序push acc ;acc入栈push psw ;psw入栈mov a,dispbuf1 ;取第一个带显示数mov dptr,#disptab ;字型表首地址movc a,a+dptr ;取字形码mov p0,a ;将字型码送p0位clr first ;开第一位显示器口lcall delay ;延时5mssetb first ;关闭第一位显示器(开始准备第二位的数字)mov a,dispbuf2 ;去显示缓冲区的第二位mov dptr,#disptabmovc a,a

10、+dptrmov p0,a ;将第二个字型码送p0口clr second ;开第二位显示器lcall delay ;延时setb second ;关第二位显示器pop pswpop accret ;显示程序结束delay:;以下是延时程序push psw ;5ms延时程序setb rsomov r7,#50d1: mov r6,#50d2: djnz r6,$djnz r7,d1pop pswretdisptab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh;显示字型表,最后一个offh是消隐码,它是表中的第11位元素int_t0:

11、 ;定时中断处理push accpush psw ;中断保护mov th0,#oechmov tlh,#98h ;定时计数器重置初值inc count ;软件计数器加一mov a,countcjne a,#100,int_retmov count,#0 ;计到100,软件计数器清零setb sec ;将秒标志置位一inc valve ;秒的值加一mov a,valvecjne a,#60,int_retmov valve,#0int_ret: pop pswpop accretiend4元件清单元件名数量at89c521八段数码管2npn三极管212m晶振1按键2330电阻9200电阻1无极性电容(30pf)2电解电容(10u/25v)15心得体会 本文主要从硬件方面说明设计的总体思路和设计的实现过程,预期的设计目的是:能够实现秒表的基本功能,正常显示计数。 在设计中有

温馨提示

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

评论

0/150

提交评论