导航:首页 > 电器电路 > 电路cpl

电路cpl

发布时间:2021-12-22 22:56:26

⑴ 写出一个你感兴趣的电路:1,写出电路的用途2,画出电路图或原理方框图3,简述电路的基本工作原理或调试方

电子时钟

一摘要

单片计算机即单片微型计算机。(Single-ChipMicrocomputer),是集CPU,RAM,ROM,

定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产

品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设

计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

二说明

系统由AT89C51、LED数码管、按键、发光二极管等部分构成,能实现时间的调整、定

时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4完成。其中SB0

为时间校对,定时器调整功能键,按SB0进入调整状态。SB1为功能切换键。第一轮按动

SB1依次进入一路、二路、三路定时时间设置提示程序,按SB3进入各路定时调整状态。定

时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1键,依次进入时间

¡年¡位校对、¡月¡位校对、¡日¡位校对、¡时¡位校对、¡分¡位校对、¡秒¡位

校对状态。不管是进入那种状态,按动SB2皆可以使被调整位进行不进位增量加1变化。各

预置量设置完成后,系统将所有的设置存入RAM中,按SB1退出调整状态。上电后,系统自

动进入计时状态,起始于¡00¡时¡00¡分。SB4为年月日显示转换键,可使原来显示时分

秒转换显示年月日。

三、电路原理分析

1.显示原理

电原理图见附图1。由6个共阴极的数码管组成时、分、秒的显示。P0口的8条数据线

P0.0至P0.7分别与两个CD4511译码的ABCD口相接,P2口的P2.0至P2.2分别通过电阻

R10至R13与VT1至VT3的基极相连接。这样通过P0口送出一个存储单元的高位、低位BCD

显示代码,通过P2口送出扫描选通代码轮流点亮LED1至LED6,就会将要显示的数据在数

码管中显示出来。从P0口输出的代码是BCD码,从P2口输出的就是位选码。这是扫描显示

原理。

2键盘及读数原理

键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去

抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电

平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里

采用软件延时的方法来避开抖动,延时时间20ms.

3连击功能的实现

按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应

的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则

执行下一条对应程序。利用连击功能,能实现快速调时操作。

四、程序设计思想和相关指令介绍

本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进

位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

1.数据与代码转换。

由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。但P0

口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达

的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显

示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数

据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。

具体转换过程如下:

我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,

再放回A中,然后将A中的值输出。如:有一个单元存储了45这样一位数,则需转换成四

位的BCD码:(0100)(0101)然后放入A中。A中BCD码,高位四位代表¡4¡低四位代

表¡5¡同时送给两个译码器中,译码后¡45¡字就在两个LED中显示出来。

2.计时功能的实现与中断服务程序

时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0打开后,

进入计时,满100毫秒后,重装定时。中断一次,满一秒后秒进位,满60秒后即为1分钟,

分钟单元进位,60分到了后,时单元进位,24小时满后,天单元进位。这样然后根据进率,

得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,

实现时钟计时功能。累加是用指令INC来实现的。

进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累

加器A中的数据保存起来,这便是所谓的¡保护现场¡.以保护现场和恢复现场时存取关键

数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈

的数据存取与一般的RAM存取又有区别,对它的操作,要遵循¡后进先出¡的原则。

3时间控制功能与比较指令

系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先

将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指

令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的

那路P3置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB

对应的P3置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNEA,#direct,

rel,其转移条件是累加器A中的值与立即数不等则转移。

参考文献

1、谢自美,《电子线路设计、实验、测试》武汉:华中理工大学出版社,2000

2、何书森、何华斌《实用数字电路原理与设计速成》福州:福建科学技术出版社,2000.6

3、白驹衍,《单片计算机及应用》北京:电子工业出版社,1999.2

五:程序

SECEQU32H;秒即时时间伪指令

MINEQU31H;分

HOUREQU30H;时

DAYEQU35H;日

MONEQU34H;月

YEAREQU33H;年

MIN_1EQU41H;分定时器1路、开存储单元

HOUR_1EQU42H;时

DAY_1EQU43H;

MON_1EQU44H;

YEAR_1EQU45H;

MIN_11EQU40H;分定时器1路、关存储单元

HOUR_11EQU46H;时

DAY_11EQU47H;日

MON_11EQU48H;月

YEAR_11EQU49H;年

;***********************

ORG0000H

ljmpMAIN

ORG0003H;中断转换显示年月日、INT0(SB4键)

LJMPSHOW

ORG000BH;计数中断T0、方式1

LJMPTIME

ORG0013H

