00-99计数器实验

发布时间:2023-06-21  

1. 实验任务
利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图19所示。


2. 电路原理图

图4.10.1


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端口上;
(3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上;
4. 程序设计内容
(1. 单片机对按键的识别的过程处理
(2. 单片机对正确识别的按键进行计数,计数满时,又从零开始计数;
(3. 单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们可以把所计得的数值对10求余,即可得个位数字,对10整除,即可得到十位数字了。
(4. 通过查表方式,分别显示出个位和十位数字。
5. 程序框图

图4.10.2
6. 汇编源程序
Count EQU 30H
SP1 BIT P3.7
ORG 0
START: MOV Count,#00H
NEXT: MOV A,Count
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
WT: JNB SP1,WT
WAIT: JB SP1,WAIT
LCALL DELY10MS
JB SP1,WAIT
INC Count
MOV A,Count
CJNE A,#100,NEXT
LJMP START
DELY10MS: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
7. C语言源程序
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char Count;

void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}

void main(void)
{
Count=0;
P0=table[Count/10];
P2=table[Count%10];
while(1)
{
if(P3_7==0)
{
delay10ms();
if(P3_7==0)
{
Count++;
if(Count==100)
{
Count=0;
}
P0=table[Count/10];
P2=table[Count%10];
while(P3_7==0);
}
}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    定时器实验(2024-01-18)
    定时器实验;实验  定时器实验 一.实验目的1.学习8051内部定时器/计数器的使用和编程方法2.进一步掌握中断处理程序的编写方法 二.实验说明对内部定时/计数器......
    延时定时器(TOF)三种定时器。 2、定时器编号与分辨率 3、定时器实例分析 ①接通延时定时器 TON ②保持型接通延时定时器 TONR ③断开延时定时器 TOF 02   二、计数器......
    灯输出和每个转向指示灯处测量的平均电压和/或电流值得出的。 运行仿真后,您将可以访问相应的实验报告和“结果”部分中的绘图信号,也可以通过双击打开它们。正常运行下应该可以看到如下实验报告图3和信号波形图4。 图3 标称分析实验报告......
    00-99计数器实验;1. 实验任务利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一......
    STM32入门学习笔记之基础定时器实验(下);7.2.5 状态寄存器:TIMx_SR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - CC4OF CC3OF......
    STM32如何使用定时器实现微秒(us)级延时?;在STM32微控制器中,可以使用定时器实现微秒级延时。具体来说,可以使用定时器的计数器和自动重装载寄存器来生成精确的延时。以下将详细介绍如何使用定时器实......
    狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。   STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使......
    STM32入门学习笔记之基础定时器实验(上);7.1 STM32定时器概述 STM32内部共有8个定时器,其中Timer1和Timer8属于高级定时器,Timer2~Timer5属于通用定时器,8......
    在复位从模式。待测信号从TI2输入。【本实验中的待测信号来自TIM3的PWM输出】 当从通道2出现信号的上升沿时,TIM4计数器被复位清零,同时产生更新事件和触发事件,相关标志位会被置1. 在初始状态【没进......
    开发环境不限。这里用的是ARM MDK IDE。 实验目的 1、熟悉定时器时基单元的基本寄存器及相关数据的拟定。 2、了解通过STM32定时器实现PWM波形输出的配置与使用。 【因为这里要使用一个定时器的pwm......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>