2位数码管显示00-99的89c51单片机电子秒表设计 的程序和电路图
- 格式:doc
- 大小:63.50 KB
- 文档页数:3
基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】工程技术学院课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化年级: 2009级学号: 20091447 20091414 20091444姓名:付忠林梁宗林李座指导教师:杨彦鑫日期: 7>2012年12月12日云南农业大学工程技术学院目录设计题目和要求 (3)设计目的 (4)设计内容 (5)课程设计心得体会 (21)参考文献 (22)课程设计指导教师评审标准及成绩评定 (23)附件 (24)一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。
6.掌握定时器、外部中断的设置和编程原理。
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
三、设计内容:了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。
AT89C51单片机的主要工作特性:??内含4KB的FLASH存储器,擦写次数1000次;??内含28字节的RAM;??具有32根可编程I/O线;??具有2个16位可编程定时器;??具有6个中断源、5个中断矢量、2级优先权的中断结构;??具有1个全双工的可编程串行通信接口;??具有一个数据指针DPTR;??两种低功耗工作模式,即空闲模式和掉电模式;??具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:中央处理器1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。
HEBEINONGJI摘要:秒表是一种常用的测时仪器,数字秒表是一种准确度比较高的计时仪器。
数字秒表在现代社会生活的各个领域里应用越来越多,如文体比赛、各种活动计时等。
本文主要研究如何用AT89C51单片机控制一块2片的七段数码管,数码管自动显示从00~99,然后反复循环,也可以99~00进行倒计时。
用C语言在Keil软件上编制程序代码,用Proteus软件对系统进行仿真。
关键词:七段数码管;AT89C51;C语言程序基于AT89C51单片雌制的数字秒表的设计苏州健雄职业技术学院赵素玲1控制要求使用AT89C51单片机控制一个2片的七段数码管,循环从00〜99进行自动显示。
在此时间是可以根据要求进行调整的,并不一定是间隔时间为1秒。
程序中延时子函数的延时时间的改变很容易就能进行时间长短的调整。
该程序还很容易实现从99〜00的倒计时,这种功能可以通过按钮开关的选择来实现,但是加上了按钮程序,程序就变得更复杂、更长。
由于篇幅限制在本文中没有使用按钮程序,所以倒计时的程序是单独给出的。
系统的具体要求有以下四点:(1)以AT89C51芯片为核心控制器,加上外围辅助电路,设计出系统仿真电路图;(2)根据要求用Keil软件编写出C语言程序代码;(3)用一个2位的七段数码管自动的从00-99正计时循环显示;(4)用一个2位的七段数码管自动的从99-00倒计时循环显示。
2系统硬件电路设计2.1系统仿真电路图设计图1电路仿真图系统仿真电路图主要由AT89C51单片机芯片、电源、地、石英晶体振荡电路、复位电路、两片七段共阴极数码管组成。
两个电容C2、C3(30PF)与Xl(石英晶体)组成了石英晶体振荡电路。
电阻R1(1K)、电容C1(22UF)构成复位电路。
P1口控制2位七段数码管,P1口输出字形码,由于P1口作为输出口必须接上拉电阻。
若是选用其他的三个口作为输出口则不需要接上拉电阻,这是由AT89C51单片机自身的特点决定的。
工程技术学院课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化年级: 2009级学号: 20091447 20091414 20091444 姓名:付忠林梁宗林李座指导教师: 杨彦鑫日期: 2012年12月12日云南农业大学工程技术学院目录一、设计题目和要求:................................................................................... 错误!未定义书签。
二、设计目的:ﻩ错误!未定义书签。
三、设计内容:ﻩ错误!未定义书签。
四、课程设计心得体会ﻩ错误!未定义书签。
五、参考文献ﻩ错误!未定义书签。
六、课程设计指导教师评审标准及成绩评定............................................... 错误!未定义书签。
附件1:秒表原理图(实际接线图)............................................................ 错误!未定义书签。
附件2:仿真图1ﻩ错误!未定义书签。
附件3:仿真图2ﻩ错误!未定义书签。
一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。
标准文档9创新实践实训报告学院信息电子技术学院专业电子信息工程班级14学籍号姓名指导教师蒋野2017年06月29日单片机控制秒表电路一、电路工作原理1.工作原理用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。
为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。
如图。
本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。
2.元器件作用(1)STC89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
(2)时钟电路作用是为电路提供唯一的时钟信号。
(3)复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。
(4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99.(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。
二、程序流程图主程序流程图三、检测安装与调试1.元件检测共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。
两位数码管循环显示
00-99
两位数码管循环显示00-99 现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分。
数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。
首先我们来介绍两位共阳数码管的单片机驱动方法,
电路如下图:
P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。
因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。
下面我们再介绍一种共阴数码管的单片机驱动方法,电路如下图:
+5V通过1K的排阻直接给数码管的8个段位供电,P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,相应的位可以吸入电流。
单片机的P0口输出的数据相当于将数码管不要显示的数字段对地短路,这样数码管就会显示需要的数字。
共阴数码管的硬件更简单,所以在批量生产时,硬件开销小,节省PCB面积,减少焊接工作量,降低综合成本,所以采用共阴数码管更有利于批量生产,现在销售的试验板都是采用共阴数码管了。
以下是用AT89C51实验板的两位数码管显示00~99依次循环的汇编语言程序。
采用定时中断方式编制的时钟AT89c51电子时钟电路图:位选段选功能1、开机时,显示12-00-00时间,开始计时;2、P0.0/AD0控制“秒”的调整,每按一次加1秒;3、P0.1/AD1控制“分”的调整,每按一次加1分;4 、P0.2/AD2控制“时”的调整,每按一次加1个小时;源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.0MINITEK BIT P0.1SECONDK BIT P0.2DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHLJMP INT_T0 ;2ms定时中断程序入口地址;*********************************初始化************************************** START: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV SP,#50H ;设置堆栈指针MOV TEMP,#0FEH ;多余LCALL DISPMOV TMOD,#01H ;定时器方式1,16位MOV TH0,#0F8H ;定时器初值MOV TL0,#30H ;定时器初值SETB TR0 ;启动计数SETB ET0 ;开T0中断SETB EA ;开总中断;********************************主程序*************************************** WT: MOV P0,#0FFH ;准备从P0口采集数据JB SECONDK,NK1 ;扫描秒按键LCALL DELY10MS ;10ms延时JB SECONDK,NK1 ;再扫描秒按键,目的是去抖INC SECONDMOV A,SECONDCJNE A,#60,NS60MOV SECOND,#00H ;秒按键计数SECONDNS60: LCALL DISP ;显示数据准备,等待中断显示JNB SECONDK,$ ;秒按键=0,等待秒按键弹起NK1: JB MINITEK,NK2 ;扫描分按键LCALL DELY10MS ;10ms延时JB MINITEK,NK2 ;再扫描分按键,目的是去抖INC MINITEMOV A,MINITECJNE A,#60,NM60MOV MINITE,#00H ;分按键计数NM60: LCALL DISP ; 显示数据准备,等待中断显示JNB MINITEK,$ ;分按键=0,等待分按键弹起NK2: JB HOURK,NK3 ;扫描时按键LCALL DELY10MS ;10ms延时JB HOURK,NK3 ;再扫描时按键,目的是去抖INC HOURMOV A,HOURCJNE A,#24,NH24MOV HOUR,#00H ;时按键计数NH24: LCALL DISP ; 显示数据准备,等待中断显示JNB HOURK,$ ;时按键=0,等待时按键弹起NK3: LJMP WT;********************************* 10(5?)ms延时******************************* DELY10MS: MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RET;*******************************时钟显示数据准备****************************** DISP: MOV A,#DISPBUF ;时钟数据存放起始地址40H ADD A,#8DEC AMOV R1,AMOV A,HOUR ;送入时数据(0-24)MOV B,#10DIV ABMOV @R1,A ;时数据高位送40HDEC R1MOV A,BMOV @R1,A ;时数据低位送3FHDEC R1MOV A,#10MOV @R1,A ;数据10“-”送3EHDEC R1MOV A,MINITE ;送入分数据(0-60)MOV B,#10DIV ABMOV @R1,A ;分数据高位送3DHDEC R1MOV A,BMOV @R1,A ;分数据低位送3CHDEC R1MOV A,#10MOV @R1,A ;数据10“-”送3BHDEC R1MOV A,SECOND ;送入秒数据(0-60)MOV B,#10DIV ABMOV @R1,A ;秒数据高位送3AHDEC R1MOV A,BMOV @R1,A ;秒数据低位送39HRET;*********************时钟走时与循环扫描显示(2ms定时)************************ INT_T0:MOV TH0,#0F8H ;送定时器初值,0F8HMOV TL0,#30H ;送定时器初值,01HPUSH PSWPUSH ACC;————————————————送显部分—————————————————MOV A,#DISPBUF ;A=时钟数据存放起始地址40HADD A,DISPBIT ;每进一次中断DISPBIT+1MOV R0,AMOV A,@R0 ;时钟数据地址循环+1MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P1,A ;送段选数据MOV A,DISPBITMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,A ;送位选数据;———————————时钟数据地址偏移循环+1部分—————————————INC DISPBIT ;每进入一次中断,DISPBIT+1,最大为7 MOV A,DISPBITCJNE A,#08H,KNAMOV DISPBIT,#00H ;进入8次中断,DISPBIT=0 ;———————————————走时部分—————————————————KNA: INC T2SCNTA ;每进入一次中断,T2SCNTA +1,最大为99 MOV A,T2SCNTACJNE A,#100,DONEMOV T2SCNTA,#00H ;进入100次中断,T2SCNTA =0INC T2SCNTB ;每进入一次中断,T2SCNTB +1,最大为5 MOV A,T2SCNTBCJNE A,#05H,DONE ; T2SCNTB不为5,中断返回MOV T2SCNTB,#00H;满1秒作以下走时操作:INC SECONDMOV A,SECONDCJNE A,#60,NEXTMOV SECOND,#00HINC MINITEMOV A,MINITECJNE A,#60,NEXTMOV MINITE,#00HINC HOURMOV A,HOURCJNE A,#24,NEXTMOV HOUR,#00HNEXT: LCALL DISPDONE:POP ACCPOP PSWRETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴LED TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH ;片选END。
《接口及控制技术》课程设计报告课程设计题目:秒表姓名:专业班级:指导教师:成绩:时间:2010-12-10一、设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
二、实验原理题目难点在于通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。
在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。
MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或个LED 和条形图显示器。
其引脚图及引脚功能参见有关参考资料。
三、实验目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”K1按键和一个“复位”K2按键。
按键K1同时具有“暂停”功能。
按键说明:按“开始”K1按键,开始计数,数码管显示从00开始每秒自动加一;再次按K1按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管显示00。
六、电路原理仿真图将硬件连线按上图所示连接,该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片AT89C51中的P1.0管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能.;定时器T0作为每秒加1的定时器。