LJMPCHANGE;调整时间、定时、INT1(SB0键)

;------主程序

ORG0030H

MAIN:

;--------初始化付值

MOVYEAR,#02

MOVMON,#05

MOVDAY,#01

MOVHOUR,#00

MOVMIN,#00

MOVSEC,#00

CLR40H;定时单元1路清零

CLR41H

CLR42H

CLR43H

CLR44H

CLR45H

CLR46H

CLR47H

CLR48H

CLR49H

;-------开中断

MOVTMOD,#01H;计数、模式1、T0

MOVTL0,#0B0H;100SM计数定时

MOVTH0,#3CH;

clrp3.0

MOV20H,#0AH;10次*100SM

SETBPT0;T0为最高级

SETBTR0;允许计数

SETBET0;允许T0中断

SETBEX0;允许INT0中断

SETBEX1;允许INT1中断

SETBEA;开总中断

;------显示、定时器启动判断

LOOP:

MOVR1,#30H;存储单元

MOVR4,#01H;位选通

MOVR3,#03H;三组显示

NEXT:

MOVA,@R1;

MOVB,#10;将存储单元转换成两高低两组的BCD码

DIVAB

SWAPA

ORLA,B

MOVP0,A;输出

MOVP2,R4

INCR1;下一单元

MOVA,R4;

RLA;位移

MOVR4,A

LCALLDE5SM;延时0.5SM

DJNZR3,NEXT;全扫描显示一偏

;------判断定时输出(只编写了一路)

CJNER7,#88H,LOOP;是8则开,否则、定时已关、转

;---------开

MOVA,YEAR

CJNEA,YEAR_1,LOOP_1;年比较,不等转关

MOVA,MON

CJNEA,MON_1,LOOP_1

MOVA,DAY

CJNEA,DAY_1,LOOP_1

MOVA,HOUR

CJNEA,HOUR_1,LOOP_1

MOVA,MIN

CJNEA,MIN_1,LOOP_1

CPLP3.0

;---------关

LOOP_1:

MOVA,YEAR

CJNEA,YEAR_11,LOOP;年比较

MOVA,MON

CJNEA,MON_11,LOOP

MOVA,DAY

CJNEA,DAY_11,LOOP

MOVA,HOUR

CJNEA,HOUR_11,LOOP

MOVA,MIN

CJNEA,MIN_11,LOOP

CPLP3.0

LJMPLOOP

;-----年月日显示中断子程序

SHOW:

PUSHPSW

pushACC

PUSHB

PUSH01H

PUSH02H

PUSH03H

PUSH04H

MOVR2,#0FFH;中断扫描次数

TURN:MOVR1,#33H

MOVR4,#01H

MOVR3,#03H

NEXT_1:

MOVA,@R1

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,R4

INCR1

RLA

MOVR4,A

LCALLDE5SM

DJNZR3,NEXT_1

DJNZR2,TURN;反复显示一定时间后返回

POP04H

POP03H

POP02H

POP01H

POPB

POPACC

POPPSW

RETI

;-----计数中断服务子程序

TIME:

PUSHPSW

PUSHACC

PUSHB

PUSH06H

MOVTH0,#3CH;重装计数

MOVTL0,#0BH;

DJNZ20H,OUT;转到中断跳出pop程序

MOV20H,#0AH;重装:100*10=1000

;-----进位程序

INCSEC

MOVR6,SEC;

CJNER6,#60,OUT;比较

MOVSEC,#00;

INCMIN

MOVR6,MIN

CJNER6,#60,OUT

MOVMIN,#00

INCHOUR

MOVR6,HOUR

CJNER6,#25,OUT

MOVHOUR,#00

INCDAY

MOVR5,MON

CJNER5,#1,MON_22;是否1月、不是转2月

MOVR5,DAY

CJNER5,#32,OUT;本月是否益出

INCMON

MOVDAY,#1

LJMPOUT

OUT:

POP06H

POPB

POPACC

POPPSW

RETI

MON_22:

MOVR5,MON

CJNER5,#2,MON_33;是否2月、不是转3月

MOVA,YEAR;判断是否瑞年

MOVB,#4

DIVAB

MOVA,B

JNZOUT_1;不是则转(A不为零则转)

MOVR5,DAY

CJNER5,#30,OUT;如是瑞年、判断是否到29天

INCMON

MOVDAY,#1

LJMPOUT

OUT_1:

MOVR5,DAY

CJNER5,#29,OUT;平年二月判断

INCMON

MOVDAY,#1

LJMPOUT

MON_33:

MOVR5,MON

CJNER5,#3,MON_44

MOVR5,DAY

CJNER5,#32,OUT

INCMON

MOVDAY,#1

LJMPOUT

MON_44:

MOVR5,MON

CJNER5,#4,MON_55

MOVR5,DAY

CJNER5,#31,OUT

INCMON

MOVDAY,#1

LJMPOUT

MON_55:

MOVR5,MON

CJNER5,#5,MON_66

MOVR5,DAY

CJNER5,#32,OUT

INCMON

MOVDAY,#1

LJMPOUT

MON_66:

MOVR5,MON

CJNER5,#6,MON_77

MOVR5,DAY

CJNER5,#31,OUT

INCMON

MOVDAY,#1

LJMPOUT

MON_77:

MOVR5,MON

CJNER5,#7,MON_88

MOVR5,DAY

CJNER5,#32,L1

INCMON

MOVDAY,#1

L1:LJMPOUT

MON_88:

MOVR5,MON

CJNER5,#8,MON_99

MOVR5,DAY

CJNER5,#32,L2

INCMON

MOVDAY,#1

L2:LJMPOUT

MON_99:

MOVR5,MON

CJNER5,#9,MON_00

MOVR5,DAY

CJNER5,#31,L3

INCMON

MOVDAY,#1

L3:LJMPOUT

MON_00:

MOVR5,MON

CJNER5,#10,MON_AA

MOVR5,DAY

CJNER5,#32,L4

INCMON

MOVDAY,#1

L4:LJMPOUT

MON_AA:

MOVR5,MON

CJNER5,#11,MON_BB

MOVR5,DAY

CJNER5,#31,L5

INCMON

MOVDAY,#1

L5:LJMPOUT

MON_BB:

MOVR5,DAY

CJNER5,#32,L6

INCYEAR

MOVMON,#1

MOVDAY,#1

L6:LJMPOUT

;-------按SB2定时器年单元加1子程序

SB3_2:LJMPSHOW_2;二路没编返回

SB3_3:LJMPSHOW_3;三路没编返回

SB3_1:

MOVA,YEAR_1;调时年单元

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#01H

LCALLREAD

LCALLDE250SM

CJNEA,01H,SB3_1

CJNEA,#0FBH,KEY2_7;按SB2转年调整

LJMPMON_111;按SB1往下调月单元

KEY2_7:CJNEA,#0FDH,SB3_1

INCYEAR_1;1路年单元加1

MOVR5,YEAR_1

CJNER5,#09,SB3_1;益出

MOVYEAR_1,#00H

AJMPSB3_1;

;-------月单元加1子程序

MON_111:

MOVA,MON_1;调时月单元显示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#02H

LCALLREAD

LCALLDE250SM

CJNEA,01H,MON_111

CJNEA,#0FBH,KEY2_8;按SB2转月调整

LJMPDAY_111

KEY2_8:

CJNEA,#0FDH,MON_111

INCMON_1;1路月单元加1

MOVR5,MON_1

CJNER5,#13,MON_111;益出

MOVMON_1,#01H

AJMPMON_111;转到月显

;_------日单元加1子程序

DAY_111:

MOVA,DAY_1;调时日单元显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#04H

LCALLREAD

LCALLDE250SM

CJNEA,01H,DAY_111

CJNEA,#0FBH,KEY2_9;按SB2转日调整

LJMPHOUR_111

KEY2_9:CJNEA,#0FDH,DAY_111

INCDAY_1;1组日单元加1

MOVR5,DAY_1

CJNER5,#32,DAY_111;益出

MOVDAY_1,#01H

AJMPDAY_111;转到日显

;-------按SB2时单元加1子程序

HOUR_111:

MOVA,HOUR_1;调时时单元显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#01H

LCALLREAD

LCALLDE250SM

CJNEA,01H,HOUR_111

CJNEA,#0FBH,KEY2_10;按SB2转时调整

LJMPMIN_111

KEY2_10:CJNEA,#0FDH,HOUR_111

INCHOUR_1

MOVR5,HOUR_1

CJNER5,#24,HOUR_111;益出

MOVHOUR_1,#00H

AJMPHOUR_111;转到时显

;-------分单元加1子程序

MIN_111:

MOVA,MIN_1;调时分单元、并显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#02H

LCALLREAD

LCALLDE250SM

CJNEA,01H,MIN_111

CJNEA,#0FBH,KEY2_11;按SB2转分调整

AJMPOFF_CH;按SB3往下调定时:关单元

KEY2_11:CJNEA,#0FDH,MIN_111

INCMIN_1;1路分单元加1

MOVR5,MIN_1

CJNER5,#60,MIN_111;益处

MOVMIN_1,#00H

AJMPMIN_111;转到分显

年单元调整

OFF_CH:MOVA,YEAR_11;调时年单元

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#01H

LCALLREAD

LCALLDE250SM

CJNEA,01H,OFF_CH

CJNEA,#0FBH,KEY2_F7;按SB2转年调整

LJMPMON_OFF;按SB1往下调月单元

KEY2_F7:CJNEA,#0FDH,OFF_CH

INCYEAR_11;1路年单元加1

MOVR5,YEAR_11

CJNER5,#09,OFF_CH;益出

MOVYEAR_11,#00H

AJMPOFF_CH;

;-------月单元加1子程序

MON_OFF:

MOVA,MON_11;调时月单元显示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#02H

LCALLREAD

LCALLDE250SM

CJNEA,01H,MON_OFF

CJNEA,#0FBH,KEY2_F8;按SB2转月调整

LJMPDAY_OFF

KEY2_F8:

CJNEA,#0FDH,MON_OFF

INCMON_11;1路月单元加1

MOVR5,MON_11

CJNER5,#13,MON_OFF;益出

MOVMON_11,#01H

AJMPMON_OFF;转到月显

;_------日单元加1子程序

DAY_OFF:

MOVA,DAY_11;调时日单元显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#04H

LCALLREAD

LCALLDE250SM

CJNEA,01H,DAY_OFF

CJNEA,#0FBH,KEY2_F9;按SB2转日调整

LJMPHOUR_OFF

KEY2_F9:CJNEA,#0FDH,DAY_OFF

INCDAY_11;1组日单元加1

MOVR5,DAY_11

CJNER5,#32,DAY_OFF;益出

MOVDAY_11,#01H

AJMPDAY_OFF;转到日显

;-------按SB2时单元加1子程序

HOUR_OFF:

MOVA,HOUR_11;调时时单元显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#01H

LCALLREAD

LCALLDE250SM

CJNEA,01H,HOUR_OFF

CJNEA,#0FBH,KEY2_F10;按SB2转时调整

LJMPMIN_OFF

KEY2_F10:CJNEA,#0FDH,HOUR_OFF

INCHOUR_11

MOVR5,HOUR_11

CJNER5,#24,HOUR_OFF;益出

MOVHOUR_11,#00H

AJMPHOUR_OFF;转到时显

;-------分单元加1子程序

MIN_OFF:

MOVA,MIN_11;调时分单元、并显示提示

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVP0,A

MOVP2,#02H

LCALLREAD

LCALLDE250SM

CJNEA,01H,MIN_OFF

CJNEA,#0FBH,KEY2_F11;按SB2转分调整

LJMPON_1;按SB3往下调定时:开与关

KEY2_F11:CJNEA,#0FDH,MIN_OFF

INCMIN_11;1路分单元加1

MOVR5,MIN_11

CJNER5,#60,MIN_OFF;益处

MOVMIN_11,#00H

LJMPMIN_OFF;转到分显

;-------开、关定时

ON_1:CJNEA,#0FBH,MIN_OFF

K1:MOVA,#88H

MOVR7,A

MOVP0,A

MOVP2,#0FFH;三组都显示开

LCALLREAD

LCALLDE250SM

CJNEA,01H,ON_1;去抖后比较

CJNEA,#0FBH,KEY2_12;按SB2转关

LJMPOUT_A;按SB3调出、处于开状态

KEY2_12:CJNEA,#0FDH,K1

k2:MOVA,#00H;显示0关

MOVR7,A

MOVP0,A

MOVP2,#0FFH;

LCALLREAD

LCALLDE250SM

CJNEA,01H,K2;去抖后比较

CJNEA,#0FBH,KEY2_13;按SB2转开

LJMPOUT_A;SB3调出、处关状态

KEY2_13:

CJNEA,#0FDH,K2;比较按了没

LJMPK1;按了SB2、转开

OUT_A:

POP00H

POPB

POPACC

POPPSW

RETI

;_------读取按键程序

READ:MOVA,P1;读取按键

MOVR1,A

LCALLDE10MS

MOVA,P1

RET

;_----延时程序

DE5SM:

PUSH01H

MOVR1,#0FFH

DJNZR1,$

POP01H

RET

DE10MS:PUSH04H

PUSH05H

MOVR4,#0AH

Dl1:MOVR5,#0FFH

dl2:DJNZR5,$

DJNZR4,dl1

POP05H

POP04H

RET

