導航:首頁 > 操作系統 > 單片機高手在線解答

單片機高手在線解答

發布時間:2022-08-22 09:33:42

⑴ 請單片機方面的高手解答!

你用的是電平觸發方式,一直按住外部中斷按鍵當然會不斷地觸發中斷啦,MCU都忙著去處理你的中斷信號啦!所以只有很少的時間處理主程序的程序啊!

⑵ 求高手解答單片機問題。

3、在 MCS-51中,PC和DPTR都用於提供地址,PC為訪問( 程序 )存儲器提供地址,而DPTR是為訪問( 數據、以及 程序 )存儲器提供地址。

6、單片機位定址區的單元地址是從( 20H )單元到( 2FH )單元,若某位地址是09H,它所在單元的地址應該是( 21H )。

12、當單片機CPU響應中斷後,程序將自動轉移到該中斷源所對應的入口地址處,並從該地址開始繼續執行程序,通常在該地址處存放轉移指令以便轉移到中斷服務程序。其中
INT1 的入口地址為(0013H),
串列口入口地址為( 0023H ),
T0 的 入口地址為(000BH)。

13、P0、P1、P2、P3四個均是(8)位的(並行)口(填「串列」還是「並行」),其中P0的功能是( 輸出外部存儲器的低8位地址 和 輸入輸出數據 )。

20、編程時,一般在中斷服務子程序和調用子程序中需用保護和恢復現場,
保護現場用( PUSH )指令,
恢復現場用( POP )指令。

22、用MCS-51串列口擴展並行I/O口時,串列口工作方式應選擇( 0 )。

25、假定(SP)=40H,(39H)=30H,(40H)=60H。執行下列指令:
--題目有錯,39H、40H,不是連續的單元,不能當做本題目的已知條件。
POP DPH ,POP DPL後,DPTR的內容為( ),SP的內容是( )。

26、單片機的堆棧棧頂由( SP )來指示,復位時起位置在( 07H )單元。

27、
單片機內部數據傳送指令( MOV ),用於單片機內部RAM單元及寄存器之間,
單片機與外部數據傳送指令( MOVX )用於單片機內部與外部RAM或I/O介面之間,
( MOVC )指令用於單片機內部與外部ROM之間的查表。

31、8751有兩個16位可編程定時/計數器,T0和T1。它們的功能可由控制寄存器( TMOD ) 、( TCON )的內容決定,
且定時的時間或計數的次數與( THx )、( TLx )兩個寄存器的初值有關。

32、串列口的控制寄存器SCON中,REN的作用是( 允許接收控制位 )。

38、MCS-51的指令可分為幾種不同的定址方式。如:
MOV A,20H屬於( 直接 )定址方式,
MOVC A,@A+DPTR 屬於( 變址 )定址方式,
MOV C, bit 屬於( 位 ) 定址方式。

⑶ 請單片機高手為我解答,我的程序編譯不成功,KEIL給出了提示,我想知道錯在哪兒 不勝感激!完美者加分!

START:
MOV A, #01010101B
MOV P0,A
LCALL DELAY
; CPL P0 ; CPL 取反指令 為 位操作指令
MOV A, P0 ; 可以 用三條指令代替 ( 或者 用下面 兩條就可以 )
CPL A
MOV P0, A
LCALL DELAY
AJMP START
DELAY:
MOV R7, #250
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END

⑷ 一些關於單片機的問題,求高手解答

5.......數組指定了外部ram地址後,把定義數組和賦初值語句分成兩個語句寫就可以了:
exp:
unsigned char xdata Data0[48]_at_ 0x0000;
Data0[0]=x;Data0[1]=x;Data0[2]=x;Data0[3]=x;
個人覺得完全沒有必要賦初值,需要寫入數據的時候直接寫入就可以了,如果是作為常量使用那就不用這種聲明了。
6.....存儲器一般都有WR,RD,CS線以及地址埠、數據埠,有些數據地址埠復用,有些分開。看這些存儲器的datasheet就會明白如何訪問他們內部的數據。例如讀出外部ram地址為0x0001里的數據(假設有這個地址),那麼就WR置高,CS置低,地址線上輸出0x0001,那麼CPU的數據線就可以等到需要的數據了,這種情況下CPU的I/O只是做普通的I/O口。但是一般單片機和ARM都能夠把I/O選擇作為外部存儲器的訪問口,這時只要根據datasheet里的說明,把相應的線連上,CPU就能夠根據你的指令自動在時序上配合,使得訪問外部設備就像訪問內部ram一樣,這樣做的好處就是節省CPU時間。
7...................................
unsigned char 後面加 idata 就可以了

