51单片机定时器数码管30秒倒计时(三个按键控制开始暂停复位)
基于51单片机的可预置分秒倒计时装置
1.设计方法本次课程设计的题目是设计并实现可编程倒计时装置。
具体要求是按秒倒计时并键盘预置分、秒各两位数,键控启动计时,数码管显示倒计时;计时器归零时输出一音频信号。
根据实验要求选用AT89C52单片机作为最基本的部件,包括数码管部分,蜂鸣器部分,矩阵键盘部分等几大模块,以下依次进行介绍。
1.1 硬件简介(1)AT89C52AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。
引脚图如下:图一PDIP封装的AT89C52引脚图该单片机的功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)为供电端口,接+5V电源的一端,GND(20脚)为接地端,接地。
P0~P3为可编程通用I/O 脚,在本设计中,P0端口(32~39 脚)被定义为数码管数据输入端口,分别与数码管的相应功能管脚相连接。
P2端口外接一个74LS373对控制信号进行锁存,然后从P2口的低四位输出到数码管的片选端,进行对四位数码管的选择。
P3口中的P3.0接蜂鸣器的使能端,控制蜂鸣器的选通。
(2)时钟振荡器AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
倒计时秒表
单片机课程设计课题:倒计时秒表系别:电气与控制工程学院专业:姓名:学号:成绩:河南城建学院2018年01月3日目录一, 设计目的 (2)二,设计任务及要求 (2)三,方案设计 (2)四,硬件设计 (3)五,软件设计 (6)六,仿真及调试 (6)七,设计总结 (8)参考文献 (9)附录: (9)一, 设计目的通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。
通过做倒计时秒表这个题目,达到对所学知识的消化、理解并提高解决问题的能力的目的。
任选一款51单片机来做这个倒计时秒表,显示方式可以自选,成品必须可以实现正常秒表的所有功能,包括启动、暂停、复位等,可以自由设定倒计时时间,并进行倒计时。
做好之后可以扩展功能,在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。
二,设计任务及要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。
三,方案设计倒计时数字秒表的Array设计主要考虑以下几个问题:一,LED如何显示数字0—9;二,如何用单片机来控制LED的显示;三,单片机最小模式下的设计。
处理好这些问题此设计才能完整,为此必须先了解LED的显示原理和接线方图1系统结构框图法,再了解单片机的组成原理和控制方法。
硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。
系统结构框图如图1。
四,硬件设计1)CPU部分如图2所示XTAL1与XTAL2跟时钟振荡模块链接P0.0-P0.7与排阻相连,做上拉电阻P1.2口是“设置模式”num10,num20,num30,num50,num100P1.1口是“开始”倒计时端口P1.0口是“暂停”口P2.3口是给轰鸣器送触发信号口图2 CPU引脚接图2)时钟振荡模块时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个20pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。
数电课程设计-30秒倒计时器综述
30秒倒计时计数器设计——数字电子计数基础课程设计学院:计算机学院专业班级:通信工程10-2班时间:2013年1月7日目录设计要求 (3)正文一、倒计时器组成及原理 (3)1.1倒计时计数器组成 (3)1.2工作原理 (3)二、拟定设计方案 (4)2.1用Multisim进行仿真设计 (4)2.2设计实现数码管显示 (4)2.3设计555定时振荡实现秒振荡发生功能 (4)2.4设计实现减法计数功能 (5)2.5设计实现二位数减法计数功能 (5)2.6设计实现反馈电路实现30秒计数功能 (5)2.7设计实现控制电路实现启动、清零/复位和暂停/继续计数控制电路 (5)2.7.1清零/复位电路 (5)2.7.2暂停/继续计数电路 (6)2.7.3启动电路 (7)2.8设计实现闪烁报警电路 (8)三、功能说明总结 (9)四、课程设计小结 (9)参考文献 …………………………………………………………………………………10 附录:一、电路原理图 .................................................................................11 二、元器件明细表 (11)设计要求:设计30秒倒计时计数器。
30秒倒计时器的设计功能要求包括: 1、具有30秒倒计时功能;2、设置外部操作开关,控制计时器的直接清零/复位、开始和暂停/连续计数功能;3、计时器计时间隔为1秒;4、计时器递减计时到零时,数码显示器不灭灯,保持并闪烁光电报警。
5、计时器暂停计数时,数码管闪烁提醒;正文:一、倒计时器组成及原理1.1倒计时计数器组成倒计时计数器选用TTL 集成电路,主要由秒定时振荡发生器、减法计数器、译码器、七段数码显示器、控制电路、闪烁报警电路等组成,在电路工作过程中,电路能够通过控制器实现开始计数、清零/复位、暂停/继续计数等功能,在倒计时结束保持00状态并不断闪烁提示报警,原理图如下:倒计时计数器原理组成框图秒定时振荡 发生器减法计数器 数码管译码器 七段数码管显示控制电路闪烁报警电路图11.2工作原理当电路工作时,由555定时器组成多谐振荡器,选取适当的电容使振荡周期为1s;用两片减法计数器芯片级联组成二位数计数器,用七段数码管显示计数;控制电路通过控制减法计数器的控制端实现对电路保留、启动、清零/复位和暂停/继续计数功能的控制;利用JK 触发器的翻转状态特性和译码器BI/RBO端的控制实现闪烁报警功能。
单片机30秒倒计时
天津工业大学电子CAD课程设计报告书三、总体方案)本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现30秒倒计时程序的编写,包括利用中断实现1秒的定时及30秒的倒计时。
具体设计:通过AT89C51型号单片机,由P0 I/O引脚分别控制7SEG–MPX2–CA型号数码管,通过单片机的和控制选通数码管控制十位和个位,达到显示30秒倒计时的目的。
30秒倒计时,到0时1KHZ 声音报警,LED 2 秒闪烁一次。
4 秒后声光停图1 30秒倒计时总体电路设计硬件设计方法AT89C51的芯片概述AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其工作电压在-5V,一般我们选用+5V电压。
外形及引脚排列如图2所示:AT89C51主要特性图2:AT89C51的核心电路框图。
LED数码管显示器概述本设计中采用的是7SEG–MPX2 –CA型号7段共阳数码管,它是一种半导体发光器件,其基本单元是发光二极管。
实物如图3所示:图3 7SEG–MPX2–CA型号数码管图5 程序框图软件设计方法;定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。
(2)12M的晶振每秒可以产生1M个机器周期,1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。
单片机课程设计-30秒倒计时
《30秒倒计时计时器》课程设计专业班级:电子信息科学与技术3班姓名:韩飘飘(080212131)熊元甲(080212132)蔡正军(080212133)指导教师:郭玉设计时间:2013-2014学年第二学期物理与电气工程学院2014年5月28日目录题目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1目录,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2第一章方案论证,,,,,,,,,,,,,,,,,,,,,,,,,,,,3 1.1课程设计的目的和要求,,,,,,,,,,,,,,,,,,,,3 1.2总体设计,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4 第二章硬件设计,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4 2.1CPU部分,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4 2.2 LED数码管显示器概述,,,,,,,,,,,,,,,,,,,,5 2.3其他元器件介绍及参数选择,,,,,,,,,,,,,,,,,7第三章软件设计,,,,,,,,,,,,,,,,,,,,,,,8第四章4.1实验调试及结果(照片),,,,,,,,,,,,,,94.2 心得体会,,,,,,,,,,,,,,,,,,,,,,,,,,,,9附录A:软件程序,,,,,,,,,,,,,,,,,,,,,,,,,10附录B:参考文献,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12第一章方案论证1.1课程设计目的和要求(1)目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。
课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。
单片机+数码管简单秒表程序,带停止启动复位
单片机+数码管简单秒表程序,带停止启动复位p0 口是数码管的位选入口,P2 口是数码管的段选用4 位一体的数码管,P3.0 P3.1 P3.2 分别是启动停止和复位按钮#include #define uchar unsigned char#define uint unsigned int#define DATA P2sbit start=P3;sbit stop=P3;sb it reset=P3 ;//---------启停标志-----bit SAT=0;bit RST=0;//------------数码管码表----------uchar tab[10]={0x3F, 0x06, 0x5B, 0x4F,0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};//------------uint time=0; //时间uint cnt=0; //计数//-------------void delay(int k){while(k--);}void startkey(){static uchar i,j;if(start==0){if(i==0){j++; if(j>3){ if(start==0){i=1;j=0;SAT=1;}}}}else{i=j=0;}}void stopkey(){static uchar i,j; if(stop==0){if(i==0){j++;if(j>3){ if(stop==0){i=1;j=0; SAT=0;}}}}else{i=j=0;}}void resetkey(){static uchar i,j; if(reset==0){if(i==0){j++; if(j>3){ if(reset==0){i=1;j=0; RST=1;}}}}else{i=j=0;RST=0;}}//---------数码管显示00.0-------void shownumber(int num) {DATA=tab[num%10];P0=7;delay(100);DATA=0x80;P0=6;delay(100);DATA=tab[ num%100/10];P0=5;delay(100);DATA=tab[num/100];P0=4;delay(100);}//---------定时器初始化ˉ---------void time0_init(){TMOD=0x01;TH0=(65536-18348)/256;TL0=(65536-18348)%256;EA=1;ET0=1;}void T0_time()interrupt1{TH0=(65536-18348)/256;TL0=(65536-18348)%256;cnt++;if(cnt==5){time++;cnt=0;}}voidmain(void){delay(50000);time0_init();while(1){shownumber(time);if(SAT==1)TR0=1;if(SAT==0)TR0=0;if(RST==1){TR0=0;SAT=0;time=0;}startkey();stopkey();rese tkey();}}tips:感谢大家的阅读,本文由我司收集整编。
基于mulitisim和proteus的30秒倒计时设计
内容摘要此三十秒倒计时具有如下功能:启动、暂停、复位、自动倒计时到00时回到30并停止倒计时。
分为控制模块、计数模块、显示模块。
主要用到的器件有:555定时器、74LS192计数器、74LS48译码器、与非门、与门、共阴数码管等。
此设计器设计时,采用模块化得设计思想,使设计起来更加简单、方便、快捷。
关键词:555定时器74LS192 计数器译码器。
目录第一章设计题目及要求 (3)第二章设计概要 (3)第三章具体实施办法 (3)第四章总电路图 (9)第五章仿真电路图 (10)第六章总结与体会 (11)第一章设计题目及要求设计题目:30秒倒计时器的设计。
设计要求:(1)具有显示30s 倒计时功能:用两个共阴数码管显示,其计时间隔为1s。
(2)分别设置启动键和暂停/继续键,控制两个计时器的直接启动计数,暂停/继续计数功能。
(3)设置复位键:按复位键可随时返回初始状态,即计时器返回到24s。
(4)计时器递减计数到“00”时,计时器跳回“30”停止工作。
(5)用Mulitisim 10.0进行仿真。
第二章设计概要1.题目剖析及设计构想:30秒倒计时,首先我们想到了用单片机进行设计,但由于软件本身更适合设计数字电路,因此我们采用数字电路进行设计。
我们将其分为:(1)、控制模块,即控制倒计时器的启动、停止、复位等功能。
(2)、计数模块,实现置数和倒计时模块。
(3)、译码及显示模块,将计数器的工作状态译码并在数码管上进行显示。
2、总体设计方案当____LD=l,CR=0时,若时钟脉冲加入到CPU端,且CPD=1,则计数器在预置数的基础完成加计数跳变脉冲;当加计数到9时,____C O端进位跳变。
若时钟脉冲加入到CPD端,且CPU=1,则计数器在预置数的基础上完成减计数功能,当减计数到0时, ____BO端借位跳变。
74LSl9置数为(0011 0000)2=(30)l0。
计数原理是:只有当低位____BO端发出借位脉冲时,高位计数器才作减计数。
51单片机秒表计时(protues)
51单片机秒表计时器目录摘要 (3)一、实训目的 (3)二、实训设备与器件 (3)(1)实验设备 (3)(2)实训器件 (3)三、实训步骤与要求 (4)(1)要求 (4)(2)方法 (4)(3)实训线路分析 (4)(4)软件设计 (4)(5)程序编制 (4)四、硬件系统设计 (4)五、软件系统设计 (5)六、系统调试 (9)七、实训总结与分析 (10)八、参考资料: (11)九、附录 (12)摘要:秒表是由单片机的P0口和P2口分别控制两个数码管,使数码管工作,循环显示从00—59。
同时,用一个开关控制数码管的启动与停止,另外加上一个复位电路,使其能正常复位,通常还使用石英晶体振荡器电路构成整个秒表的结构电路。
一、目的(1)利用单片机定时器中断和定时器计数方式实现秒定时。
(2)通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。
(3)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。
(4)进一步学习单片机开发系统的整个流程。
二、元件(1)实训设备:单片机开发系统、微机、万用表、电烙铁等。
(2)实训器件:名称数量7段数码管 2电阻10k 1电阻1k 8键盘开关 1电容10微法 1电容30皮法 2晶振12M 189C51 1万能板 1导线若干三、步骤(1)要求:利用实训电路板,以2位LED右边1位显示个位,左边1位显示十位,实现秒表计时显示。
以一个按键开关实现启动、停止、清零等功能。
(2)方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器0方式1计数,实现00--59计数。
(3)实验线路分析:采用实训电路板,其原理图参见附录。
两个7段LED 数码管分别由单片机的P0口和P2口控制,使数码管显示从00—59的字样。
用一个开关控制数码管的启动与停止,另外加上一个复位电路,使其能正常复位。
51单片机秒表定时器
sbit b138 = P2^3; //定义译码器输入端B 在 P2.3 管脚上
sbit c138 = P2^4; //定义译码器输入端C 在 P2.4 管脚上
sbit scl=P2^0; //24C02串行时钟
sda=write_data&0x80;
scl=1;
nop5;scl=0;nop5;
write_data<<=1;
}
sda=1; //释放sda,等待24c02将其拉高确定写入
scl=1; //在scl上升沿中检测sda
nop5;
ack=sda;
scl=0; //完成写操作的第九个时钟周期
switch(site)
{
case 1: numcode=0;a138=1;b138=1;c138=1;break;
// case 2: numcode=0;a138=0;b138=1;c138=1;break;
case 3: numcode=0;a138=1;b138=0;c138=1;break;
while(temp!=0xff)
{
temp=alonekeyboard;
switch(temp)
{
case 0x7f:alonekeynum=8;break;
case 0xbf:alonekeynum=7;break;
case 0xdf:alonekeynum=6;break;
}
}
}
return alonekeynum;
}
void main ()
篮球比赛30秒倒计时器的设计
篮球比赛30秒倒计时器的设计【摘要】篮球比赛30秒钟规则规定:进攻球队在场上控球时必须在30秒钟内投篮出手(NBA比赛为24秒,全美大学体育联合会比赛中为35秒),因此在比赛时裁判既要看比赛又要看秒表计时,而本文介绍的30秒倒计时器可以解决此问题。
【关键词】AT89C51单片机、30秒倒计时器、LED30秒倒计时器的设计和制作有很多方法,本文介绍的30秒倒计时器以AT89C51单片机作为控制单元,采用两个数码管显示时间,用三个按键分别控制计时器的计时开始、复位和暂停。
倒计时器初始状态显示“30”,当裁判员按下计时键,30秒倒计时开始,当计时器时间减到0时,计时器发出声光报警,提示裁判计时时间已到。
一、电路设计30秒倒计时器的电路主要由电源电路、单片机最小系统、按键输入、显示驱动电路、报警电路组成,30秒倒计时器控制电路如图1所示。
图1 30秒倒计时器电路原理图1、按键输入“30秒倒计时器”采用了三个按键来完成计数器的启动计数、复位、暂停/继续计数等功能。
(1)K1键:启动按钮(P3.2)。
按下K1键,计数器倒计时开始,数码管显示数字从30开始每秒递减计数,当递减到到零时,报警电路发出声、光报警信号。
当计数器处于暂停状态时按下K1键将回到计时状态。
(2)K2键:复位按钮(P3.3)。
按下K2键,不管计数器工作于什么状态,计数器立即复位到预置值“30” ,在报警状态时按下K2键还可取消报警。
(3)K3键:暂停/计时切换按钮(P3.4)。
当计数器处于计时状态时按下该键计数器暂停计时,数码管显示数字保持不变;当计数器处于暂停状态按下该键计数器将回到计时状态;初始状态时该键无效。
2、显示驱动电路“30秒倒计时器”用两个共阳数码管来显示时间,数码管显示方式为动态显示。
显示驱动电路中,数码管的段码引脚通过470欧的电阻接到单片机的P1口,两个片选引脚各通过一个9012连接到正5V电源,由P3.0和P3.1控制。
51单片机倒计时源程序
51单片机倒计时源程序#include<reg52.h> //51头文件//#include<472405468.h>//51头文件#define uchar unsigned char //宏定义#define uint unsigned int //宏定义#define s0 P2^0 // 时加键#define s1 P2^1 // 分加键#define s2 P2^2 // 倒时加键//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F #define s3 P2^3 // 倒分加键#define s4 P2^4 // 倒秒加键#define s5 P2^5 // 开始倒计时键总共6个按键uint tt1,tt0;uchar num=0;uchar biaozhi=11;uchar up;uchar z,han,jun,qiang,cishu,count,num1; //函数变量声明char shi,fen,miao,pao_miao; //定义有符号变量声明chardao_shi=23,dao_miao=59,dao_fen=59,dao_paomiao=99;sbit sky1=P1^0; //断控sbit sky2=P1^1; //位控sbit feng=P1^2; //控蜂鸣器const uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极显示代码//****************** 函数声明 *****************************void feng_ming_qi(uchar); //报时函数void init(); //定时器的初始化(T1)void fenjie(); //函数声明void delay(uchar); //延时函数声明void dao_fenjie(); //倒计时显示函数uchar key_scan(); //按键调试函数//************************************************************void delay(uchar z) //一毫秒延时函数{uchar x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void init()//TR1初始化{TMOD=0x22; // TMOD=0x20; 开定时 1TH1=0x06; //T1 250微妙TL1=0x06; //装初值EA=1; //打开总中断TR1=1; ////初始化先打开定时器1ET1=1;feng=0;///////////////////////////////////////////////TH0=0x06; //T0 也是 250 微妙中断一次TL0=0x06; //装初值//EA=1; //打开总中断TR0=0; //初始化先关闭定时器0ET0=1; // IEIP=0x20;}/////////////////////////////////////////////////////////////////// /////////////////////////void dao_fenjie() //分解倒秒,倒分,倒时。
基于51单片机能实现任意时间倒计时。
倒计时器只要修改此文档15页源程序的(如下图)的到计时初值即可实现想要的倒计时。
比如30分钟倒计时修改分钟十位和各位即可。
一、设计要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。
倒计时到,由蜂鸣器发出报警。
绘制系统硬件接线图,并进行系统仿真和实验。
画出程序流程图并编写程序实现系统功能。
二、设计的作用目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。
通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。
本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。
三、具体设计:1.问题分析:在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。
如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。
单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。
51单片机秒表程序设计
51单片机秒表程序设计51单片机秒表程序设计班级:姓名:学号指导老师时间一、课题任务要求用*****设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
即数码显示管在原先的计数上快速加一。
二、设计思路1、使用单片机,设计秒表,能显示分分秒秒;2、使用三个按键停止,开始,复位,其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时;3、使用液晶或数码管显示;4、使用定时器中断;三、硬件设计1、单片机介绍单片机:*****是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
*****主要特性:与MCS-51 兼容低功耗的闲置和掉电模式4K字节可编程闪烁存储器全静态工作:0Hz-24MHz 寿命:1000写/擦循环数据保留时间:10年三级程序存储器锁定128×8位内部RAM 片内振荡器和时钟电路32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道管脚说明: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口作为第八位地址接收。
51单片机数码管倒计时汇编语言代码
51单片机数码管倒计时汇编语言代码数码管是一种电子元器件,常用于倒计时、计时和显示数字等场景中。
其中,51单片机作为一种常见的控制芯片,能够对数码管进行比较精确的控制。
本文将介绍51单片机在数码管倒计时中的应用,并给出相应的汇编语言代码。
一、硬件准备首先,我们需要准备一些硬件设备。
具体来说,我们需要一块51单片机的开发板、一组共阳数码管、一个蜂鸣器、一枚按键开关、若干杜邦线和面包板。
在连接各个模块时,需要注意接线的正确性和稳定性。
二、倒计时实现接下来,我们就可以开始编写汇编语言代码了。
代码实现中,需要注意数码管的显示方式以及倒计时时间的设定等细节。
首先,我们定义一些常数,如:COUNT_MAX EQU10;倒计时时长为10sCLK_FREQ EQU12000000;时钟频率为12MHzDELAY_US EQU CLK_FREQ/1000000其中,COUNT_MAX表示倒计时的最大时长,CLK_FREQ表示单片机的时钟频率,DELAY_US表示1us延时所需的机器周期数。
其次,需要定义一些数据段:ORG0SJMP MAINORG0BHDELAY_CNT:DB0ORG0CHMODE_CNT:DB0其中,DELAY_CNT是延时计数器,MODE_CNT是模式计数器。
接着,我们定义主函数:MAIN:CLR P1.5CLR P1.6CLR P1.7MOV TMOD,#01H;设置定时器0为模式1SETB TR0;启动定时器0SETB EASETB ET0SETB EX0MOV R6,#DELAY_USSJMP MODE_SEL首先,需要清空P1.5、P1.6和P1.7引脚,以便控制数码管的显示。
然后,设置定时器0为模式1,并启动定时器0。
接着,开启总中断、定时器0中断和外部中断,设置延时计数器,并跳转到MODE_SEL 模式选择功能。
接下来是MODE_SEL模式选择功能:MODE_SEL:MOV A,MODE_CNTCPL AMOV MODE_CNT,AANL A,#03HJZ MODE_0CJNE A,#01H,MODE_SEL_ENDSJMP MODE_1CJNE A,#02H,MODE_SEL_ENDSJMP MODE_2MODE_SEL_END:CLR TR0CLR EARETI在这个模式下,程序每执行一次,模式计数器加1,并且A寄存器与3进行与操作,最后根据A的值跳转到相应的倒计时模式。
原创数码管动态显示时间(0-999秒倒计时)
数码管动态显示时间(0-999秒倒计时)原理图:
控制部分
数码管时间显示,微动按键时间调整,工作手具转换,启动和复位程序。
1.待机:时间显示010秒.D6灯亮,此时ZHH,GZ无输出。
2.转换键:待机D5和D6状态可相互转换,开机常态体腔指示灯亮ZHH,GZ无输出。
按一下转换到D5状态,D5
指示灯亮ZHH输出,再按一下转换到D6状态,体腔指示灯亮ZHH无输出。
3.“加”“减”键:可调时间000-999秒,可快加和快减时间,每秒10个数变化。
慢加和慢减时间,每按一下变化1
个数。
4.复位键:工作和报警中可用,复位到设定状态。
5.手柄启动键:设定到D6状态时,按下启动键时间以设定时间倒计时工作,此时ZHH无输出GZ输出,治疗指
示灯D4亮时间减到000后,GZ断开报警5秒治疗指示灯闪烁,返回到设定状态。
设定到D5状态时,按下启动键时间以设定时间倒计时工作,此时ZHH,GZ输出,治疗指示灯亮时间减到000后,GZ断开报警5秒治疗指示灯闪烁。
工作中除复位键外其他键不能动作。
报警中可重复启动(设定状态)。
第32节:数码管中的倒计时程序
{
case 1: //显示窗口1的数据
if(ucWd1Update==1) //窗口1要全部更新显示
{
sbit dig_hc595_st_dr=P2^1;
sbit dig_hc595_ds_dr=P2^2;
sbit hc595_sh_dr=P2^3; //LED灯的74HC595程序
sbit hc595_st_dr=P2^4;
sbit hc595_ds_dr=P2^5;
第三十二节:数码管中的倒计时程序。
开场白:
上一节讲了一二级菜单的综合程序,这一节要教会大家三个知识点:
第一个:通过本程序,继续加深理解按键与数码管的关联方法。
第二个:复习一下我在第五节教给大家的时间校正法。
第三个:继续加深熟悉鸿哥首次提出的“一二级菜单显示理论”:凡是人机界面显示,不管是数码管还是液晶屏,都可以把显示的内容分成不同的窗口来显示,每个显示的窗口中又可以分成不同的局部显示。其中窗口就是一级菜单,用ucWd变量表示。局部就是二级菜单,用ucPart来表示。不同的窗口,会有不同的更新显示变量ucWdXUpdate来对应,表示整屏全部更新显示。不同的局部,也会有不同的更新显示变量ucWdXPartYUpdate来对应,表示局部更新显示。
0x7d, //6 序号6
0x07, //7 序号7
0x7f, //8 序号8
0x6f, //9 序号9
0x00, //无 序号10
0x40, //- 序号11
0x73, //P 序号12
};
ucWd1Update=0; //及时清零标志,避免一直进来扫描