① 單片機的鎖相環是不是時鍾乘法器如果不是,兩者的區別是什麼
鎖相環是一種反饋電路,鎖定頻率用的,乘法器作用就是兩個信號相乘。不一樣。
② 一塊完整的單片機晶元至少有哪些組成部件
CPU(內核,決定處理能力等等),
RAM(內存,決定你程序中變數的多少),
ROM(程序存儲器,決定你程序代碼能寫的長度),
IO口及相應寄存器,
定時計數器,
中斷控制器,
看門狗定時器。
如果要有較好的通信功能就應該有UART串口通信模塊,有些單片機也有SPI ,irDA,IIC,CAN,485等等通信介面。
如果要有數據採集功能則還要有ADC。
如果要有好的控制功能就要有PWM發生器,DAC等等。
當然還有許多單片機有語音處理模塊,SVS電源監測模塊,乘法器,DMA控制器,USB控制器,LCD控制器等等。
③ 單片機乘法指令計算步驟求解
……4Eh×5Dh = 1C56h 啊,你在草稿紙手算一下,或者直接計算器按就行。
十六進制乘法你不熟的話,可以先都轉成十進制,用十進制乘法得出乘積,再轉成十六進制。
4Eh = 78d,5Dh = 93d
78×93 = 7254d
7254d = 1C56h
好好學習天天向上
④ 32位單片機計算兩個int16的數相乘和兩個int32的數相乘,所花的周期一樣嗎
一般是一樣的。
這個具體可以查一下晶元內核指令代碼的手冊,如果有硬體乘法指令的系統,16位運算與32位運算所用時間,一般是一樣的。
樓上的忽略了32位機這個前提。一般在32位機上是會有硬體乘法指令或者是乘法器部件,是可以在單周期內計算32位乘法的。而16位的乘法,一般都是擴展成32位的乘法來實現,所以說時間一般來說是一樣的,都是一個周期。
特殊的情況包括,
沒有硬體乘法,使用移位加程序模擬乘法功能,32位的乘法時間可能會比16位乘多一倍,當然這還取決於乘法模擬演算法的具體實現。
用32位實現16位乘法,可能需要對16位數進行額外的擴展調整,這時是16位的慢一點。一般在C語言中就是根據系統字長規定int的類型,所以在C語言中如果不考慮移植,多使用int可能會提高編譯的效率,在32位機上最好使用32位的數據進行計算反而更快一些。
⑤ 單片機乘法的實現
org 0000h
jmp start
start:
MOV SP,#60H
mov r2,#20h
mov r3,#34h
mov a,#99h
lcall bhd
lcall hbd
NOP
NOP
;三位元組除以單位元組子程序
;入口條件:被除數在R3、R4、R5中,除數在R7中。
;出口信息:OV=0 時,雙位元組商在R4、R5中,OV=1 時溢出。
;影響資源:PSW、A、B、R2~R7 堆棧需求: 2位元組
DV31:
CLR C
MOV A,R3
SUBB A,R7
JC DV30
SETB OV ;商溢出
RET
DV30:
MOV R2,#10H;求R3R4R5/R7-→R4R5
DM23:
CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DM24
MOV R3,A
INC R5
DM24:
DJNZ R2,DM23
MOV A,R3 ;四捨五入
ADD A,R3
JC DM25
SUBB A,R7
JC DM26
DM25:
INC R5
MOV A,R5
JNZ DM26
INC R4
DM26:
CLR OV
RET ;商在R4R5中
;兩位元組除以單位元組子程序
;入口條件:被除數在R4、R5中,除數在R7中。
;出口信息:OV=0 時,單位元組商在R3中,OV=1 時溢出。
; 余數在r4中
;影響資源:PSW、A、R3~R7 堆棧需求: 2位元組
D457:
CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV;商溢出
RET
DV50:
MOV R6,#8 ;求平均值(R4R5/R7-→R3)
DV51:
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DV52
MOV R4,A
DV52:
CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
MOV A,R4 ;四捨五入
ADD A,R4
JC DV53
SUBB A,R7
JC DV54
DV53:
INC R3
DV54:
CLR OV
RET
;四位元組除以單位元組子程序
;入口條件:被除數在R2、R3、R4、R5中,除數在R7中。
;出口信息:a<ff 時三位元組商在R3、r4、r5中,a=ff 時溢出。
; 余數在r2中
;影響資源:PSW、A、R2~R7 堆棧需求:2位元組
;input dat1,dat2,dat3,r5 ;r0(h),:divisor dat2(h) dat3() r5(l):quotient
;dat1(h)dat2(l):resie
F_DIV:
clr c
mov a,r7
jz fd_over
fd_begin:
mov a,r2
subb a,r7
jc no_overflow
mov a,#0ffh
ret
no_overflow:
clr a
mov r6,#18h
fdiv0:
lcall rlc4
jc goushang
mov a,r2
subb a,r7
jc fdnext
inc r5
mov r2,a
fdnext:
djnz r6,fdiv0
jmp fdone
goushang:
mov a,r2
subb a,r7
inc a
inc r5
mov r2,a
jmp fdnext
fdone:
clr a
clr ov
ret
fd_over:
mov a,#0ffh
ret
rlc4:
clr c
mov a,r5
rlc a
mov r5,a
mov a,r4
rlc a
mov r4,a
mov a,r3
rlc a
mov r3,a
mov a,r2
rlc a
mov r2,a
ret
;DIVD功能:雙位元組二進制無符號數除法
;入口條件:被除數在R2、R3、R4、R5中,除數在R6、R7中。
;出口信息:OV=0 時,雙位元組商在R4、R5中,OV=1 時溢出。
; 余數在r2 r3中
;影響資源:PSW、A、B、R1~R7 堆棧需求: 2位元組
DIVD:
CLR C ;比較被除數和除數
MOV A,R3
SUBB A,R7
MOV A,R2
SUBB A,R6
JC DVD1
SETB OV ;溢出
RET
DVD1:
MOV B,#10H ;計算雙位元組商
DVD2:
CLR C ;部分商和余數同時左移一位
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C ;保存溢出位
CLR C
SUBB A,R7 ;計算(R2R3-R6R7)
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 ;結果判斷
JC DVD3
MOV R2,A ;夠減,存放新的余數
MOV A,R1
MOV R3,A
INC R5 ;商的低位置一
DVD3:
DJNZ B,DVD2;計算完十六位商(R4R5)
; MOV A,R4 ;商移到R2R3中
; MOV R2,A
; MOV A,R5
; MOV R3,A
CLR OV ;設立成功標志
RET
;雙位元組乘以雙位元組乘法
;入口條件:被乘數在R2、R3中,乘數在R6、R7中。
;出口信息:乘積在R2、R3、R4、R5中。
;影響資源:PSW、A、B、R2~R7 堆棧需求: 2位元組
MULD:
MOV A,R3 ;計算R3乘R7
MOV B,R7
MUL AB
MOV R4,B ;暫存部分積
MOV R5,A
MOV A,R3 ;計算R3乘R6
MOV B,R6
MUL AB
ADD A,R4 ;累加部分積
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;計算R2乘R7
MOV B,R7
MUL AB
ADD A,R4 ;累加部分積
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 ;計算R2乘R6
MOV B,R6
MUL AB
ADD A,R3 ;累加部分積
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET
;雙位元組乘以單位元組乘法
;入口條件:被乘數在R2、R3中,乘數在R7中。
;出口信息:乘積在R2、R3、R4中。
;影響資源:PSW、A、B、R2~R7 堆棧需求: 2位元組
mul21:
mov a,r3
mov b,r7
mul ab
mov r4,a
mov r5,b
mov a,r2
mov b,r7
mul ab
add a,r5
mov r3,a
mov a,b
addc a,#00h
mov r2,a
ret
;功能:雙位元組十六進制整數轉換成雙位元組BCD碼整數
;入口條件:待轉換的雙位元組十六進制整數在R6、R7中。
;出口信息:轉換後的三位元組BCD碼整數在R3、R4、R5中。
;影響資源:PSW、A、R2~R7 堆棧需求: 2位元組
HB2:
CLR A ;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;轉換雙位元組十六進制整數
HB3:
MOV A,R7 ;從高端移出待轉換數的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD碼帶進位自身相加,相當於乘2
ADDC A,R5
DA A ;十進制調整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;雙位元組十六進制數的萬位數不超過6,不用調整
DJNZ R2,HB3 ;處理完16bit
RET
;入口條件:待轉換的單位元組BCD碼整數在累加器A中。
;出口信息:轉換後的單位元組十六進制整數仍在累加器A中。
;影響資源:PSW、A、B、R4 堆棧需求: 2位元組
BCDH:
MOV B,#10H ;分離十位和個位
DIV AB
MOV R4,B ;暫存個位
MOV B,#10 ;將十位轉換成十六進制
MUL AB
ADD A,R4 ;按十六進制加上個位
RET
;雙位元組BCD碼整數轉換成雙位元組十六進制整數
;入口條件:待轉換的雙位元組BCD碼整數在R2、R3中。
;出口信息:轉換後的雙位元組十六進制整數仍在R2、R3中。
;影響資源:PSW、A、B、R2、R3、R4 堆棧需求:4位元組
BH2:
MOV A,R3 ;將低位元組轉換成十六進制
LCALL BCDH
MOV R3,A
MOV A,R2 ;將高位元組轉換成十六進制
LCALL BCDH
MOV B,#100 ;擴大一百倍
MUL AB
ADD A,R3 ;和低位元組按十六進制相加
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
RET
;標號: BHD功能:單位元組BCD碼小數轉換成單位元組十六進制小數
;入口條件:待轉換的單位元組BCD碼數在累加器A中。
;出口信息:轉換後的單位元組十六進制小數仍在累加器A中。
;影響資源:PSW、A、R2、R3 堆棧需求: 2位元組
BHD:
MOV R2,#8 ;准備計算一個位元組小數
BHD0: ADD A,ACC ;按十進制倍增
DA A
XCH A,R3
RLC A ;將進位標志移入結果中
XCH A,R3
DJNZ R2,BHD0 ;共計算8bit小數
ADD A,#0B0H ;剩餘部分達到0.50否?
JNC BHD1 ;四舍
INC R3 ;五入
BHD1:
MOV A,R3 ;取結果
RET
; 標號: HBD功能:單位元組十六進制小數轉換成單位元組BCD碼小數
;入口條件:待轉換的單位元組十六進制小數在累加器A中。
;出口信息:CY=0時轉換後的BCD碼小數仍在A中。CY=1時原小數接近整數1。
;影響資源:PSW、A、B 堆棧需求: 2位元組
HBD:
MOV B,#100 ;原小數擴大一百倍
MUL AB
RLC A ;余數部分四捨五入
CLR A
ADDC A,B
MOV B,#10 ;分離出十分位和百分位
DIV AB
SWAP A
ADD A,B ;拼裝成單位元組BCD碼小數
DA A ;調整後若有進位,原小數接近整數1
RET
jmp $
end
⑥ FPGA、單片機的區別是什麼
一、性質不同
1、FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。
2、單片機(Single-Chip Microcomputer)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、
定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。
二、優點不同
1、FPGA
(1) FPGA由邏輯單元、RAM、乘法器等硬體資源組成,通過將這些硬體資源合理組織,可實現乘法器、寄存器、地址發生器等硬體電路。
(2)FPGA可通過使用框圖或者Verilog HDL來設計,從簡單的門電路到FIR或者FFT電路。
(3)FPGA可無限地重新編程,載入一個新的設計方案只需幾百毫秒,利用重配置可以減少硬體的開銷。
(4)FPGA的工作頻率由FPGA晶元以及設計決定,可以通過修改設計或者更換更快的晶元來達到某些苛刻的要求(當然,工作頻率也不是無限制的可以提高,而是受當前的IC工藝等因素制約)。
2、單片機
(1)擁有良好的集成度;
(2)單片機自身體積較小;
(3)單片機擁有強大的控制功能,同時運行電壓比較低;
(4)單片機擁有簡易攜帶等優勢,同時性價比較高。
(6)單片機乘法器擴展閱讀
單片機的特點可歸納為以下幾個方面:集成度高;存儲容量大;外部擴展能力強;控制功能強。
1、從內部的硬體到軟體有一套完整的按位操作系統,稱作位處理器,處理對象不是字或位元組而是位。不但能對片內某些特殊功能寄存器的某位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備,使用起來得心應手。
2、同時在片內RAM區間還特別開辟了一個雙重功能的地址區間,使用極為靈活,這一功能無疑給使用者提供了極大的方便。
3、乘法和除法指令,這給編程也帶來了便利。很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調用,十分不便。
⑦ 單片機和DSP哪個更好用
應用的方面不一樣…,單片機是低端控制,DSP是做高速運算的,用來處理數字信號