⑸ 單片機提問,高手解答!!!

1. 00H-1FH 四組工作寄存器區 每組佔8B
20H-2FH 可位定址區 共128位
30H-7FH用戶RAM區(堆棧、數據緩沖)
80H-FFH為特殊功能寄存器SFR區
2 雖然地址一樣,可是訪問的指令不同,訪問ROM用MOVC,訪問內部RAM用MOV 訪問外部RAM用MOVX,指令不同控製片選信號,讀寫RAM時,用RD和WR反來選通,讀ROM時,用PSEN反來選通。因此不會因為地址重疊而產生錯亂

⑹ 請單片機高手速速回答

10.串口通訊
單片機的結構和特殊寄存器,這是你編寫軟體的關鍵。至於串口通信需要用到那些特殊功能寄存器呢,它們是SCON,TCON,TMOD,SCON等,各代表什麼含義呢?
SBUF 數據緩沖寄存器這是一個可以直接定址的串列口專用寄存器。有朋友這樣問起過「為何在串列口收發中,都只是使用到同一個寄存器SBUF?而不是收發各用一個寄存器。」實際上SBUF 包含了兩個獨立的寄存器,一個是發送寄存,另一個是接收寄存器,但它們都共同使用同一個定址地址-99H。CPU 在讀SBUF 時會指到接收寄存器,在寫時會指到發送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒有及時的被響應,數據沒有被取走,下一幀數據已到來,而造成的數據重疊問題。發送器則不需要用到雙緩沖,一般情況下我們在寫發送程序時也不必用到發送中斷去外理發送數據。操作SBUF寄存器的方法則很簡單,只要把這個99H 地址用關鍵字sfr定義為一個變數就可以對其進行讀寫操作了,如sfr SBUF = 0x99;當然你也可以用其它的名稱。通常在標準的reg51.h 或at89x51.h 等頭文件中已對其做了定義,只要用#include 引用就可以了。
SCON 串列口控制寄存器通常在晶元或設備中為了監視或控制介面狀態,都會引用到介面控制寄存器。SCON 就是51 晶元的串列口控制寄存器。它的定址地址是98H,是一個可以位定址的寄存器,作用就是監視和控制51 晶元串列口的工作狀態。51 晶元的串口可以工作在幾個不同的工作模式下,其工作模式的設置就是使用SCON 寄存器。它的各個位的具體定義如下:
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1 為串列口工作模式設置位,這樣兩位可以對應進行四種模式的設置。串列口工作模式設置。
SM0 SM1 模式 功能 波特率
0 0 0 同步移位寄存器 fosc/12
0 1 1 8位UART 可變
1 0 2 9位UART fosc/32 或fosc/64
1 1 3 9位UART 可變
在這里只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找相關的硬體資料查看。表中的fosc 代表振盪器的頻率,也就是晶振的頻率。UART 為(Universal Asynchronous Receiver)的英文縮寫。
SM2 在模式2、模式3 中為多處理機通信使能位。在模式0 中要求該位為0。
REM 為允許接收位,REM 置1 時串口允許接收,置0 時禁止接收。REM 是由軟體置位或清零。如果在一個電路中接收和發送引腳P3.0,P3.1 都和上位機相連,在軟體上有串口中斷處理程序,當要求在處理某個子程序時不允許串口被上位機來的控制字元產生中斷,那麼可以在這個子程序的開始處加入REM=0 來禁止接收,在子程序結束處加入REM=1 再次打開串口接收。大家也可以用上面的實際源碼加入REM=0 來進行實驗。
TB8 發送數據位8,在模式2 和3 是要發送的第9 位。該位可以用軟體根據需要置位或清除,通常這位在通信協議中做奇偶位,在多處理機通信中這一位則用於表示是地址幀還是數據幀。
RB8 接收數據位8,在模式2 和3 是已接收數據的第9 位。該位可能是奇偶位,地址/數據標識位。在模式0 中,RB8 為保留位沒有被使用。在模式1 中,當SM2=0,RB8 是已接收數據的停止位。
TI 發送中斷標識位。在模式0,發送完第8 位數據時,由硬體置位。其它模式中則是在發送停止位之初,由硬體置位。TI 置位後,申請中斷,CPU 響應中斷後,發送下一幀數據。在任何模式下,TI 都必須由軟體來清除,也就是說在數據寫入到SBUF 後,硬體發送數據,中斷響應(如中斷打開),這時TI=1,表明發送已完成,TI 不會由硬體清除,所以這時必須用軟體對其清零。
RI 接收中斷標識位。在模式0,接收第8 位結束時,由硬體置位。其它模式中則是在接收停止位的半中間,由硬體置位。RI=1,申請中斷,要求CPU 取走數據。但在模式1 中,SM2=1時,當未收到有效的停止位,則不會對RI 置位。同樣RI 也必須要靠軟體清除。常用的串口模式1 是傳輸10 個位的,1 位起始位為0,8 位數據位,低位在先,1 位停止位為1。它的波特率是可變的,其速率是取決於定時器1 或定時器2 的定時值(溢出速率)。AT89C51 和AT89C2051 等51 系列晶元只有兩個定時器,定時器0 和定時器1,而定時器2是89C52 系列晶元才有的。
波特率在使用串口做通訊時,一個很重要的參數就是波特率,只有上下位機的波特率一樣時才可以進行正常通訊。波特率是指串列埠每秒內可以傳輸的波特位數。有一些初學的朋友認為波特率是指每秒傳輸的位元組數,如標准9600 會被誤認為每秒種可以傳送9600個位元組,而實際上它是指每秒可以傳送9600 個二進位,而一個位元組要8 個二進位,如用串口模式1 來傳輸那麼加上起始位和停止位,每個數據位元組就要佔用10 個二進位,9600 波特率用模式1 傳輸時,每秒傳輸的位元組數是9600÷10=960 位元組。51 晶元的串口工作模式0的波特率是固定的,為fosc/12,以一個12M 的晶振來計算,那麼它的波特率可以達到1M。模式2 的波特率是固定在fosc/64 或fosc/32,具體用那一種就取決於PCON 寄存器中的SMOD位,如SMOD 為0,波特率為focs/64,SMOD 為1,波特率為focs/32。模式1 和模式3 的波特率是可變的,取決於定時器1 或2(52 晶元)的溢出速率。那麼我們怎麼去計算這兩個模
式的波特率設置時相關的寄存器的值呢?可以用以下的公式去計算。
波特率=(2SMOD÷32)×定時器1 溢出速率
上式中如設置了PCON 寄存器中的SMOD 位為1 時就可以把波特率提升2 倍。通常會使用定時器1 工作在定時器工作模式2 下,這時定時值中的TL1 做為計數,TH1 做為自動重裝值 ,這個定時模式下,定時器溢出後,TH1 的值會自動裝載到TL1,再次開始計數,這樣可以不用軟體去干預,使得定時更准確。在這個定時模式2 下定時器1 溢出速率的計算公式如下:
溢出速率=(計數速率)/(256-TH1)
上式中的「計數速率」與所使用的晶體振盪器頻率有關,在51 晶元中定時器啟動後會在每一個機器周期使定時寄存器TH 的值增加一,一個機器周期等於十二個振盪周期,所以可以得知51 晶元的計數速率為晶體振盪器頻率的1/12,一個12M 的晶振用在51 晶元上,那麼51 的計數速率就為1M。通常用11.0592M 晶體是為了得到標準的無誤差的波特率,那麼為何呢?計算一下就知道了。如我們要得到9600 的波特率,晶振為11.0592M 和12M,定時器1 為模式2,SMOD 設為1,分別看看那所要求的TH1 為何值。代入公式:
11.0592M
9600=(2÷32)×((11.0592M/12)/(256-TH1))
TH1=250

