2位数码管显示00-99的89c51单片机电子秒表设计 的程序和电路图

合集下载

基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】

基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】

基于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)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

两位数码管计时0-99 实验

两位数码管计时0-99 实验
该程序具有一定自由性,修改第一行的参数,就可以调节计时的速度。该 值越大,动态扫描每个数的循环次数越多,每个数字显示的时间就越长。该值 越小,动态扫描每个数的循环次数越少,每个数字的显示时间就越短。 注意:在使用定义字节命令伪指令的时候,如果一行写不下,或者为了美观想另起 一行书写,一定注意在新起的一行必须添加伪指令关键字“DB”。另外抄写程序的 学习者一定注意,标号后面的“:”一定不可以省,否则在编译程序的时候会报错。
{ P31=0; P2=a[y]; P30=1; P30=0; P2=a[x]; P31=1;
} } main() { for(i=0;i<100;i++) { b=i/10; //shiwei
c=i%10; //gewei xianshi(c,b); } }
4
单片机实验报告
上述两种编程语言编写程序的思路基本一致,都是通过修改程序中动态显示的 时长实现显示时长的调节。上述两个程序有一个共同的缺点,那就是无法特别准确 的定时。在计时不要求很准确的场合使用可以,但是在对计时准确性要求较高的场 合使用时,则不是很适合。如果要求显示准确性较高,例如秒表,可以采用定时器 中断的方式修改以上程序。
对于没有 Keil 编程软件的编程者,可以将如下代码存入 HEX 文件中,再将该 HEX 文件下载至单片机或导入仿真软件中。 程序 HEX 代码如下: :0300000002008576 :0C008500787FE4F6D8FD758107020000CA :02000000802E50 :100030007530007830B6640050061145053080F503 :1000400075300080F0E53075F00A84F53185F032C6 :100050007C0A7B0A7AFFC2B190B000C2B0E53293F5A0D2B100DAE7DB3E :10007000E3DCDF22C0F9A4B0999282F880908883F3

基于AT89C51单片机控制的数字秒表的设计

基于AT89C51单片机控制的数字秒表的设计

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单片机自身的特点决定的。

基于单片机的00秒-99秒的秒表设计

基于单片机的00秒-99秒的秒表设计

工程技术学院课程设计题目:用单片机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数码管原理及使用方法。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

标准文档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管脚。

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计
暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。
累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。
一、设计题目和要求:
题目三:秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位” 键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
·P3 8位、准双向I/O口,具有内部上拉电阻。
P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。
(2)控制信号线
·RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。
·EA/VPP 外部程序存储器访问允许信号EA.
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
三、设计内容:
了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。
(3)存储器

最新两位数码管循环显示00-99

最新两位数码管循环显示00-99

两位数码管循环显示
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电子时钟电路图和程序

at89c51电子时钟电路图和程序

采用定时中断方式编制的时钟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的定时器。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
(3)二次接通电源,电路依然不工作。
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程

51单片机秒表程序-00-99秒

51单片机秒表程序-00-99秒

#include <reg52.h>#define uchar unsigned char //宏定义用uchar代替unsigned char#define uint unsigned intsbit START=P1^0; //开始、停止键低电平有效sbit RST=P1^1; //复位键sbit SMGGW=P1^2; //用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定sbit SMGSW=P1^3;uchar tt;uint time; //此变量为时间uchar code table[]={ //此为数码管字模,对应0--90x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};void Delay(uint ms) //延时子函数{uint i,j;for(i=ms;i>0;i--)for(j=500;j>0;j--);}void Display() //显示子函数{uchar ge,shi;shi=time/10;ge=time%10;P0=table[ge];SMGGW=0;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定本程序为低电平数码管亮SMGSW=1;Delay(2);P0=table[shi];SMGGW=1;SMGSW=0;Delay(2);}void main(){P1=0xff;EA=1;ET0=1;TMOD=0x01;TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;while(1){if(START==0) //开始、停止{Delay(8);if(START==0){TR0=!TR0;while(!START) Display();}}if(RST==0) //复位{Delay(8);if(RST==0){time=0;while(!RST)Display();}}if(tt==20)tt=0;time++;if(time==99){time=0;}}Display();}}void timer0() interrupt 1{TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;tt++;}Welcome To Download !!!欢迎您的下载,资料仅供参考!。

51单片机秒表程序 00-99秒

51单片机秒表程序 00-99秒
}
{
uint i,j;
for(i=ms;i>0;i--)
for(j=500;j>0;j--);
}
void Display() //显示子函数
{
uchar ge,shi;
shi=time/10;
ge=time%10;
P0=table[ge];
SMGGW=0;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定本程序为低电平数码管亮
sbit SMGSW=P1^3;
uchar tt;
uint time;//此变量为时间
uchar code table[]={//此为数码管字模,对应0--9
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40};
void Delay(uint ms)//延时子函数
#include <reg52.h>
#define uchar unsigned char //宏定义用uchar代替unsigned char
#define uint unsigned int
sbit START=P1^0; //开始、停止键低电平有效
sbit RST=P1^1; //复位键
sbit SMGGW=P1^2;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定
TL0=0x00;
TR0=0;
while(1)
{
if(START==0)//开始、停止
{
Delay(8);
if(START==0)
{
TR0=!TR0;
while(!START) Display();

两位数码管循环显示00

两位数码管循环显示00

两位数码管循环显示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依次循环的汇编语言程序a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp equ 22h ;计数器数值存放内存位置star: mov temp,#0 ;初始化计数器,从0开始stlop: acall display;调用显示子程序inc temp;对计数器加1mov a,tempcjne a,#100,next ;判断计数器是否满100?mov temp,#0;满100就清零重新开始next: ljmp stlop;不满就循环执行;显示子程序display: mov a,temp ;将temp中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示acall d1ms ;显示162微秒setb p2.7;关闭个位显示,防止鬼影mov a,b_bit ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示acall d1ms ;显示162微秒setb p2.6;关闭十位显示,防止鬼影djnz r1,dplop ;循环执行250次djnz r0,dpl1 ;循环执行250X4=1000次ret;2+2X80=162微秒,延时按12MHZ计算D1MS: MOV R7,#80DJNZ R7,$RET;实验板上的7段数码管0~9数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end;如果是共阳数码管的显示代码numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H 两位数码管显示00--99依次循环实验设备JS100A,JS200,JS300等仿真器,实验板都可直接实验。

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

一、设计题目和要求: (1)二、设计目的: (2)三、设计内容: (2)四、课程设计心得体会 (26)五、参考文献 (27)六、课程设计指导教师评审标准及成绩评定 (28)附件1:秒表原理图(实际接线图) (30)附件2:仿真图1 (31)附件3:仿真图2 (32)一、设计题目和要求:题目三:秒表应用AT89C51的按时器设计一个2位的LED数码显示作为“秒表”:显示时刻为()()〜99s,每秒自动加1,设计个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从()开始计时。

任务安排:李座负责绘制电路原理图;梁宗林负责搜集资料及电子版整理;付忠林负责程序和仿真。

二、设计目的: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土)V且典型值为5V,最高工作频率为24MHz.AT89C51各部份的组成及功能:中断控制内部总线总线扩展控制器可编程串行口外部中断扩展控制POPl P2 P3 RXD TXD——1.单片机的屮央处置器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部份。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档