单片机AT89C51 00——99带倒计时计数器

发布者:asa1670最新更新时间:2016-11-23 来源: eefocus关键字:单片机  AT89C51  倒计时  计数器 手机看文章 扫描二维码
随时随地手机看文章

1. 设计任务

(1. 上电时显示“00”,第一次按下SP1后就开始计数。

(2. 第二次按SP1后,计数停止。

(3. 第三次按SP1后,计数清零。

 (4.   第四次按下倒计时  。

2.  电路的原理图

 3. 系统板上硬件连线

(1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

(2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。

(3.把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;

4.

 汇编源程序

D1A EQU 30H                           个位寄存地址设置;

D1B EQU 31H                           十位寄存地址设置;

SEC EQU 32H

KY1 EQU 33H     

SP1 BIT P3.5                               位选口设置;

ORG 0000H

LJMP START

ORG 0B00H                                中断方式选折;

LJMP INT_T0

START: MOV KY1,#00H

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB                                         个位和十位的区分;           

MOV DPTR,#TABLE                    开始查个位的段码;

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

MOV TMOD,#02H

SETB ET0

SETB EA                             开启中断;

WT: JB SP1,WT               

LCALL DELY10MS

JB SP1,WT                         

INC KY1                                  第一次按下键盘,开始计数;

MOV A,KY1

CJNE A,#01H,KN1

SETB TR0

MOV TH0,#06H

MOV TL0,#06H

MOV D1A,#00H

MOV D1B,#00H

LJMP DKN

KN1: CJNE A,#02H,KN2

CLR TR0

LJMP DKN

KN2: CJNE A,#03H,DKN

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

MOV KY1,#00H

KN3:  INC KY1   

 DEC KY1                            第4次按下键盘,开始计数;

MOV A,KY1

CJNE A,#04H,KN3

SETB TR0

MOV TH0,#06H

MOV TL0,#06H

MOV D1A,#00H

MOV D1B,#00H

LJMP DKN

DKN: JNB SP1,$

LJMP WT

DELY10MS:                    延时子程序;

MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

INT_T0:                                中断子程序;

INC D1A

MOV A,D1A

CJNE A,#100,NEXT

MOV D1A,#00H

INC D1B

MOV A,D1B

CJNE A,#5,NEXT

MOV TCNTB,#00H

INC SEC

MOV A,SEC

CJNE A,#100,DONE

MOV SEC,#00H

DONE: MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

NEXT: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END


关键字:单片机  AT89C51  倒计时  计数器 引用地址:单片机AT89C51 00——99带倒计时计数器

上一篇:一个很不错的I2C读写程序(基于KeilC51)
下一篇:c51串口发送数据程序

推荐阅读最新更新时间:2024-03-16 15:21

富昌电子上新英飞凌XMC7000系列MCU,推动复杂电机控制等高性能工业应用发展
中国上海–2023年4月18日–全球知名的电子元器件授权代理商富昌电子,近日上新来自英飞凌的工业级微控制器(MCU)产品组合XMC7000。 该系列产品通过提供更高的计算性能、更丰富的外设、更宽泛的工作温度范围等性能优势,可满足先进工业应用对高性能、高扩展性以及严苛工作环境的需求。 传承英飞凌XMC系列MCU在工业控制领域的出色表现,内核拥有高达350-MHz 主频的32位Arm® Cortex®-M7处理器,主频100-MHz 的32位Arm® Cortex®-M0+ 处理器,搭配容量最大高达8MB的嵌入式闪存和容量为1MB的片上静态随机存取存储器(SRAM)。该系列微控制器具有低至 8µA 的低功耗模式,并支持-40°C至
[工业控制]
51单片机PWM程序详解
#include reg51.h //程序是基于KEIL-C51编写,引入8051头文件 sbit P10=P1^0; sbit P11=P1^1; unsigned int scale; //占空比控制变量 void main(void) { unsigned int n; //延时循环变量 TMOD=0x02; //定时器0,工作模式2(0000 0010),8位定时 TH0=0x06; //定时250us(12M晶振) TL0=0x06; //预置值 TR0=1; //启动定时器0 ET0=1; //启动定时器0中断 EA=1;
[单片机]
51<font color='red'>单片机</font>PWM程序详解
基于凌阳SPCE061A单片机的音控小车的设计
  随着电子业的发展,自动化已经不再是新鲜的话题了,在对系统业提出更高更深入的要求的同时,智能化已成为必然的发展趋势。智能化产品已开始逐渐投入市场,走进千家万户,渗入各个领域。随着经济的增长,个人拥有私家汽车已不再是梦想,伴随着汽车业的发展,无人驾驶的智能汽车也必将进入实用阶段。   本设计的主要目的是针对智能无人驾驶汽车设计出智能音控小车,在智能化小车上实现语音控制,避免出现许多大大小小的事故。本设计方案也可应用于移库倒库过程中,而且在诸如智能建筑、公共便民设施、自动立体车库等类似的人性化环境中也能够发挥其作用 。    1 系统的总体设计方案及硬件设计   1. 1系统的总体设计描述   本设计以凌阳单片机SPCE0
[单片机]
51单片机几个精确延时程序
  51单片机几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响.   一. 500ms延时子程序(晶振12MHz,一个机器周期1us.)   程序:   void delay500ms(void)   {   unsigned char i,j,k;   for(i=15;i 0;i--)   for(j=202;j 0;j--)   for(k=81;k 0;k--);   }   计算分析:   程序共有三层循环   一层循环n:R5*2 = 81*2 = 162us DJNZ 2us   二层循环m:R6*(n+3)
[单片机]
基于dsPIC33F系列单片机的应用程序升级方法
0 引言 dsPIC33F系列单片机是美国微芯公司(Microchip)推出的一款高性能单片机,它将数字信号处理器(Digital Signal Processor,DSP)的高速运算能力与单片机的控制特性无缝地集成在一起,为嵌入式系统设计提供了高性价比的单芯片、单指令流的解决方案,在音频处理、视频处理及工业控制等方面得到了广泛应用。但是在实际应用中,由于客户需求变化或程序BUG修改等原因,经常出现需要使单片机应用程序升级的情况,本文利用dsPIC33F单片机运行时的自编程(Run-Time Serf-Programming,RTSP)特性,实现了基于该单片机应用程序的升级功能。 1 基本原理 dsPIC33F系列单片机
[单片机]
基于dsPIC33F系列<font color='red'>单片机</font>的应用程序升级方法
单片机定时器的应用与误差纠正
1 前言    定时器是MCS-51单片机非常重要的组成部分,由于其应用与单片机的其他硬件相关,存在着一定的复杂性 。而定时器是单片机应用中解决某类复杂问题的最有为效的方法,应用非常广泛。随着定时要求的提高,在定时处理过程中所带来的误差需要校正 ,本文就MCS-51单片机的使用方法与误差校正方法进行了讨论,并给出通用算法与程序。 2 定时器工作方式与方式设置    MCS-51单片机有两路独立的定时器,每路定时器有4种工作方式(0~3),方式0是13位计数结构,计数器由TH全部8位与TL的低5位构成;方式1是16位计数结构,计数器由TH与TL全部8位共16位组成;方式2是8位计数结构方式,计数器由TL8位组成,与其他方式不同
[应用]
单片机AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
前言 好久没有写单片机系列了,话不多说,直接进入正题吧!本次要讲解和分享的实验是一个比较著名的流水灯实验,但这个实验是通过自己点击按钮实现“流水”的,和我的一篇(单片机(AT89C51)的仿真实验——流水灯和逐一闪烁灯(输入与输出))Blog有所不同,对于纯编码的流水灯有兴趣的也可以去看看这篇文章。还有我推出了一系列的单片机知识点总结和实验分享:单片机大全,对此有兴趣的也可以关注一下,方便后续的学习。 实验要求和目的 实验一:每按一次独立键盘的S1键,与P1口相连的八个发光二极管中点亮一个往下移动一位 实验二:上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,按下一次开关,使得下一个灯开始闪烁点亮,如此循环。 实
[单片机]
<font color='red'>单片机</font>(<font color='red'>AT89C51</font>)按钮控制LED灯实现流水灯,闪烁流水灯
C8051单片机实现多目标超声波测距的设计
超声波测距传感器以其测量精度高、响应快和价格低廉而广泛应用在工业现场测距、移动机器人导航和定位等场合。超声波测距传感器常用的方式是1 个发射头对应1 个接收头,也有多个发射头对应1 个接收头。 它们共同之处是:每个接收头只测量一个位置,这个位置就是除盲区内因发射的超声波旁瓣引起的接收信号超声波包络峰值外,第1个接收信号超声波包络峰值对应的距离。 在机器人自主导航避障时,机器人只关心最近障碍物的距离,是能够完成自主避障的。 但是在机器人定位时,尤其在动态环境下,1 个接收头同时测量多个距离,能够更多地描述环境信息,这对机器人用超声波定位具有重要意义。 1 超声波 1. 1 超声波测距原理 超声波测距原理比较简单,一般是采用时差法
[单片机]
C8051<font color='red'>单片机</font>实现多目标超声波测距的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved