導航:首頁 > 操作系統 > 單片機控制時鍾電路設計

單片機控制時鍾電路設計

發布時間:2022-07-14 21:22:03

A. 用單片機設計時鍾電路

呵呵!我這有,有匯編的還有C語言的,顯示方式為:00-00-00,按第一個鍵秒加一,按第二個分加一,第三個時加一,P0口控制數碼管(共陰極)的位選,P3口控制段選,三個按鍵分別為:P1,0、P1,1、P1,2
匯編如下(不曉樓主意下如何):
S_SET BIT P1.0 ;數字鍾秒控制位
M_SET BIT P1.1 ;分鍾控制位
H_SET BIT P1.2 ;小時控制位
SECOND EQU 30H
MINUTE EQU 31H
HOUR EQU 32H
TCNT EQU 34H
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START:MOV DPTR,#TABLE
MOV HOUR,#0 ;初始化
MOV MINUTE,#0
MOV SECOND,#0
MOV TCNT,#0
MOV TMOD,#01H
MOV TH0,#(65536-50000)/256 ;定時50毫秒
MOV TL0,#(65536-50000)MOD 256
MOV IE,#82H
SETB TR0
;****************************************************
;判斷是否有控制鍵按下,是哪一個鍵按下
A1: LCALL DISPLAY
JNB S_SET,S1
JNB M_SET,S2
JNB H_SET,S3
LJMP A1
S1: LCALL DELAY ;去抖動
JB S_SET,A1

INC SECOND ;秒值加1
MOV A,SECOND
CJNE A,#60,J0 ;判斷是否加到60秒
MOV SECOND,#0
LJMP K1
S2: LCALL DELAY
JB M_SET,A1

K1: INC MINUTE ;分鍾值加1
MOV A,MINUTE
CJNE A,#60,J1 ;判斷是否加到60分
MOV MINUTE,#0
LJMP K2
S3: LCALL DELAY
JB H_SET,A1

K2: INC HOUR ;小時值加1
MOV A,HOUR
CJNE A,#24,J2 ;判斷是否加到24小時
MOV HOUR,#0
MOV MINUTE,#0
MOV SECOND,#0
LJMP A1
;****************************************************
;等待按鍵抬起
J0: JB S_SET,A1
LCALL DISPLAY
SJMP J0
J1: JB M_SET,A1
LCALL DISPLAY
SJMP J1
J2: JB H_SET,A1
LCALL DISPLAY
SJMP J2
;***********************************************
;定時器中斷服務程序,對秒,分鍾和小時的計數
INT_T0:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
INC TCNT
MOV A,TCNT
CJNE A,#20,RETUNE ;計時1秒
INC SECOND
MOV TCNT,#0
MOV A,SECOND
CJNE A,#60,RETUNE
INC MINUTE
MOV SECOND,#0
MOV A,MINUTE
CJNE A,#60,RETUNE
INC HOUR
MOV MINUTE,#0
MOV A,HOUR
CJNE A,#24,RETUNE
MOV HOUR,#0
MOV MINUTE,#0
MOV SECOND,#0
MOV TCNT,#0
RETUNE:RETI
;******************************************
;顯示控制子程序
DISPLAY:MOV A,SECOND ;顯示秒
MOV B,#10
DIV AB
CLR P3.6
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.6
MOV A,B
CLR P3.7
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.7

CLR P3.5
MOV P0,#40H ;顯示分隔符
LCALL DELAY
SETB P3.5

MOV A,MINUTE ;顯示分鍾
MOV B,#10
DIV AB
CLR P3.3
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.3
MOV A,B
CLR P3.4
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.4

CLR P3.2
MOV P0,#40H ;顯示分隔符
LCALL DELAY
SETB P3.2

MOV A,HOUR ;顯示小時
MOV B,#10
DIV AB
CLR P3.0
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.0
MOV A,B
CLR P3.1
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.1
RET

TABLE:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY:MOV R6,#10
D1: MOV R7,#249
DJNZ R7,$
DJNZ R6,D1
RET