DE250SM:PUSH02H

PUSH00H

MOVR0,#0FFH

DEL:MOVR2,#0FFH

DJNZR2,$

DJNZR0,DEL

POP00H

POP02H

RET

;_---调整时间进位程序

MIN_AD:

INCMIN

MOVR6,MIN

CJNER6,#60,OU1

MOVMIN,#00

OU1:RET

HOUR_AD:

INCHOUR

MOVR6,HOUR

CJNER6,#25,OU2

MOVHOUR,#00

OU2:RET

DAY_AD:

INCDAY

MOVR6,DAY

CJNER6,#32,OU3;是否益出

MOVDAY,#01H

OU3:RET

MON_AD:

INCMON

MOVR6,MON

CJNER6,#13,OU4;是否益出

MOVMON,#01H

OU4:RET

YEAR_AD:

INCYEAR

MOVR6,YEAR

CJNER6,#09,OU5;是否益出

MOVYEAR,#00H

OU5:RET

六:附录

实验设计电路图1

⑵ icl7129cpl是什么集成电路

这种不是通用的设备,也不普及没有配件买的,只有找厂家售后保修(也不一定行),不值几个钱,折腾来去路费都值了,买新的吧。

⑶ 7107CPL是的CPL是什么意思

数字温度计由以下几部分组成:核心ICL7107CPL转换器、显示电路、积分电路、零位校准电路和温度信号采集电路五部分组成。

⑷ 喷在电路板上的CPL有毒吗

没有毒

⑸ 求电子小制作的电路图,以及电路图的工作原理。

什么小制作?你如果想做的话,可以做一下功放,这个项目成功率高,见效快,让人有成就感,用TDA2030做吧,投资小,电路图网络一下,你就知道!

⑹ 给出下面这张电路图内所有英文的翻译

HB=high band高波段 , LB=low band低波段,EN=enable 使能(信号)
CPL=coupled 耕接/匹配 RF_in RF_out高频输入输出
Vmode0,Vmode1=控制芯片运行模式电压输入信号
Mode 模式
Vcc供电压-UMTS GSM 手机制式
GSM/UMTS LB/HB RF in/out两个不同制式的高低波段高频信号输入输出

⑺ 大家给个红外的简易电路

下面是我曾经做过的一个电路设计,看你用得上不? 用红外线遥控电机转速 哦,对了,还给把发射电路给忘掉了,这次补上,再把单片机程序也送上!



