1. 這一段C51程序是什麼意思,請行家解釋一下
1、這不是一個完整的C程序,僅僅是一個延時函數,標準的C程序必須包括main函數。
2、t是函數的參數,在調用的時候,將t值傳入,這個值就相當於你說的初值了。
3、3個while可以看出,這是3層循環,所以總的循環次數是j*I*t,即乘數關系。因為只使用1層或2層循環的話,循環次數受char類型的限制,所以,必須使用3層循環。
4、這個函數的作用應當是控制小車的速度。
2. C51 匯編程序 PUSH PSW 這句是什麼意思/謝謝解答
ORG 013H ;這是EX1外部中斷1的入口地址
PUSH PSW ;將程序狀態字壓棧
PUSH ACC ;將累加器壓棧
SJMP IE_ADD ;跳轉到IE_ADD標號,執行中斷服務功能
3. 51系列單片機具有幾個中斷各中斷服務程序入口地址是什麼
你應該加上標准兩個字,標准51系列單片機5個中斷源,入口地址分別是:0003h,000bh,0013h,001bh,0023h。
4. 串列口通信C51程序
三、程序設計
本講設計實常式序如下:
#include 「AT89X52.h」 (1)
void Init_Com(void) ( 2)
{
TMOD = 0x20; ( 3)
PCON = 0x00; ( 4)
SCON = 0x50; ( 5)
TH1 = 0xE8; ( 6)
TL1 = 0xE8; ( 7)
TR1 = 1; ( 8)
}
void main(void) ( 9)
{
unsigned char dat; ( 10)
Init_Com(); ( 11)
while(1) ( 12)
程序詳細說明:
(1)頭文件包含。
(2)聲明串口初始化程序。
(3)設置定時器1 工作在模式2,自動裝載初值(詳見第二講)。
(4)SMOD 位清0,波特率不加倍。
(5)串列口工作在方式1,並允許接收。
(6)定時器1 高8 位賦初值。波特率為1200b/s(7)定時器1 低8 位賦初值。
(8)啟動定時器。
(9)主函數。
(10)定義一個字元型變數。
(11)初始化串口。
(12)死循環。
(13)如果接收到數據。
(14)將接收到的數據賦給之前定義的變數。
(15)將接收到的值輸出到P0 口。
(16)對接收標志位清0,准備再次接收。
(17)將接收到的數據又發送出去。
(18)查詢是否發送完畢。
(19)對發送標志位清0。
5. 簡述c51程序開發流程
C51開發流程:
第一:必須對C51單片機內部外設和內部寄存器了解,因為寫程序需要控制單片機內部寄存器,再去控制外設。
第二:設計單片機的硬體,單片機IO控制你的硬體
第三:畫出流程圖執行大概的框架
下面就是按照你的流程圖去設計程序。
6. 什麼是c51 C51程序以何種文件類型保存
1、C51程序保存的文件類型為ASM,保存匯編後綴為.ASM 。
2、C51是和計算機硬體相結合的一種編程技術。
3、C51單片機本書是以目前最為流行的8051系列單片機為主體,同時使用c程序設計語言來進行描述的。全書共分為四部分內容:單片機基礎知識、c語言程序設計、單片機入門基礎實例、單片機高級應用實例。以理論與實踐相結合的方式來進行講解,避免了傳統教科書給人枯燥、乏味的感覺。講解風格通俗易懂、條理清晰、實例豐富、圖文並茂,即使是沒有任何單片機基礎的人,也可以通過本書的學習,踏入單片機世界的大門。
7. 51單片機的5個中斷源的中斷入口地址分別是什麼如果要將外部中斷0的中斷服務程序
[中斷入口說明]
interrupt
0
外部中斷0(rom入口地址:0x03)
interrupt
1
定時/計數器中斷0(rom入口地址:0x0b)
interrupt
2
外部中斷1(rom入口地址:0x13)
interrupt
3
定時/計數器中斷1(rom入口地址:0x1b)
interrupt
4
uart串口中斷(rom入口地址:0x23)
(更多的中斷依單片機型號而定,rom中斷入口均相差8個位元組)
using
0
使用寄存器組0
using
1
使用寄存器組1
using
2
使用寄存器組2
using
3
使用寄存器組3
8. 單片機求編寫程序,C51
章1 緒 論
1.答:第一台電子數字計算機ENIAC問世,標志著計算機時代的到來。與現代的計算機相比,ENIAC有許多不足,但它的問世開創了計算機科學技術的新紀元,對人類的生產和生活方式產生了巨大的影響。
2.答:由運算器、控制器、存儲器、輸入設備和輸出設備組成,運算器與控制器合稱為CPU。
3.答:微型計算機由微處理器、存儲器和I/O介面電路構成。各部分通過地址匯流排(AB)、數據匯流排(DB)和控制匯流排(CB)相連。
4.答:微處理器集成了運算器和控制器(即CPU);而微型計算機包含微處理器、存儲器和I/O介面電路等。
5. 答:在一片集成電路晶元上集成微處理器、存儲器、I/O介面電路,從而構成了單晶元微型計算機,即單片機。單片機主要特點有:控制性能和可靠性高;體積小、價格低、易於產品化;具有良好的性能價格比。。
6.答:微型計算機有三種應用形式:多板機(系統機)、單板機和單片機。
多板機,通常作為辦公或家庭的事務處理及科學計算,屬於通用計算機。
單板機,I/O設備簡單,軟體資源少,使用不方便。早期主要用於微型計算機原理的教學及簡單的測控系統,現在已很少使用。
單片機,單片機體積小、價格低、可靠性高,其非凡的嵌入式應用形態對於滿足嵌入式應用需求具有獨特的優勢。目前,單片機應用技術已經成為電子應用系統設計的最為常用技術手段。
7.答:多年來的應用實踐已經證明,80C51的系統結構合理、技術成熟。因此,許多單片機晶元生產廠商傾力於提高80C51單片機產品的綜合功能,從而形成了80C51的主流產品地位,近年來推出的與80C51兼容的主要產品有:
ATMEL公司融入Flash存儲器技術推出的AT89系列單片機;
Philips公司推出的80C51、80C552系列高性能單片機;
華邦公司推出的 W78C51、W77C51系列高速低價單片機;
ADI公司推出的ADμC8xx系列高精度ADC單片機;
LG公司推出的GMS90/97系列低壓高速單片機;
Maxim公司推出的DS89C420高速(50MIPS)單片機;
Cygnal公司推出的C8051F系列高速SOC單片機等。
8.答:系統需求分析,硬體方案設計,軟體編程,模擬調試,實際運行。
9.答:在系統編程(ISP)技術,在應用編程(IAP)技術。
章2 80C51的結構和原理
1答:功能上分為基本型和增強型;
工藝上分為HMOS工藝和CHMOS工藝;
在片內程序存儲器的配置上有掩膜ROM、EPROM和Flash、無片內程序存儲器形式。
2答:採用哈佛結構,在物理上設計成程序存儲器和數據存儲器兩個獨立的空間;80C51基本型單片機片內程序存儲器為4KB,地址范圍是0000H-0FFFH,用於存放程序或常數;片內數據存儲器為128位元組RAM,地址范圍是00H-7FH,用於存放運算的中間結果、暫存數據和數據緩沖;另外在80H-FFH還配有21個SFR。
3. 答:作為通用I/O口時,P0、P1、P2和P3都是准雙向口。
P0可以作為地址/數據匯流排,此時是一個真正的雙向口;P2口可以作為地址線的高8位;P3口是雙功能口,每條口線還具有不同的第二功能。
另外,P0口的驅動能力為8個TTL負載,而其它口僅可驅動4個TTL負載。
4.答:機器周期分別為2μs,1.085μs,1μs。
5.答:復位後,PC內容為0000H,P0口~P3口內容為FFH,SP內容為07H,SBUF內容不定,IP、IE和PCON的有效位為0,其餘的特殊功能寄存器的狀態均為00H。復位方法一種是上電復位,另一種是上電與按鍵均有效的復位。
6.答:80C51的 引腳為訪問片內、片外程序存儲器的選擇端。訪問片內、片外數據存儲器需要採用不同的指令加以區分。
7.答:CY:進位、借位標志。有進位、借位時 CY=1,否則CY=0;
AC:輔助進位、借位標志(高半位元組與低半位元組間的進位或借位);
F0:用戶標志位,由用戶自己定義;
RS1、RS0:當前工作寄存器組選擇位;
OV:溢出標志位。有溢出時OV=1,否則OV=0;
P:奇偶標志位。存於ACC中的運算結果有奇數個1時P=1,否則P=0。
8.答:當前工作寄存器組的選擇由特殊功能寄存器中的程序狀態字寄存器PSW的RS1、RS0 來決定。
9.答:RST/VPD:復位信號輸入引腳/備用電源輸入引腳;ALE/ :地址鎖存允許信號輸出引腳/編程脈沖輸入引腳; /VPP:內外存儲器選擇引腳/片內EPROM(或FlashROM)編程電壓輸入引腳; :外部程序存儲器選通信號輸出引腳。
10.答:0000H:單片機復位入口地址;0003H:外部中斷0的中斷服務程序入口地址;000BH:定時/計數器0溢出中斷服務程序入口地址;0013H:外部中斷1的中斷服務程序入口地址;001BH:定時/計數器1溢出中斷服務程序入口地址;0023H:串列口的中斷服務程序入口地址。
章3 80C51的指令系統
1.答:執行時間短。1個機器周期指令有64條,2個機器周期指令有45條,而4個機器周期指令僅有2條(即乘法和除法指令);
指令編碼位元組少。單位元組的指令有49條,雙位元組的指令有45條,三位元組的指令僅有17條;
位操作指令豐富。這是80C51單片機面向控制特點的重要保證。
2.答:80C51單片機的定址方式有七種。即:寄存器定址、直接定址、寄存器間接定址、立即定址、基址寄存器加變址寄存器變址定址、相對定址和位定址。
這些定址方式所對應的寄存器和存儲空間如下表所示。
序號 定址方式 寄存器或存儲空間
1 寄存器定址 寄存器R0~R7,A、AB、DPTR和C(布爾累加器)
2 直接定址 片內RAM低128位元組、SFR
3 寄存器間接定址 片內RAM(@R0,@R1,SP)
片外RAM(@R0,@R1,@DPTR)
4 立即定址 ROM
5 變址定址 ROM(@A+DPTR,@A+PC)
6 相對定址 ROM(PC當前值的+127~-128位元組)
7 位定址 可定址位(內部RAM20H~2FH單元的位和部分SFR的位)
3.答:直接定址和位定址方式。
4.答:直接定址、寄存器間接定址和位定址方式。
5.答:寄存器間接定址。
6.答:立即定址、變址定址和相對定址方式。
7.答:單片機指令系統中的布爾指令集、存儲器中的位地址空間與CPU中的位操作構成了片內的布爾功能系統,它可對位(bit)變數進行布爾處理,如置位、清零、求補、測試轉移及邏輯「與」、「或」等操作。在實現位操作時,借用了程序狀態標志器(PSW)中的進位標志Cy作為位操作的「累加器」。
8.寄存器間接定址方式。
9. (1)MOV A,#88H----------------74H, 88H
(2)MOV R3,50H----------------ABH,50H
(3)MOV P1,#55H----------75H,90H,55H
(4)ADD A,@R1---------------------27H
(5)SETB 12H----------------------D2H,12H
10.答:
(1)MOV A,R0
MOV R1,A
(2)MOV R2,60H
(3)MOV DPTR,#1000H
MOVX A,@DPTR
MOV 60H,A
(4)MOV DPTR,#1000H
MOVX A,@DPTR
MOV R2,A
(5)MOV DPTR,#1000H
MOVX A,@DPTR
MOV DPTR,#2000H
MOVX @DPTR, A
11.答:(R1)=7FH
(A)=60H
(30H)=08H
(40H)=60H
12.答:(1)(A)=2CH
(2)(40H)=0CH
(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0
(4)(A)=8EH
(5)(20H)=0EH,P=1
(6)(A)=EFH,(20)=08H
13.答:(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。
14.答:(1)SETB ACC.0
(2)ANL A,#0FH
(3)ANL A,#87H
15.答:MOV 2FH,20H
MOV 2EH,21H
MOV 2DH,22H
16.答:CLR CY
MOV 30H,#7FH
MOV 31H,#4DH
MOV R0, #31H
MOV A,@R0
SUBB A ,#4E
MOV @R0,A ;保存低位元組相減結果
DEC R0
MOV A, @R0
SUBB A,#2BH
MOV @R0,A ;保存高位元組相減結果
17.答:MOV A,R2
ANL A,#0F0H
ORL R1,A
18.答:MOV A,20H
MOV B,21H
MUL AB
MOV R3,A
MOV R2,B
19.答:(CY)=1, (P1)=10111011B, (P3)=00111100B
章4 80C51的匯編語言程序設計
1.答:匯編語言結構緊湊、靈活,匯編成的目標程序效率高,具有占存儲空間少、運行速度快、實時性強等優點。它是面向機器的語言,對於單片機硬體的操作直接、方便,有利於初學者對單片機結構的認知。
但它與高級語言相比移植性不好、編程復雜、對編程人員的基礎要求高。
2.答:一、任務分析
首先,要對單片機應用系統的設計目標進行深入分析,明確系統設計任務:功能要求和技術指標。然後對系統的運行環境進行調研。這是應用系統程序設計的基礎和條件。
二、演算法設計
經過任務分析和環境調研後,已經明確的功能要求和技術指標可以用數學方法(或模型)來描述,進而把一個實際的系統要求轉化成由計算機進行處理的演算法。並對各種演算法進行分析比較,並進行合理的優化。
三、流程描述
程序的總體構建。先要確定程序結構和數據形式,資源分配和參數計算等。然後根據程序運行的過程,規劃程序執行的邏輯順序,用圖形符號將程序流程繪制在平面圖上。應用程序的功能通常可以分為若幹部分,用流程圖將具有一定功能的各部分有機地聯系起來。
流程圖可以分為總流程圖和局部流程圖。總流程圖側重反映程序的邏輯結構和各程序模塊之間的相互關系;局部流程圖反映程序模塊的具體實施細節。
3.答:順序程序:無分支、無循環結構的程序,其執行流程是依指令在存儲器中的存放順序進行的;
分支程序:可以改變程序的執行順序;
循環程序:按某種控制規律重復執行的程序,控制一部分指令重復執行若干次,以便用簡短的程序完成大量的處理任務。
4.答:利用累加器或寄存器;
利用存儲器;
利用堆棧。
5.答:偽指令是匯編程序能夠識別並對匯編過程進行某種控制的匯編命令。常用的偽指令包括:
ORG,功能是向匯編程序說明下面緊接的程序段或數據段存放的起始地址;
END,功能是結束匯編;
DB,功能是從標號指定的地址單元開始,在程序存儲器中定義位元組數據;
DW,功能是從標號指定的地址單元開始,在程序存儲器中定義字數據空間;
EQU,功能是將表達式的值或特定的某個匯編符號定義為一個指定的符號名;
BIT,功能是將位地址賦給指定的符號名。
6.答:程序如下:
ORG 0000H
MOV R0,#21H
MOV R1,#23H
MOV A,@R0
ADD A,@R1
MOV 25H,A
DEC R0
DEC R1
MOV A,@R0
ADDC A,@R1
MOV 24H,A
SJMP $
END
7.答:ORG 0000H
MOV DPTR,#1000H
MOV R0,#30H
MOV R7,#32
LOOP:MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,LOOP
RET
8.答:ORG 0000H
MOV A,R1
ADD A,R7
MOV 61H,A
MOV A,R0
ADDC A,R6
MOV 60H,A
SJMP $
END
9.答:延時時間: 2µs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含調用指令2個機器周期)
10.答: ORG 0000H
BIG DATA 2FH
ONE DATA 2AH
TWO DATA 2BH
START:MOV R7,#7 ;比較次數
MOV R0,#30H
LOOP:MOV A,@R0
MOV ONE,A
INC R0
MOV TWO,@R0
CLR C
SUBB A,@R0
JC NEXT ;ONE小,TWO大繼續比下一對數
MOV @R0,ONE ;ONE大放後面(交換)
DEC R0
MOV @R0,TWO ;TWO小放前面
INC R0 ;
NEXT:DJNZ R7,LOOP
MOV BIG,37H
SJMP $
END
11.答:單位元組二進制數轉換為壓縮的BCD碼僅需要2個位元組;在將壓縮的BCD碼拆分存於3個單元。
org 0
MOV 52H,#0
MOV 51H,#0
MOV 50H,#0
MOV A,#0FDh
LCALL DCDTH
SJMP $
DCDTH:MOV R7,#8
MOV R0,A ;暫存於R0
LOOP:CLR C
MOV A,R0
RLC A
MOV R0,A
MOV R1,#51H;
MOV A,@R1 ;
ADDC A,@R1 ;
DA A ;
MOV @R1,A ;
DEC R1
MOV A,@R1
ADDC A,@R1
DA A
MOV @R1,A
DJNZ R7,LOOP
INC R1 ;50H已是結果,R1指向51H,51H單元需拆分
MOV A,#00H
XCHD A,@R1
MOV 52H,A
MOV A,@R1
SWAP A
MOV @R1,A
RET
END
12.答: ORG 0
MOV R1,#5BH
MOV A,R1
ANL A,#0F0H
SWAP A
ACALL ASCII
MOV R3,A
MOV A,R1
ANL A, #0FH
ACALL ASCII
MOV R4, A
SJMP $
ASCII:PUSH ACC
CLR C
SUBB A, #0AH
POP ACC
JC LOOP
ADD A, #07H
LOOP: ADD A, #30H
RET
END
13.答:ORG 0000H
MOV R7,#10
MOV R0,#50H
MOV B,#10
CLR C
CLR A
LOOP:ADDC A,@R0
INC R0
DJNZ R7,LOOP
DIV AB
MOV 5AH,A
SJMP $
END
14.答:實現程序如下:
TEMP EQU 30H
ORG 0000H
JMP START
ORG 0100H
START:MOV SP,#5FH
MOV P0,#8CH ;正序顯示"P"
MOV P3,#0FFH ;輸入方式
CLR CY
NOKEY:MOV A,P3
CPL A
JZ NOKEY ;無鍵按下
MOV TEMP,P3 ;有鍵按下
CALL D10ms
MOV A,P3
CJNE A,TEMP,NOKEY ;去抖動
MOV R2,#0 ;鍵號計數器復位
MOV A,TEMP
LP:RRC A
JNC DONE
INC R2
SJMP LP
DONE:MOV A,R2
MOV DPTR,#CODE_P0
MOVC A,@A+DPTR
MOV P0,A
JMP NOKEY
D10ms:MOV R5,#10 ;10MS
D1ms:MOV R4,#249
DL:NOP
NOP
DJNZ R4,DL
DJNZ R5,D1ms
RET
CODE_P0:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
章5 80C51的中斷系統及定時/計數器
1.答:5個中斷源,分別為外中斷 和 、T0和T1溢出中斷、串口中斷。
電平方式觸發的外中斷標志與引腳信號一致;邊沿方式觸發的外中斷響應中斷後由硬體自動復位。
T0和T1,CPU響應中斷時,由硬體自動復位。
RI和TI,由硬體置位。必須由軟體復位。
另外,所有能產生中斷的標志位均可由軟體置位或復位。
各中斷入口地址: ―0003H,T0—000BH, —0013H,T1—001BH,RI和TI—0023H。
2.答:將3個中斷信號經電阻線或,接 。
ORG 0000H
LJMP MAIN
ORG 00013H
LJMP ZDFZ
ORG 0040H
MAIN:SETB EA
SETB EX1
SJMP $
0RG 0200H
ZDFZ:PUSH PSW
PUSH ACC
JB P1.0,DV0
JB P1.1,DV1
JB P1.2,DV2
INRET:POP ACC
POP PSW
RETI
ORG 2000H
DV0:------------
JMP INRET
ORG 2100H
DV1:------------
JMP INRET
ORG 2200H
DV2:------------
JMP INRET
3答:當IT0=0時, 為電平觸發方式。電平觸發方式時,CPU在每個機器周期的S5P2采樣 引腳電平,當采樣到低電平時,置IE0=1向CPU請求中斷;采樣到高電平時,將IE0清0。在電平觸發方式下,CPU響應中斷時,不能自動清除IE0標志。
電平觸發方式時,外部中斷源的有效低電平必須保持到請求獲得響應時為止,不然就會漏掉;在中斷服務結束之前,中斷源的有效的低電平必須撤除,否則中斷返回之後將再次產生中斷。該方式適合於外部中斷輸入為低電平,且在中斷服務程序中能清除外部中斷請求源的情況。
當IT0=1時, 為邊沿觸發方式。邊沿觸發方式時,CPU在每個機器周期的S5P2采樣 引腳電平,如果在連續的兩個機器周期檢測到 引腳由高電平變為低電平,即第一個周期采樣到 =1,第二個周期采樣到 =0,則置IE0=1,產生中斷請求。在邊沿觸發方式下,CPU響應中斷時,能由硬體自動清除IE0標志。
邊沿觸發方式時,在相繼兩次采樣中,先採樣到外部中斷輸入為高電平,下一個周期采樣到為低電平,則在IE0或IE1中將鎖存一個邏輯1。若CPU暫時不能響應,中斷申請標志也不會丟失,直到CPU響應此中斷時才清0。另外,為了保證下降沿能夠被可靠地采樣到, 和 引腳上的負脈沖寬度至少要保持一個機器周期(若晶振頻率為12MHz,為1微秒)。邊沿觸發方式適合於以負脈沖形式輸入的外部中斷請求。
4.答:定時/計數器實質是加1計數器。
不同點:設置為定時器模式時,加1計數器是對內部機器周期計數(1個機器周期等於12個振盪周期,即計數頻率為晶振頻率的1/12)。計數值乘以機器周期就是定時時間。設置為計數器模式時,外部事件計數脈沖由T0或T1引腳輸入到計數器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數器加1,更新的計數值在下一個機器周期的S3P1期間裝入計數器。
相同點:它們的工作原理相同,它們都有4種工作方式,由TMOD中的M1M0設定,即
方式0:13位計數器;
方式1:16位計數器;
方式2:具有自動重裝初值功能的8位計數器;
方式3:T0分為兩個獨立的8位計數器,T1停止工作。
5.答:方式0位13位計數器,由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發出中斷請求。
計數初值計算的公式為:
X=213-N
方式1的計數位數是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數器。計數個數與計數初值的關系為:
X=216-N
方式2為自動重裝初值的8位計數方式。TH0為8位初值寄存器。當TL0計滿溢出時,由硬體使TF0置1,向CPU發出中斷請求,並將TH0中的計數初值自動送入TL0。TL0從初值重新進行加1計數。周而復始,直至TR0=0才會停止。計數個數與計數初值的關系為:
X=28-N
方式3隻適用於定時/計數器T0,定時器T1處於方式3時相當於TR1=0,停止計數。方式3時,T0分成為兩個獨立的8位計數器TL0和TH0,TL0使用T0的所有控制位。當TL0計數溢出時,由硬體使TF0置1,向CPU發出中斷請求。而TH0固定為定時方式(不能進行外部計數),並且借用了T1的控制位TR1、TF1。因此,TH0的啟、停受TR1控制,TH0的溢出將置位TF1。
6答:TMOD中GATE的值不同:完全由TR1、TR0確定時GATE為0;完全由 、 高低電平控制時GATE為1。
7.答:T0用作方式3時,T1可以工作在方式0、1和2。T1的開啟由TR1控制,即TR1=1時,T1開始工作;TR1=0時或者定時/計數器工作在方式3時,T1停止工作。
8.答:採用定時20ms,然後再計數1、49次的方法實現。
a、T0工作在定時方式1時,控制字TMOD配置:
M1M0=01,GATE=0,C/ =0,可取方式控制字為01H;
b、計算計數初值X:
晶振為12 MHz,所以機器周期Tcy為1 。
N=t/ Tcy =20×10-3/1×10-6=20000
X=216-N=65536-20000=45536=4E20H
即應將4EH送入TH1中,20H送入TL1中。
c、實現程序如下:
ORG 0000H
AJMP MAIN ;跳轉到主程序
ORG 0030H
MAIN:MOV TMOD,#01H ;設T1工作於方式2
MOV TH0,# 4EH ;裝入循環計數初值
MOV TL0,#20H ;首次計數值
LP0:SETB P1.0
ACALL NT0
CLR P1.0
MOV R7,#49 ;計數49次
LP1:ACALL NT0
DJNZ R7,LP1
AJMP LP0
NT0:MOV TH0,# 4EH
MOV TL0,#20H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END
9.答:採用T0實現
a、T0工作在定時方式1時,控制字TMOD配置:
M1M0=01,GATE=0,C/ =0,可取方式控制字為01H;
b、計算計數初值X:
晶振為12 MHz,所以機器周期Tcy為1 。1/1000=1×10-3
N=t/ Tcy =0.5×10-3/1×10-6=500
X=216-N=65536-500=65036=FE0CH
即應將FEH送入TH0中,0CH送入TL0中。
c、實現程序如下:
ORG 0000H
AJMP MAIN ;跳轉到主程序
ORG 000BH ;T0的中斷入口地址
LJMP DVT0
ORG 0030H
MAIN:MOV TMOD,#01H ;設T0工作於方式2
MOV TH0,# 0FEH ;裝入循環計數初值
MOV TL0,#0CH ;首次計數值
SETB ET0 ;T0開中斷
SETB EA ;CPU開中斷
SETB TR0 ;啟動T0
SJMP $ ;等待中斷
DVT0:CPL P1.1
MOV TH0,# 0FEH
MOV TL0,# 0CH
SETB TR0
RETI
END
10.答:a、T1工作在計數方式2時,控制字TMOD配置:
M1M0=10,GATE=0,C/ =1,可取方式控制字為60H;
T1工作在定時方式1時,控制字TMOD配置:
M1M0=01,GATE=0,C/ =0,可取方式控制字為10H;
b、計算初值X:
定時10ms時:
晶振為12 MHz,所以機器周期Tcy為1 。
N=t/ Tcy =10×10-3/1×10-6=10000
X=216-N=65536-10000=55536=D8F0H
即應將D8H送入TH1中,F0H送入TL1中。
計數100時:
N=100
X=28-N=256-100=156=9CH
c、實現程序如下:
ORG 0000H
AJMP MAIN ;跳轉到主程序
ORG 001BH ;T1的中斷入口地址
LJMP DVT1
ORG 0030H
MAIN:MOV TMOD,#60H ;T1工作於計數方式2
MOV TH1,#9CH ;裝入計數初值
MOV TL1,#9CH ;
CLR P1.7
SETB ET1 ;T1開中斷
SETB EA ;CPU開中斷
SETB TR1 ;啟動T1
SJMP $ ;等待中斷
DVT1:SETB P1.7
CLR ET1
CLR TR1
MOV TMOD,#10H ;T1工作於定時方式1
MOV TH1,#0D8H ;裝初值
MOV TL1,#0F0H
SETB TR1
JNB TF1,$ ;查詢等待10ms
CLR TF1
CLR TR1
CLR P1.7
MOV TMOD,#60H ;T1工作於計數方式2
MOV TH1,#9CH ;裝初值
MOV TL1,#9CH ;
SETB ET1 ;T1開中斷
SETB TR1 ;啟動T1
RETI
END
11.答:採用定時20ms,計數50次實現1秒定時。編制1秒延時子程序,由主程序調用。
a、T0工作在定時方式1時,控制字TMOD配置:
M1M0=01,GATE=0,C/ =0,可取方式控制字為01H;
b、計算計數初值X:
晶振為12 MHz,所以機器周期Tcy為1 。
N=t/ Tcy =20×10-3/1×10-6=20000
X=216-N=65536-20000=45536=4E20H
即應將4EH送入TH1中,20H送入TL1中。
c、實現程序如下:
ORG 0000H
AJMP MAIN ;跳轉到主程序
ORG 0030H
MAIN:CLR CY
MOV A,#01H
LP0:MOV P1,A
CALL D1SEC
RL A
AJMP LP0
D1SEC:MOV R7,#50 ;計數50次
MOV TMOD,#01H
DL:MOV TH0,#4EH
MOV TL0,#20H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R7,DL
RET
END
章6 80C51的串列口
1.答:四種工作方式,由SCON中的SM0、SM1進行定義:
方式0:同步移位寄存器的輸入輸出方式,主要用於擴展並行輸入或輸出口,波特率固定。
方式1:10位數據的非同步通信口,波特率可變。
方式2:11位數據的非同步通信口,波特率固定。
方式3:11位數據的非同步通信口,波特率可變。
2.答:RS-232C介面、RS-422A介面、RS-485介面
3.答:最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1 ft)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當波特率超過1000 bps 時,最大傳輸距離將迅速下降。
9. c51單片機中斷程序中的interrupt1,2,3是由什麼決定的
中斷是指由於某種事件的發生(硬體或者軟體的),計算機暫停執行當前的程序,轉而執行另一程序,以處理發生的事件,處理完畢後又返回原程序繼續作業的過程。中斷是處理器一種工作狀態的描述。
1、INT0——外部中斷0,由P3.2埠引入,低電平或下降沿引起。默認優先順序最高。
2、INT1——外部中斷1,由P3.3埠引入,低電平或下降沿引起。默認優先順序第二。
3、T0——定時器/計數器0中斷,由T0計數器計滿回零引起。默認優先順序第三。
4、T1——定時器/計數器1中斷,由T1計數器計滿回零引起。默認優先順序第四。
5、T2——定時器/計數器2中斷,由T2計數器計滿回零引起。默認優先順序第五。
(9)什麼是c51程序的入口擴展閱讀
單片機中斷源類型
(1)外部設備請求中斷。一般的外部設備(如鍵盤、列印機和A / D轉換器等)在完成自身的操作後,向CPU發出中斷請求,要求CPU為他服務。 由計算機硬體異常或故障引起的中斷,也稱為內部異常中斷。
(2)故障強迫中斷。計算機在一些關鍵部位都設有故障自動檢測裝置。如運算溢出、存儲器讀出出錯、外部設備故障、電源掉電以及其他報警信號等,這些裝置的報警信號都能使CPU中斷,進行相應的中斷處理。
(3)實時時鍾請求中斷。在控制中遇到定時檢測和控制,為此常採用一個外部時鍾電路(可編程)控制其時間間隔。需要定時時,CPU發出命令使時鍾電路開始工作,一旦到達規定時間,時鍾電路發出中斷請求,由CPU轉去完成檢測和控制工作。
(4)數據通道中斷。數據通道中斷也稱直接存儲器存取(DMA)操作中斷,如磁碟、磁帶機或CRT等直接與存儲器交換數據所要求的中斷。
(5)程序自願中斷。CPU執行了特殊指令(自陷指令)或由硬體電路引起的中斷是程序自願中斷,是指當用戶調試程序時,程序自願中斷檢查中間結果或尋找錯誤所在而採用的檢查手段,如斷點中斷和單步中斷等。
10. c51單片機中斷程序中的interrupt1,2,3是由什麼決定的
interrupt X是指用的第幾個中斷。。1~2~3是由中斷向量表決定的。也就是由單片機的中斷入口地址的順序決定的。這個是硬體決定的軟體不能改變。
例如外部中斷0就是interrupt 0 定時器0 是interrupt 1 外部中斷1是interrupt 2 定時器2是interrupt 3 串口是interrupt 4