END

B. C51單片機電子時鍾設計思路

用定時器,設置定時時間為20毫秒,50次累加=1秒,累加秒數據60次=1分,依次類推。每次中斷完成累加和顯示(動態,刷新頻率50HZ,應該不會閃爍)

C. 時鍾電路原理及原理圖

一、時鍾電路原理
時鍾電路,就是產生象時鍾一樣准確的振盪電路。時鍾電路主要由晶體振盪器、晶震控制晶元和電容三部分構成,具有價格低廉、介面簡單、使用方便等特點,目前已有了很廣泛的應用,如電子表的時鍾電路、電腦的時鍾電路、MP3/4的時鍾電路等。目前流行的串列時鍾電路有DS1302、DS1307、PCF8485等,其中,DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,採用串列數據傳輸,並為掉電保護電源提供可編程的充電功能。本文我們就以DS1302為例來對時鍾電路原理進行詳細的講解。

二、時鍾電路原理- -引腳
實時時鍾電路DS1302包括VCC1、VCC2、X1、X2、SCLK、I/O、RST、GND八個引腳。其中,VCC1用作主電源,VCC2用作備用電源,當滿足VCC1>VCC2時,由主電源向DS1302供電,當滿足VCC2>VCC1+0.2時,由備用電源向DS1302進行供電;X1和X2是32867Hz的晶振管腳,主要用於為晶元提供時鍾脈沖;SCLK為串列時鍾,主要用於提供時鍾信號以控制數據的輸入與輸出;I/O為輸入輸出設備,用作三線介面時的雙向數據線;RST主要提供復位功能,其在數據的讀寫過程中,必須保持為高電位;GND引腳用於和大地相連。

三、時鍾電路原理
DS1302的控制位元組的最高有效位即位7必須是邏輯1,若該位為0,則不能把該數據寫入進DS1302中;位6為1表示存取RAM數據,為0表示存取日歷時鍾數據;位5至位1表示操作單元的地址;最低有效位即位0為1表示要進行讀操作,為0表示要進行寫操作;其控制位元組總是從最低位開始進行輸出。

在控制指令字輸入後的下一個SCLK時鍾的上升沿時,數據被寫入DS1302,數據輸入從最低有效位即位0開始。同樣,在緊跟8位的控制指令字後的下一個SCLK脈沖的下降沿讀出DS1302的數據,數據輸出時也是從最低有效位即位0開始。

D. 採用單片機控制的時鍾計時器的設計 內容: 以MCS-51單片機為核心,設計並製作時鍾計時器,用6位LED數碼管

KEYVAL EQU 30H
KEYTM EQU 31H
KEYSCAN EQU 32H
DAT EQU 33H
SCANLED EQU 39H
CLK EQU 77H
SEC EQU 78H
MIN EQU 79H
HOUR EQU 7AH
PAUSE BIT 00H
DOT BIT 01H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR ;50ms定時
ORG 001BH
LJMP T1ISR ;掃描顯示
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#03CH
MOV TL0,#0B0H
MOV TH1,#0ECH
MOV TL1,#078H
MOV KEYVAL,#0
MOV SCANLED,#0
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV 37H,#10H
MOV 38H,#10H
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
MOV CLK,#0
CLR PAUSE
SETB EA
SETB ET1
SETB TR1
LOOP:
LCALL KEYSEL
MOV A,KEYVAL
CJNE A,#0FFH,LOOP1
SJMP LOOP
LOOP1:
CJNE A,#10,LOOP2 ;「ON」啟動
SETB TR0
SETB ET0
SETB PAUSE
SJMP LOOP
LOOP2:
CJNE A,#11,LOOP3 ;「=」清零
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
LCALL DISCHG
SJMP LOOP
LOOP3:
CJNE A,#15,LOOP4 ;「+」暫停
CLR TR0
CLR ET0
CLR PAUSE
SJMP LOOP
LOOP4:
CJNE A,#14,LOOP5 ;「-」清顯示暫停
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV 37H,#10H
MOV 38H,#10H
CLR TR0
CLR ET0
CLR PAUSE
SJMP LOOP
LOOP5:
CJNE A,#10,LOOP6 ;數字鍵
LOOP6:
JC LOOP7
LJMP LOOP
LOOP7:
JNB PAUSE,LOOP8 ;暫停狀態可以輸入數字鍵
LJMP LOOP
LOOP8:
MOV 33H,34H
MOV 34H,35H
MOV 35H,36H
MOV 36H,37H
MOV 37H,38H
MOV 38H,KEYVAL
MOV A,33H
SWAP A
ORL A,34H
LCALL BCDH
MOV HOUR,A
MOV A,35H
SWAP A
ORL A,36H
LCALL BCDH
MOV MIN,A
MOV A,37H
SWAP A
ORL A,38H
LCALL BCDH
MOV SEC,A
LJMP LOOP