单片机程序: 接收程序: ;****************************** ;接收控制系统软件程序 ;****************************** ; ;****************************** ;主程序和中断程序入口 ;****************************** ORG 0000H ;复位地址 LJMP START ORG 0003H ;外中断0中断入口地址 LJMP INT0SERVE ORG 000BH ;定时器T0中断入口地址 RETI ORG 0013H ;外中断1中断入口地址 RETI ORG 001BH ;定时器T1中断入口地址 LJMP T1SERVE ORG 0023H ;串行口中断入口地址 RETI ORG 002BH ;定时器T2中断入口地址 RETI ; ` ;****************************** ;主程序 ;****************************** START: MOV SP,#60H ;设堆栈 LCALL CLEAR ;调初始化程序 NOP MAIN: JB P2.0,MAIN ;50Hz交流电过零检测等待 LCALL DELAYXUS ;调用延时子程序即控制导通角 CLR P2.7 ;发开导通角脉冲 LCALL DELAY256US ;延时256μs SETB P2.7 ;关脉冲 LJMP MAIN NOP NOP LJMP START ;设置软件陷阱 ; ;****************************** ;初始化程序 ;****************************** CLEAR: MOV A,#0FFH MOV P0,A ;P1~P3口置位 MOV P1,A MOV P2,A MOV P3,A MOV B,#26H ;设置导通角为零的延时值 MOV P1,#0FEH SETB 50H ;默认设置电机为停标志位 SETB P2.7 MOV IE,#00H ;关总中断 CLR RS0 ;设当前工作区为0区 CLR RS1 MOV IP,#01H ;设优先级 SETB EX0 ;开外中断0 SETB IT0 MOV TMOD,#10H MOV TH1,#3CH ;开定时器1 MOV TL1,#0B0H SETB ET1 SETB TR1 MOV R7,#0AH SETB EA ;开总中断 RET ; ;****************************** ;外部中断0服务程序 ;****************************** INT0SERVE: CLR EX0 ;关外中断0 JNB P3.1,INT0SERVE1 ;确认中断 INT0RET: SETB EX0 ;开外中断0,返回 RETI INT0SERVE1: CLR A MOV DPH,A ;清DPTR MOV DPL,A INT0SERVE2: JB P3.1,INT0SERVE3 ;用DPTR对第一个低电平计时 INC DPTR NOP NOP AJMP INT0SERVE2 ;循环周期是8μs INT0SERVE3: MOV A,DPH ;DPTR的高8位放入A中 JZ INT0RET ;不为0,说明DPL有进位则8μs×255=2ms, ;即是第一个脉冲。为0,说明内小于2ms是一干扰 CLR A INT0SERVE4: INC A ;脉冲个数加1 INT0SERVE5: JNB P3.1,INT0SERVE5 ;等待低电平 MOV R1,#06H ;帧间高电平宽度判断定时值,即一帧结束的判断 INT0SERVE6: JNB P3.1,INT0SERVE4 ;低电平时转脉冲个数加1 LCALL DELAY513US ;延时513μs DJNZ R1,INT0SERVE6 DEC A ;超过3ms判定为一帧结束 DEC A JZ FUNCTION0 ;为0则转功能0 DEC A JZ FUNCTION1 ;为0则转功能1 DEC A JZ FUNCTION2 ;为0则转功能2 DEC A JZ FUNCTION3 ;为0则转功能3 DEC A JZ FUNCTION4 ;为0则转功能4 DEC A JZ FUNCTION5 ;为0则转功能5 NOP NOP LJMP INT0RET ;返回 FUNCTION0: JB 50H,FUNCTION01 MOV B,#16H ;功能0操作3档转速 MOV P1,#0EDH FUNCTION01: NOP NOP LJMP INT0RET ;返回 FUNCTION1: JB 50H,FUNCTION11 MOV B,#1CH ;功能操作1档转速 MOV P1,#0F9H FUNCTION11: NOP NOP LJMP INT0RET ;返回 FUNCTION2: JB 50H,FUNCTION21 MOV B,#12H ;功能2操作4档转速 MOV P1,#0DDH FUNCTION21: NOP NOP LJMP INT0RET ;返回 FUNCTION3: JB 50H,FUNCTION31 MOV B,#19H ;功能3操作3档转速 MOV P1,#0F5H FUNCTION31: NOP NOP LJMP INT0RET ;返回 FUNCTION4: JB 50H,FUNCTION41 MOV B,#0EH ;功能4操作5档转速 MOV P1,#0BDH FUNCTION41: NOP LJMP INT0RET ;返回 FUNCTION5: JB 50H,FUNCTION51 ;功能5操作电机启/停操作 SETB 50H MOV B,#26H MOV P1,#0FEH AJMP FUNCTION52 FUNCTION51: CLR 50H MOV B,#1CH MOV P1,#0F9H FUNCTION52: NOP NOP LJMP INT0RET ; ;**************************************** ;控制导通角延时程序 ;**************************************** DELAYXUS: MOV R2,B DELAYXUS1: LCALL DELAY256US DJNZ R2,DELAYXUS1 RET ; ;**************************************** ;闪烁调节,定计1中断服务程序 ;**************************************** T1SERVE: CLR TR1 CLR ET1 DJNZ R7,T1SERVERET MOV R7,#0AH JB 50H,T1SERVE1 CPL P1.1 AJMP T1SERVERET T1SERVE1: CPL P1.0 T1SERVERET: MOV TH1,#3CH MOV TL1,#0B0H SETB ET1 SETB TR1 RETI ; ;**************************************** ;延时256μs程序 ;**************************************** DELAY256US: MOV R4,#126 DELAY256US1: DJNZ R4,DELAY256US1 RET ; ;**************************************** ;延时513μs程序 ;**************************************** DELAY513US: MOV R5,#254 DELAY513US1: DJNZ R4,DELAY513US1 RET END 发射程序: ;遥控系统软件程序 ; ;***************************** ;主程序和中断程序入口 ;***************************** ; org 0000H ;复位地址 ljmp start org 0003h ;外中断0中断入口地址 reti org 000BH ;定时器T0中断入口地址 reti org 0013h ;外中断1中断入口地址 ljmp int1serve org 001Bh ;定时器T1中断入口地址 ljmp T1SERVE org 0023h ;串行中断入口地址 reti org 002Bh ;定时器T2中断入口地址 reti ; ;***************************** ;初始化程序 ;***************************** clear: MOV P1,#0FFH ;P1,P3口置位 MOV P3,#0FFH CLR P3.5 ;关遥控输出 MOV SP,#70H ;设堆栈 MOV IE,#00H ;关总中断 MOV IP,#04H ;设优先级 MOV TMOD,#20H ;设定时器2自动重装模式 MOV TH1,#0F3H ;定时13μs MOV TL1,#0F3H SETB EX1 ;开外中断1 SETB IT1 SETB EA ;开总中断 RET ; ;***************************** ;主程序 ;***************************** START: LCALL CLEAR ;调试初始化程序 MAIN: LCALL KEYWORDK ;调键盘程序 ORL PCON,#01H ;进入低功耗待机状态 LJMP MAIN NOP NOP ;设置软件陷阱 NOP LJMP START ; ;***************************** ;外部中断1服务程序 ;***************************** INT1SERVE: CLR IE1 ANL PCON,#00H ;触发待机状态苏醒 RETI ; ;***************************** ;定时/计数1溢出中断服务程序 ;***************************** T1SERVE: CPL P3.5 ;高频调制 RETI NOP ;设置软件陷阱 NOP NOP LJMP START ; ;***************************** ;键盘程序 ;***************************** KEYWORDK: MOV P1,#0FFH ;置列线 CLR P3.7 ;清行线 MOV A,P1 MOV B,A CJNE A,#0FFH,KEY1 ;有键按下则不转移 KEYWORDKOUT: NOP NOP RET ;键盘程序返回 KEY1: LCALL DELAY5MS ;延时消抖 MOV A,P1 CJNE A,B,KEYWORDKOUT ;确认键按下 MOV DPTR,#KEYWORDKTAB1 MOV B,A ;查列号 CLR A MOV R0,A KEY2: MOV A,R0 SUBB A,#80H JNC KEYWORDKOUT MOV A,R0 MOVC A,@A+DPTR INC R0 CJNE A,B,KEY2 DEC R0 MOV A,R0 ;键号放入A MOV B,A ;键号乘3处理LJMP散转指令 ADD A,B ADD A,B MOV DPTR,#KEYWORDKTAB2 JMP @A+DPTR KEYWORDKTAB2: LJMP FUNCATION0 LJMP FUNCATION1 LJMP FUNCATION2 LJMP FUNCATION3 LJMP FUNCATION4 LJMP FUNCATION5 RET KEYWORDKTAB1: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7EH RET ; ;************************* ;发脉冲程序 ;************************* FUNCATION0: MOV A,#02H ;脉冲个数装载 LJMP SEND ;转发射程序 RET FUNCATION1: MOV A,#03H LJMP SEND RET FUNCATION2: MOV A,#04H LJMP SEND RET FUNCATION3: MOV A,#05H LJMP SEND RET FUNCATION4: MOV A,#06H LJMP SEND RET FUNCATION5: MOV A,#07H LJMP SEND RET NOP NOP NOP LJMP START ; ;************************ ;编码发射程序 ;************************ SEND: MOV R1,A ;装入发射脉冲个数 SEND0: MOV R0,#0FAH ;第一个码250×0.012ms=3ms AJMP SEND2 SEND1: MOV R0,#53H ;中间码83×0.012ms=1ms SEND2: SETB ET1 ;开高频定时中断调制 SETB TR1 NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R0,SEND2 MOV R0,#64H ;码距100×0.002ms=1ms SENDOUT: CLR TR1 ;关高频定时调制 CLR ET1 CLR P3.5 NOP NOP NOP NOP NOP DJNZ R0,SENDOUT DJNZ R1,SEND1 ;脉冲数还有则再循环再发 CLR P3.0 ;开工作指示灯 LCALL DELAY500MS ;帧距 SETB P3.0 ;关工作指示灯 RET NOP ;设置软件陷阱 NOP NOP LJMP START ; ;************************ ;延时5ms程序 ;************************ DELAY5MS: MOV R7,#45 DELAY5MS1: MOV R6,#554 DELAY5MS2: DJNZ R6,DELAY5MS2 DJNZ R7,DELAY5MS1 RET NOP ;设置软件陷阱 NOP NOP LJMP START ; ;************************ ;延时10ms程序 ;************************ DELAY10MS: MOV R4,#90 DELAY10MS1: MOV R3,#54 DELAY10MS2: DJNZ R3,DELAY10MS2 DJNZ R4,DELAY10MS1 NOP NOP NOP NOP NOP RET NOP ;设置软件陷阱 NOP NOP LJMP START ; ;************************ ;延时500ms程序 ;************************ DELAY500MS: MOV R5,#50 DELAY500MS1: LCALL DELAY10MS DJNZ R5,DELAY500MS1 RET NOP ;设置软件陷阱 NOP NOP LJMP START END

⑻ 单片机 cpl是什么

单片机cpl指汇编指令,是一个逻辑运算指令,是单片机中直接寻址位取反的指令,作用是将存储器的指定数据中的每一位转变为逻辑反的数据。

CPL为单片机Converse Position Logical指令的简称,在单片机中使用该指令可将指定数据转变为逻辑反数据,如对单片机存储器中的1使用CPL指令,可变为0,结果被存放回累。

(8)电路cpl扩展阅读:

读-修改-写指令的例子:

CPL P2 ;~P2→P2

ANL P0,#立即数 ;P0&立即数→P0

ORL P0,A ;P0|A→P0

INC P1 ;P1+1→P1

DEC P3 ;P3-1→P3

读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。

⑼ 什么是RLC电路RC电路RL电路意思

RLC电路是一种由电阻(R)、电感(L)、电容(R)组成的电路结构。RC电路是其简单的例子,它一般被称为二阶电路,应为电路中的电压或者电流的值,通常是某个由电路结构决定其参数的二阶微分方程的解。电路元件都被视为线性元件的时候,一个RLC电路可以被视作电子谐波振荡器。这种电路的固有频率一般表示为:(单位:赫兹Hz)
<math>
f_c
=
{1
\over
2
\pi
\sqrt{L
C}}
</math>
它是一种带通或带阻滤波器的形势,其Q点可以由下式得到:
<math>
Q
=
{f_c
\over
BW}
=
{2
\pi
f_c
L
\over
R}
=
{1
\over
\sqrt{R^2
C
/
L}}
</math>
RLC电路的组成结构一般有两种:1.串联型,2.并联型。ca:Circuit
RLC
da:Elektrisk
svingningskreds
de:Schwingkreis
en:RLC
circuit
es:Circuito
resonante
fr:Circuit
RLC
it:Circuito
RLC
pl:RLC
pt:Circuito
RLC
(http://www.wiki.cn/wiki/RLC%E7%94%B5%E8%B7%AF)
所谓“RC
电路”是指电阻电容串并联组成的电路,像微分电路、积分电路的一种,RC电路可改变信号的相位;也可以作为滤波器之用,如高通电路、低通电路。在此我们将以典型的RC电路,加入直流信号,以分析其暂态现象;在以交流信号来观察其相位变化,最后利用信号发生仪,找出其曲线。(http://www.cutanzi.com/html/edison/131451713.htm)

⑽ 汇编语言中的CLC指令,CPL指令的功能分别是什么使用格式又是怎样的

CLC携带标志,CPC是一条操作码指令,它不需要操作数,可以直接使用。

MCUCPL是指汇编指令,是一种逻辑操作指令,是MCU直接寻址地址取负100的指令,作用是将存储器中指定数量的数据中的每一个数据转换成逻辑反向的数据。

CPL是单片机逆位逻辑指令的简称。在MCU中使用这条指令可以将指定的数据转换成逻辑反数据。如果在MCU内存中的1上使用了CPL指令,那么可以将其更改为0,并且可以将结果存储回去。

(10)电路cpl扩展阅读:

读写命令的例子:

CPLP2。~P2-P2

ANLP0,#instantnumber;P0和立即变为P0

ORL P0,;P0 | A - > P0

公司P1;P1+1-P1

12月P3;P3-1-P3

读-修改-写指令的特点是由输入(读)信号从端口,操作(修改)在一个单片机,然后输入(写)到端口。这种安排的原因在于,read-modif-write指令需要的原始输出状态端口,可以修改后输出,读锁而不是读销可以避免误读原始状态的端口由于外部电路的原因。

阅读全文

与电路cpl相关的资料

热点内容
耳朵防水套怎么做 浏览:367
天津市小家电维修哪里有 浏览:250
淘宝保修是怎么算 浏览:888
电路图连接图 浏览:514
家具如何做到转介绍 浏览:848
南宁家具交易市场在哪里 浏览:263
食堂蒸饭车维修怎么记账 浏览:663
空调维修怎么线上接单 浏览:552
南康恒泰家具 浏览:398
昆明家电旧货市场在哪里 浏览:486
水管家电清洗设备市场上有多少家 浏览:116
保电路接法 浏览:272
京东碎屏险拿到哪里去维修 浏览:556
赣县家电维修 浏览:565
手表保修什么 浏览:316
米兔手表保修期怎么查 浏览:868
家具进场安装在哪里 浏览:436
电路改造公司 浏览:570
仓库叉车维修进什么科目 浏览:850
巴基斯坦人喜欢什么小家电 浏览:210