当前位置:首页 > 芯闻号 > 日常电器电路
[导读]1. 实验任务(1. 开始时,显示“00”,第1次按下SP1后就开始计时。(2. 第2次按SP1后,计时停止。(3. 第3次按SP1后,计时归零。2. 电路原理图 3. 系统板上硬件连线(1. 把“单片机系统”区域中的P

1. 实验任务

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

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

(3. 第3次按SP1后,计时归零。

2. 电路原理图

 

99秒马表设计99s Timer

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. 程序框图

T0中断服务程序框图

 

99秒马表设计99s Timer

5. 汇编源程序

TCNTA EQU 30H

TCNTB EQU 31H

SEC EQU 32H

KEYCNT EQU 33H

SP1 BIT P3.5

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START: MOV KEYCNT,#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 KEYCNT

MOV A,KEYCNT

CJNE A,#01H,KN1

SETB TR0

MOV TH0,#06H

MOV TL0,#06H

MOV TCNTA,#00H

MOV TCNTB,#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 KEYCNT,#00H

DKN: JNB SP1,$

LJMP WT

DELY10MS:

MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

INT_T0:

INC TCNTA

MOV A,TCNTA

CJNE A,#100,NEXT

MOV TCNTA,#00H

INC TCNTB

MOV A,TCNTB

CJNE A,#4,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

6. C语言源程序

#include

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char keycnt;

unsigned int tcnt;

void main(void)

{

unsigned char i,j;

TMOD=0x02;

ET0=1;

EA=1;

second=0;

P0=dispcode[second/10];

P2=dispcode[second%10];

while(1)

{

if(P3_5==0)

{

for(i=20;i>0;i--)

for(j=248;j>0;j--);

if(P3_5==0)

{

keycnt++;

switch(keycnt)

{

case 1:

TH0=0x06;

TL0=0x06;

TR0=1;

break;

case 2:

TR0=0;

break;

case 3:

keycnt=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second%10];

break;

}

while(P3_5==0);

}

}

}

}

void t0(void) interrupt 1 using 0

{

tcnt++;

if(tcnt==400)

{

tcnt=0;

second++;

if(second==100)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second%10];

}

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

那么,哪种 PWM 技术最适合您的电机控制应用?到目前为止,我们已经研究了两种电机驱动拓扑结构,它们会在电机上产生单极 PWM 电压波形,

关键字: 4 象限 PWM 电机系统

当同时需要高直流精度和高带宽时,可能难以实现。工程师常常面对各种挑战,需要不断开发新应用,以满足广泛的需求。一般来说,这些需求很难同时满足。例如一款高速、高压运算放大器(运放),同时还具有高输出功率,以及同样 出色的直流...

关键字: 高速放大器 高直流精度 高带宽

那么,哪种 PWM 技术最适合您的电机控制应用?在之前的文章中,我们研究了单象限 PWM 技术,它非常适合成本极其敏感的电机控制应用,在这些应用中,您希望通过改变 PWM 信号的占空比来控制电机的速度。但是电机只能在一个...

关键字: 单极二象限驱动器 H 桥驱动

随着带宽的不断增加,有线和无线基础电信系统中的放松管制和竞争推动了对于低成本设备解决方案的需求。电信设备电源管理要求中需要应对的挑战不断增加,这就愈加要求设计人员能够为各种数字信号处理器 (DSP)、现场可编程门阵列 (...

关键字: 电信设备 电源管理

由于 RoHS 指令和 REACH 等法规,许多地区长期以来一直禁止使用铅或需要额外的文书工作。豁免仍然有效,但即将到期或即将到期。与其假设豁免将被延长,不如现在就寻求面向未来的替代方案。

关键字: RoHS

下图显示了集电极开路开关电路的典型布置,该电路可用于驱动机电型设备以及许多其他开关应用。NPN晶体管基极驱动电路可以是任何合适的模拟或数字电路。晶体管的集电极连接到要切换的负载,晶体管的发射极端子直接接地。

关键字: 集电极开路 开关电路

集电极开路输出在数字芯片设计、运算放大器和微控制器 (Arduino) 类型应用中越来越普遍,用于与其他电路连接或驱动可能与电气特性不兼容的指示灯和继电器等大电流负载控制电路。但是“集电极开路”是什么意思,我们如何在电路...

关键字: 集电极开路 负载控制

如果您不能拿起原理图并知道(在中等水平上)设计应该做什么以及应该如何做,那么您还没有真正完成设计师的工作。 您可以在原理图中清楚地传达的信息越多,随着您的设计从想法到产品的进展,每个人的生活就会越轻松。

关键字: 混合信号 PCB 设计

我们讨论了印刷电路板 (PCB) 设计师在谈到进行混合信号设计时最可能指的是什么。作为其中的一部分,我们考虑了可能涉及的不同类型的电路,并且我们触及了每种电路所涉及的高级差异和挑战。

关键字: 混合信号 PCB设计

当我们负责一个位于我们舒适区之外的项目时,我们都曾经历过一次或一次。对我来说,当我的老板让我设计高速板时,那一天就来了。虽然我认为自己是一位经验丰富的电路设计师,但我知道高速 PCB 设计有许多限制,这些限制是您在设计普...

关键字:
关闭
关闭