;------------------
;BCD轉換為十六進制
BCDH:
MOV B,#10H
DIV AB
MOV R7,B
MOV B,#10
MUL AB
ADD A,R7
RET
;------------------
;十六進制轉換為BCD
HBCD:
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
;------------------
KEYSEL:
MOV KEYVAL,#0
MOV KEYSCAN,#0EFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS1
MOV KEYVAL,A
SJMP KEYRTN
KEYS1:
MOV KEYSCAN,#0DFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS2
CLR C
ADD A,#4
MOV KEYVAL,A
SJMP KEYRTN
KEYS2:
MOV KEYSCAN,#0BFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS3
CLR C
ADD A,#8
MOV KEYVAL,A
SJMP KEYRTN
KEYS3:
MOV KEYSCAN,#7FH
LCALL GETKEY
MOV A,KEYTM
JZ KEYRTN
CLR C
ADD A,#12
MOV KEYVAL,A
KEYRTN:
LCALL CHGKEY
RET
;--------------------
GETKEY:
MOV KEYTM,#0
MOV A,KEYSCAN
MOV P3,A
NOP
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV R2,#10
LCALL DELAY
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV A,P3
ANL A,#0FH
MOV R7,A
SF:
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ SF
MOV A,R7
CJNE A,#0EH,NK1
MOV KEYTM,#1
SJMP NOKEY
NK1:
CJNE A,#0DH,NK2
MOV KEYTM,#2
SJMP NOKEY
NK2:
CJNE A,#0BH,NK3
MOV KEYTM,#3
SJMP NOKEY
NK3:
CJNE A,#07H,NOKEY
MOV KEYTM,#4
NOKEY: RET
;--------------------
DELAY:
MOV R3,#50
DELAY1:
MOV R4,#100
DJNZ R4,$
DJNZ R3,DELAY1
DJNZ R2,DELAY
RET
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC CLK
MOV A,CLK
CJNE A,#20,T0ISRE
MOV CLK,#0
INC SEC
MOV A,SEC
CJNE A,#60,T0ISRE
MOV SEC,#0
INC MIN
MOV A,MIN
CJNE A,#60,T0ISRE
MOV MIN,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,T0ISRE
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
T0ISRE:
LCALL DISCHG
POP ACC
RETI
;--------------------
DISCHG:
MOV A,HOUR
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 34H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 33H,A
MOV A,MIN
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 36H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 35H,A
MOV A,SEC
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 38H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 37H,A
RET
;--------------------
T1ISR:
PUSH ACC
CLR TR1
MOV TH1,#0ECH
MOV TL1,#78H
SETB TR1
MOV DPTR,#LEDTAB
T100:
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T101
MOV P2,#01H
CLR DOT
SJMP T1DIS
T101:
DEC A
JNZ T102
MOV P2,#02H
SETB DOT
SJMP T1DIS
T102:
DEC A
JNZ T103
MOV P2,#04H
CLR DOT
SJMP T1DIS
T103:
DEC A
JNZ T104
MOV P2,#08H
SETB DOT
SJMP T1DIS
T104:
DEC A
JNZ T105
MOV P2,#10H
CLR DOT
SJMP T1DIS
T105:
MOV P2,#20H
CLR DOT
T1DIS:
MOV A,@R0
MOVC A,@A+DPTR
JNB DOT,T1DIS1
ORL A,#01H
T1DIS1:
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
CJNE A,#6,T1END
MOV SCANLED,#0
T1END:
POP ACC
RETI
;--------------------
CHGKEY:
MOV A,KEYVAL
JZ KV16
DEC A
JNZ KV01
MOV KEYVAL,#7
RET
KV01:
DEC A
JNZ KV02
MOV KEYVAL,#4
RET
KV02:
DEC A
JNZ KV03
MOV KEYVAL,#1
RET
KV03:
DEC A
JNZ KV04
MOV KEYVAL,#10
RET
KV04:
DEC A
JNZ KV05
MOV KEYVAL,#8
RET
KV05:
DEC A
JNZ KV06
MOV KEYVAL,#5
RET
KV06:
DEC A
JNZ KV07
MOV KEYVAL,#2
RET
KV07:
DEC A
JNZ KV08
MOV KEYVAL,#0
RET
KV08:
DEC A
JNZ KV09
MOV KEYVAL,#9
RET
KV09:
DEC A
JNZ KV10
MOV KEYVAL,#6
RET
KV10:
DEC A
JNZ KV11
MOV KEYVAL,#3
RET
KV11:
DEC A
JNZ KV12
MOV KEYVAL,#11
RET
KV12:
DEC A
JNZ KV13
MOV KEYVAL,#12
RET
KV13:
DEC A
JNZ KV14
MOV KEYVAL,#13
RET
KV14:
DEC A
JNZ KV15
MOV KEYVAL,#14
RET
KV15:
DEC A
JNZ KV16
MOV KEYVAL,#15
RET
KV16:
MOV KEYVAL,#0FFH
RET
;--------------------
LEDTAB: DB 0FCH ;"0" 00H
DB 60H ;"1" 01H
DB 0DAH ;"2" 02H
DB 0F2H ;"3" 03H
DB 66H ;"4" 04H
DB 0B6H ;"5" 05H
DB 0BEH ;"6" 06H
DB 0E0H ;"7" 07H
DB 0FEH ;"8" 08H
DB 0F6H ;"9" 09H
DB 0EEH ;"A" 0AH
DB 3EH ;"B" 0BH
DB 9CH ;"C" 0CH
DB 7AH ;"D" 0DH
DB 9EH ;"E" 0EH
DB 8EH ;"F" 0FH
DB 00H ;" " 10H
;--------------------
END

E. 單片機的電路怎麼設計

單片機的電路要實現控制LED燈,需要以單片機最小系統的方式來實現,單片機最小系統由2部分構成:
第1部分:單片機復位電路。硬體組成:電容+電阻構成復位電路。
第2部分:單片機時鍾電路。電阻組成:12MHz晶振+11pF陶瓷電容,提供單片機的工作周期。
完成單片機最小系統後再完成LED燈的控制,LED燈與單片機的IO埠連接時,需要將LED燈串聯220Ω的電阻限流。然後單片機的一組IO口最多串聯2個LED燈,如果要多個LED燈,那最多可以在單片機的IO口並聯4組2個串接在一起的LED燈。單片機有32個IO口,如此算下來,你一個IO口做多可以控制8個LED燈,那麼32個IO口,單片機可以控制256個LED燈。
關於LED的一閃一閃的問題,這個採用單片機的內部定時器即可,51單片機內部有T0、T1供給2個定時器,可以根據需要自行設定。
生活不止有眼前的苟且,還有詩和遠方

頭像賬號也是騰訊賬號。有問題可以添加@

F. 51單片機控制的電子時鍾系統 畢業設計

可以用1302做
我有現成的
LCD1602
顯示的,51做的
基本思路是用單片機讀取1302裡面的信息,處理,然後送LCD1602顯示。
有興趣可以去我博客看,裡面還上傳了之前我做的實物圖片和PCB,可以照著做。