12M
9600=(2÷32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的計算可以看出使用12M 晶體的時候計算出來的TH1 不為整數,而TH1 的值只能取整數,這樣它就會有一定的誤差存在不能產生精確的9600 波特率。當然一定的誤差是可以在使用中被接受的,就算使用11.0592M 的晶體振盪器也會因晶體本身所存在的誤差使波特率產生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計。
11.定時器1的溢出率,也叫定時器1的溢出頻率,從設定初值開始計數,當計數到0FFH再一個計數脈沖到來時刻就溢出,初值越大溢出率也越高,我們使用這個溢出率確定通信波特率。
在使用11.0592MHz晶體時,SMOD=0,C/T=0,方式=2,波特率=9600,則定時器重裝載數值是0FDH。
13. 0.125s

⑺ 求單片機高手解答!

if((Tc>Imin)&&(Tc<Imax)) 判斷Tc是否在8~14ms之內
if(f==1) 同上,只不過是Tc在8~14ms之內之後的一次中斷
if(Tc>Inum1&&Tc<Inum3) 判斷Tc是否在1.45~3ms之內
if(Tc>Inum2&&Tc<Inum1) 判斷Tc是否在0.7~1.45ms之內
if(m==32) 判斷是否接收完32位數據
if(Im[2]=~Im[3]) 判斷第三位數據和第四位數據是否互反。

⑻ 求單片機高手解答 空白的都是要填的

1.單片機應用系統是由軟體和硬體組成的。

2、除了單片機和電源外,單片機最小系統包括復位和時鍾電路。

3、MCS-51系列單片機的XTAL1和XTAL2引腳是晶振引腳。

4、MCS-51系列單片機的應用程序一般存放在程序存儲器中。

5、MCS-51系列單片機的復位電路有兩種,即上電復位電路和按鍵復位電路電路。

6、C51中定義一個可位定址的變數P2_1訪問P2口的P2.1引腳的方法是sbitP2_1=P2^1

7、123(十進制)=1111011B(二進制)=7BH(十六進制)。

8、若採用12MHz的晶體振盪器,則MCS-51單片機的振盪周期為1/12us機器周期為_1us_。

9、利用匯流排法對P1口0、2、4、6位輸出高電平;1、3、5、7位輸出低電平,C語言的程序寫為:P1=0x55。

10、定時器方式寄存器TMOD的作用是設置定時/計數器0,1的工作方式和工作模式

11、定時器控制寄存器TCON的作用是:控制定時/計數器0,1的啟動,停止

1、Intel8051單片機的CPU是C位的。

A.16B.4C.8D.准16位

2、程序是以D形式存放在程序存儲器中的。

A.C語言源程序B.匯編語言C.BCD碼D.二進制編碼

3、使用單片機開發系統調試C語言程序時,首先應新建文件,該文件的擴展名是A。

A..cB..hexC..binD..asm

4、MCS-51系列單片機的4個並行I/O埠作為通用埠使用,在輸出數據時,必須外接上拉電阻的是D。A.P3口B.P2口C.P1口D.P0口

5、C程序總是從A開始執行。A.主函數B.主程序C.子程序D.主過程

6、在C51程序中常常把D作為循環體,用於消耗CPU的時間,產生延時效果。

A.賦值語句B.表達式語句C.循環語句D.空語句

7、在C51的數據類型中,unsignedchar型的數據長度和值域為B。

A.單位元組,-128~127B.單位元組,0~255

C.雙位元組,-32768~+32767D.雙位元組,0~65535

8、單片機的定時器/計數器工作模式2是A。

A、8位計數器結構B、2個8位計數C、13位計數結構D、16位計數結構

9、在C51中,沒有專門的循環語句,我們可以用庫文件C.h中的函數______完成一個位元組的循環左移,函數______完成一個位元組的循環右移。

A、intrins.h_crol__cror_B、intrins.h_cror__crol_

C、reg51.h_crol__cror_D、reg51.h_cror__crol_

10、MCS-51系列單片機的定時器T0用做定時方式時,採用工作方式1,則初始化編程為A.A.TMOD=0x01B.TMOD=0x50C.TMOD=0x10D.TMOD=0x02

⑼ 請51單片機C編程高手解答,幫忙做一下注釋,個人初學單片機,不是很懂。

我來簡單解釋一下吧,這是個典型的單片機程序實例。頭文件是定義,包括所用到的按鍵、顯示、A/D介面的各I/O口的定義,函數定義等。void main()是主函數,包括單片機內部寄存器的初始化,各狀態標志的定義,while(1)這是監控程序,簡單的說就是一個死循環,裡面有顯示函數、鍵盤監視函數等。後面的A/D轉換函數和數據讀取函數,不過while(1)中的一些函數沒有寫完整,因此不好確定你這個程序是怎麼進行A/D轉換的,猜測應該是當有按鍵按下的時候就會啟動(調用)A/D程序。
就說這么多吧,還有不懂得還可以再交流!

⑽ 單片機高手進來幫幫忙,高分,簡答題

1, a:CPU(微處理器) b:數據存儲器(RAM)c:程序存儲器(Flash ROM) d:中斷系統 e:定時器/計數器 f:1個看門狗定時器 g:串列口 h:P0~P4 4個8位並行I/O口 i: 特殊功能寄存器(SFR)
2,有7中選址方式 a:寄存器定址方式 b:直接定址方式 c:寄存器間接定址方式 d:立即數定址方式 f:基址寄存器加變址寄存器間接定址方式 g:相對定址方式 h:位定址方式
3,a:數據傳送類指令 b:算數運算類指令 c:邏輯操作類指令 d:控制轉移類指令 f:位操作類指令
4,產生中斷的請求源稱為中斷源。
MCS----51中斷系統共有5個中斷請求源:(1)外部中斷請求0,中斷請求標志為IE0。(2)外部中斷請求1,中斷請求標志為IE1。(3)定時器/計數器T0溢出中斷請求,中斷請求標志為TF0。(4)定時器/計數器T1溢出中斷請求,中斷請求標志為TF1。(5)串列口中斷請求,中斷請求標志為TI或RI。特點:2個外部中斷源,3個內部中斷源。
5,:
方式0幀格式
D1 D2 D3 D4 D5 D6 D7 D0
方式0波特率=Fosc/12
方式1幀格式
D1 D2 D3 D4 D5 D6 D7 D0 停止位 起始位
方式1波特率=2SMOD定時器T1的溢出率/32
方式2和方式3幀格式
D1 D2 D3 D4 D5 D6 D7 D0 停止位 起始位 D8
方式2的波特率=2MOD*Fosc/64
方式3的波特率=2MOD *定時器T1的溢出率/32
(幀格式就這么看吧 圖不好畫)
6,有兩個定時器/計數器 T0和T1; 都有定時器/ 計數器控制寄存器TCON和工作方式控制寄存器TMOD
7: a:總中斷打開後(EA=1) b:該中斷源發出中斷請求,該中斷源對應的中斷請求標志位為1 C:該中斷源的中斷允許位為1 D:無同等級或更高級的中斷正在被執行。
8,a:方式 0 :這種工作方式比較特殊,與常見的微型計算機的串列口不同,它又叫同步移位寄存器輸出方式。在這種方式下,數據從 RXD 端串列輸出或輸入,同步信號從 TXD 端輸出,波特率固定不變,為振盪率的 1/12 。該方式是以 8 位數據為一幀,沒有起始位和停止位,先發送或接收最低位。 b:方式 2 :採用這種方式可接收或發送 11 位數據,以 11 位為一幀,比方式 1 增加了一個數據位,其餘相同。第 9 個數據即 D8 位具有特別的用途,可以通過軟體摟控制它,再加特殊功能寄存器 SCON 中的 SM2 位的配合,可使 MCS-51 單片機串列口適用於多機通信。方式 2 的波特率固定,只有兩種選擇,為振盪率的 1/64 或 1/32 ,可由 PCON 的最高位選擇。 c:方式 3 :方式 3 與方式 2 完全類似,唯一的區別是方式 3 的小組特率是可變的。而幀格式與方式 2- 樣為 11 位一幀。所以方式 3 也適合於多機通信。
9:a:單工 只能沿一個方向傳輸 不能反過來。b:半雙工 是能沿兩個方向傳輸 但是是分屍的。
c:全雙工 同事進行雙向傳輸。
10: 當中斷請求源發出中斷時,如果中斷被允許的話,單片機暫時中止當前正在執行的主程序,轉到中斷處理程序處理中斷服務請求。中斷服務處理程序執行完後,再回到原來的斷點,繼續執行被中斷的主程序。
(累死了*-*!)

閱讀全文

與單片機高手在線解答相關的資料

熱點內容
變身小說男變女嫁人 瀏覽:32
原罪未刪減床戲在什麼時間 瀏覽:846
最新全裸韓劇倫理片有哪些 瀏覽:292
男主帥的日本粉紅電影 瀏覽:798
重生到香港混黑道小說 瀏覽:499
男作家的妻子出軌孫志 瀏覽:911
男主是鴨子女主是大老闆 瀏覽:562
日批的小說 瀏覽:578
周香允參與過所有的電影 瀏覽:926
紅羊出品有哪些 瀏覽:398
14路末班車電影陳明輝結局 瀏覽:977
金庸小說全集下載 瀏覽:792
美國電影主角和老師偷情 瀏覽:132
成人兩性微電影 瀏覽:408
台灣三級的絕版老電影 瀏覽:161
電影雙男主肉 瀏覽:986
重生之北美建國 瀏覽:129
每天工作4小時的程序員 瀏覽:462
香港學生犯罪電影 瀏覽:869
0855aa 瀏覽:506