導航:首頁 > 電器電路 > 電路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相關的資料

熱點內容
電車液壓剎車維修視頻教程 瀏覽:191
南寧汽車導航維修點 瀏覽:629
撫順供熱維修電話號碼 瀏覽:962
家用電器避雷法 瀏覽:256
國家電網江西分公司研究生工資多少人 瀏覽:505
分期樂買的手機有問題怎麼維修 瀏覽:287
美敏家居 瀏覽:320
家用電器櫃安裝規范 瀏覽:539
2016家居展 瀏覽:735
長沙迅達煤氣灶售後維修 瀏覽:984
逆變焊機維修全部視頻 瀏覽:728
建築防水圈在什麼位置 瀏覽:859
民房如何申請翻新重建 瀏覽:352
avarte傢具 瀏覽:50
無錫工薪之家電話多少 瀏覽:621
廣聯達防水瀝青塗刷兩遍怎麼套 瀏覽:760
家居改造王月 瀏覽:509
家用電器罩手工教程 瀏覽:664
廣州白雲家電維修 瀏覽:755
啟德家居 瀏覽:890