G. 用單片機設計一個時鍾,可顯示時和分,可以調時間,也要有鬧鍾功能,要有設計的電路圖

其實不用定時中斷也能實現功能:
#include<reg51.h> 主函數
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};定義0-9數組
unsigned int tmp;定義變數
void delay(unsigned int xms)定義延時函數
{unsigned int j,i;
for(i=0;i<xms;i++)
for(j=0;j<100;j++);
}
void disp()定義子函數
{
P1=tmp;
delay(1);
P2=0xff;
tmp=tmp<<1;
}
void main( )
{

unsigned char z,s=00,m=00,h=00;給時鍾初始值
while(1)
{
for(z=0;z<100;z++)
{
tmp=0x01;
P2=tab[h/10];小時顯示

disp();
P2=tab[h%10];

disp();
P2=tab[m/10];分鍾顯示

disp();
P2=tab[m%10];

disp();
P2=tab[s/10];秒顯示

disp();
P2=tab[s%10];

disp();

}
s++;
while(s==60)秒進一位,到60清0
{
m++;
s=00;
}
while(m==60)分鍾進一位,到60清0

{
h++;
m=00;
}
while(h==24)小時進一位,到24清0
{
h=00;
}

}

}

H. 51單片機 可編程作息時間控制器設計

本設計是可編程作息時間控制器設計,由單片機AT89C51晶元和LCD、LED顯示器,輔以必要的電路,構成一個單片機四路可調鬧鍾。電子鍾可採用數字電路實現,也可以採用單片機來完成。LCD顯示「時」,「分」,LED亮燈來表示鬧鍾的到來,定時時間到能發出警報聲。現在是自動化高度發達的時代,特別是電子類產品都是靠內部的控制電路來實現對產品的控制,達到自動運行的目的,這就需要我們這里要做的設計中的電器元件及電路的支持。
在這次設計中主要是用AT89S51來進行定時,也結合著其他輔助電路實施控制,在定時的時候,按一下控制小時的鍵對小時加一;按一下控制分鍾的鍵對分鍾加一;到達預設的時間,此電路就會發出報警聲音提示已經到點。
自從人類學會計時開始,計時方式由在木棍和骨頭上刻標記,隨著人類智慧的發展,到後面使用計時工具不斷改進,從最開始的圭表、日冕、漏壺、漏箭、機械鬧鍾、秒錶、沙漏、懷表、自擺鍾、石英鍾等。現在,高精度的計時工具大多數採用石英晶體振盪器,走時精度高,穩定性好,使用方便,不需要經常調校。而後經發展,數字式電子鍾採用集成電路設計時,解碼代替機械式傳動,LED顯示器代替指針顯示時間,減少計時誤差。這種電子時鍾具備實現時、分、秒功能,同時進行校對。外觀時尚,使用方便,深受消費者青睞。

I. 單片機時鍾程序編寫及電路設計方面的一些問題

單片機簡介可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用單片機或其它可編程邏輯器件上。
學習單片機是否很困難呢?應當說,對於已經具有電子電路,尤其是數字電路基本知識的讀者來說,不會有太大困難,如果你對PC機有一定基礎,學習單片機就更容易。為使絕大多數讀者能用上單片機。我們這里將盡量按深入淺出、刪繁就簡、理論聯系實際的原則把單片機的基本工作原理、使用方法交給讀者,以達到把大家領進單片機之「門」的目的。不過,單片機和PC機一樣,是實踐性很強的一門技術,有人說「計算機是玩出來的」,單片機亦一樣,只有多「玩」,也就是多練習、多實際操作,才能真正掌握它。因此,本講座會提供各種練習和實驗,並介紹一些適用於初學者且性價比較高的單片機和開發系統的貨源。你只有認真完成成這些實踐環節,才能為進一步深造,打好基礎。

單片機的組成
單片機要自動完成計算,它應該具有哪些最重要的部分呢?
我們以打算盤為例計算一道算術題。例:36+163×156-166÷34。現在要進行運算,首先需要一把算盤,其次是紙和筆。我們把要計算的問題記錄下來,然後第一步先算163×156,把它與36相加的結果記在紙上,然後計算166÷34,再把它從上一次結果中減去,就得到最後的結果。
現在,我們用單片機來完成上述過程,顯然,它首先要有代替算盤進行運算的部件,這就是「運算器」;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數據和中間結果,還要記住使單片機能自動進行運算而編制的各種命令。這類器件就稱為「存貯器」。此外,還需要有能代替人作用的控制器,它能根據事先給定的命令發出各種控制信號,使整個計算過程能一步步地進行。但是光有這三部分還不夠,原始的數據與命令要輸入,計算的結果要輸出,都需要按先後順序進行,有時還需等待。如上例中,當在計算163×156時,數字36就不能同時進入運算器。因此就需要在單片機上設置按控制器的命令進行動作的「門」,當運算器需要時,就讓新數據進入。或者,當運算器得到最後結果時,再將此結果輸出,而中間結果不能隨便「溜出」單片機。這種對輸入、輸出數據進行一定管理的「門」電路在單片機中稱為「口」(Port)。在單片機中,基本上有三類信息在流動,一類是數據,即各種原始數據(如上例中的36、163等)、中間結果(如166÷34所得的商4、余數30等)、程序(命令的集合)等。這樣要由外部設備通過「口」進入單片機,再存放在存貯器中,在運算處理過程中,數據從存貯器讀入運算器進行運算,運算的中間結果要存入存貯器中,或最後由運算器經「出入口」輸出。用戶要單片機執行的各種命令(程序)也以數據的形式由存貯器送入控制器,由控制器解讀(解碼)後變為各種控制信號,以便執行如加、減、乘、除等功能的各種命令。所以,這一類信息就稱為控制命令,即由控制器去控制運算器一步步地進行運算和處理,又控制存貯器的讀(取出數據)和寫(存入數據)等。第三類信息是地址信息,其作用是告訴運算器和控制器在何處去取命令取數據,將結果存放到什麼地方,通過哪個口輸入和輸出信息等。
存貯器又分為只讀存貯器和讀寫存貯器兩種,前者存放調試好的固定程序和常數,後者存放一些隨時有可能變動的數據。顧名思義,只讀存貯器一旦將數據存入,就只能讀出,不能更改(EPROM、E2PROM等類型的ROM可通過一定的方法來更改、寫入數據——編者注)。而讀寫存貯器可隨時存入或讀出數據。
實際上,人們往往把運算器和控制器合並稱為中央處理單元——CPU。單片機除了進行運算外,還要完成控制功能。所以離不開計數和定時。因此,在單片機中就設置有定時器兼計數器,其基本結構與本連載之(二)中的舉例類似。到這里為止,我們已經知道了單片機的基本組成,即單片機是由中央處理器(即CPU中的運算器和控制器)、只讀存貯器(通常表示為ROM)、讀寫存貯器(又稱隨機存貯器通常表示為RAM)、輸入/輸出口(又分為並行口和串列口,表示為I/O口)等等組成。實際上單片機裡面還有一個時鍾電路,使單片機在進行運算和控制時,都能有節奏地進行。另外,還有所謂的「中斷系統」,這個系統有「傳達室」的作用,當單片機控制對象的參數到達某個需要加以干預的狀態時,就可經此「傳達室」通報給CPU,使CPU根據外部事態的輕重緩急來採取適當的應付措施。
現在,我們已經知道了單片機的組成,餘下的問題是如何將它們的各部分連接成相互關聯的整體呢?實際上,單片機內部有一條將它們連接起來的「紐帶」,即所謂的「內部匯流排」。此匯流排有如大城市的「幹道」,而CPU、ROM、RAM、I/O口、中斷系統等就分布在此「匯流排」的兩旁,並和它連通。從而,一切指令、數據都可經內部匯流排傳送,有如大城市內各種物品的傳送都經過幹道進行。
單片機的指令系統和匯編語言程序
前面已經講述了單片機的幾個主要組成部分,這些部分構成了單片機的硬體。所謂硬體(Hardware),就是看得到,摸得到的實體。但是,光有這樣的硬體,還只是有了實現計算和控制功能的可能性。單片機要真正地能進行計算和控制,還必須有軟體(Software)的配合。軟體主要指的是各種程序。只有將各種正確的程序「灌入」(存入)單片機,它才能有效地工作。單片機所以能自動地進行運算和控制,正是由於人把實現計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預先存入到存貯器中,單片機在CPU的控制下,將指令一條條地取出來,並加以翻譯和執行。就以兩個數相加這一簡單的運算來說,當需要運算的數已存入存貯器後,還需要進行以下幾步: 第一步:把第一個數從它的存貯單元(Location)中取出來,送至運算器。
第二步:把第二個數從它所在的存貯單元中取出來,送至運算器;
第三步:相加;
第四步:把相加完的結果,送至存貯器中指定的單元。
所有這些取數、送數、相加、存數等等都是一種操作(Operation),我們把要求計算機執行的各種操作用命令的形式寫下來,這就是指令。但是怎樣才能辨別和執行這些操作呢?這是在設計單片機時由設計人員賦予它的指令系統所決定的。一條指令,對應著一種基本操作;單片機所能執行的全部指令,就是該單片機的指令系統(Iustruction Set),不同種類的單片機,其指令系統亦不同。
使用單片機時,事先應當把要解決的問題編成一系列指令。這些指令必須是選定的單片機能識別和執行的指令。單片機用戶為解決自己的問題所編的指令程序,稱為源程序(Source Program)。指令通常分為操作碼(Opcode)和操作數(Operand)兩大部分。操作碼表示計算機執行什麼操作,即指令的功能;操作數表示參加操作的數或操作數所在的地址(即操作數所存放的地方編號)。因為單片機是一種可編程器件,只「認得」二進碼(0、1)。要單片機運作,單片機系統中的所有指令,都必須以二進制編碼的形式來表示。例如,在Intel公司的MCS-51系列單片機中,從存貯器中取出一數到CPU中的累加器(在運算器中,參與運算、存放運算結果的專用寄存器)的指令代碼為74H,累加器內容加立即數的代碼為24H,再加上立即數代碼,累加器送數到內部RAM存貯器的代碼為F6H~F7H等。這些指令是用十六進製表示二進制的機器碼。MCS-51單片機的字長為8位,有時,要完成某些操作用一個位元組尚不能充分表達。所以,在指令系統中有單位元組指令,也有多位元組指令。機器碼是由一連串的0和1組成,沒有明顯的特徵,不好記憶,不易理解,易出錯。所以,直接用它來編寫程序十分困難。因而,人們就用一些助記符(Mue monic)——通常是指令功能的英文縮寫來代替操作碼,如MCS-51中數的傳送常用MOV(Move的縮寫)、加法用Add(Addition的縮寫)來作為助記符。這樣,每條指令有明顯的動作特徵,易於記憶和理解,也不容易出錯。用助記符來編寫的程序稱為匯編語言程序。但是,助記符編寫的程序便於人理解,可單片機卻只認識二進制機器代碼,因此,為了讓單片機能「讀懂」匯編語言程序必須再轉換成由二進制機器碼構成的程序,這種轉換過程,就稱為「匯編」。匯編可藉助於人工查表法來實現,也可藉助PC機通過所謂「交叉匯編程序」來完成。由機器碼構成的用戶程序一旦「進入」了單片機,再「啟動」單片機,就可讓它執行輸入程序所規定的任務。
MCS-51的CPU和存儲器
CPU結構
單片機8051的CPU由運算器和控制器組成。
一、運算器
運算器以完成二進制的算術/邏輯運算部件ALU為核心,再加上暫存器TMP、累加器ACC、寄存器B、程序狀態標志寄存器PSW及布爾處理器。累加器ACC是一個八位寄存器,它是CPU中工作最頻繁的寄存器。在進行算術、邏輯運算時,累加器ACC往往在運算前暫存一個操作數(如被加數),而運算後又保存其結果(如代數和)。寄存器B主要用於乘法和除法操作。標志寄存器PSW也是一個八位寄存器,用來存放運算結果的一些特徵,如有無進位、借位等。其每位的具體含意如下所示。PSW
CY AC FO RS1 RS0 OV - P對用戶來講,最關心的是以下四位。
1�進位標志CY(PSW�7)。它表示了運算是否有進位(或借位)。如果操作結果在最高位有進位(加法)或者借位(減法),則該位為1,否則為0。
2�輔助進位標志AC。又稱半進位標志,它反映了兩個八位數運算低四位是否有半進位,即低四位相加(或減)有否進位(或借位),如有則AC為1狀態,否則為0。
3�溢出標志位OV。MCS-51反映帶符號數的運算結果是否有溢出,有溢出時,此位為1,否則為0。
4�奇偶標志P。反映累加器ACC內容的奇偶性,如果ACC中的運算結果有偶數個1(如11001100B,其中有4個1),則P為0,否則,P=1。
PSW的其它位,將在以後再介紹。由於PSW存放程序執行中的狀態,故又叫程序狀態字.運算器中還有一個按位(bit)進行邏輯運算的邏輯處理機(又稱布爾處理機)。其功能在介紹位指令時再說明。
二、控制器
控制器是CPU的神經中樞,它包括定時控制邏輯電路、指令寄存器、解碼器、地址指針DPTR及程序計數器PC、堆棧指針SP等。這里程序計數器PC是由16位寄存器構成的計數器。要單片機執行一個程序,就必須把該程序按順序預先裝入存儲器ROM的某個區域。單片機動作時應按順序一條條取出指令來加以執行。因此,必須有一個電路能找出指令所在的單元地址,該電路就是程序計數器PC。當單片機開始執行程序時,給PC裝入第一條指令所在地址,它每取出一條指令(如為多位元組指令,則每取出一個指令位元組),PC的內容就自動加1,以指向下一條指令的地址,使指令能順序執行。只有當程序遇到轉移指令、子程序調用指令,或遇到中斷時(後面將介紹),PC才轉到所需要的地方去。8051CPU通過指定的地址,從ROM相應單元中取出指令位元組放在指令寄存器中寄存,然後,指令寄存器中的指令代碼被解碼器譯成各種形式的控制信號,這些信號與單片機時鍾振盪器產生的時鍾脈沖在定時與控制電路中相結合,形成按一定時間節拍變化的電平和時鍾,即所謂控制信息,在CPU內部協調寄存器之間的數據傳輸、運算等操作。

http://www.elemcu.com/mcu%20de%20zhou%20%20cheng.htm
http://www..com/?word=%B5%A5%C6%AC%BB%FA%CA%B1%D6%D3%B3%CC%D0%F2&tn=myie2dg

J. 8051單片機時鍾電路

8051單片機時鍾電路如下所示:


電容C2、C3對頻率有微調的作用,電容容量的選擇范圍在30pF±10pF。震盪頻率的選擇范圍為1.2-12MHz。時鍾周期=石英振盪器頻率的倒數。


單片機是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。

閱讀全文

與單片機控制時鍾電路設計相關的資料

熱點內容
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923
全球程序員節點贊 瀏覽:986
php函數傳遞數組 瀏覽:631
人工峰群演算法的目標函數 瀏覽:468
如何刪加密文檔 瀏覽:105
塗鴉app一鍵執行如何刪除 瀏覽:756
安卓手機如何打開fr3文件 瀏覽:743
壓縮袋8絲和14絲是什麼意思 瀏覽:647
程序員大咖java 瀏覽:70
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:672
gz壓縮文件夾 瀏覽:179
字母h從右往左跑的c語言編程 瀏覽:137
安卓手機如何擁有蘋果手機橫條 瀏覽:771
業余編程語言哪個好學 瀏覽:151