tfl編程
A. 批處理問題(超難的題目!)
其實一點也不難,只是如果單個文件夾文件數過多的話,寫代碼比較繁瑣
如果單個文件夾文件數超過2550個這個代碼我就不寫了,我怕算數^_^
嘿嘿~~不完美的代碼就不貼出來,完美才貼出來^_^,自己覺得完美是因為能處理上億個文件也就是說不受文件數限制,唯一和樓主要求不同的是創建的新文件必須得有個標記符號,也就是創建的是download@1、download@2、download@3 ........
代碼補充:增加按日期排列方式移動文件
生成測試文件
@echo off
md download
for /l %%i in (1,1,1000) do echo.>download\%%i.a
md 123
for /l %%i in (1,1,1000) do echo.>123\%%i.b
md 123\c
for /l %%i in (1,1,1000) do echo.>123\c\%%i.c
rem 不怕處理時間夠長,1000改成100000000也行
:::::::::::::::::::::::::我是分割線::::::::::::::::::::
@echo off
dir /s/b/a-d *.*>1.x
rem 記錄初始目錄結構
:_start
if exist 2.x fc /b 1.x 2.x|find "***"&&(move /y 2.x 1.x)||(del *.x&echo 所有文件夾處理完畢&pause>nul&exit)
rem 每處理一個目錄記錄到文件1.x和2.x後用fc命令對比,2個文件相同即處理完畢了
setlocal enabledelayedexpansion
rem 開啟變數延遲
for /f "delims=" %%a in ('dir/s/b/ad *') do (
set "fpath=%%~dpa"
rem 枚舉目錄結構截取子目錄路徑名到fpath變數
set "fname=%%~na"
rem 枚舉目錄結構截取子目錄名到fname變數
for /f "tokens=1,2 delims=@" %%j in ('echo.!fname!') do (
set "fname=%%j"
rem 截取fname變數以@分隔的前段(也就是原目錄名)
set "fnum=%%k"
rem 截取fname變數以@分隔的後段(也就是處理後的序號)
set /a fnum+=1
rem 處理後的序號上+1
)
echo 正在處理 "%%a" "!fpath!!fname!@!fnum!"
call :slz "%%a" "!fpath!!fname!@!fnum!"
rem call標簽:slz並傳遞待處理的路徑為%1,傳遞處理後的路徑為%2
)
dir /s/b/a-d *.*>2.x
rem 處理一次後目錄記錄到文件2.x
endlocal
rem 關閉變數延遲
goto:_start
rem 跳到代碼開始處繼續處理
:slz
if "%~1"=="" goto:eof
set num=0
rem 文件計數清0
for /f "delims=" %%i in ('dir/b/a-d/od "%~1\*"') do (
set /a num+=1
rem 文件計數
if !num! gtr 255 (
rem 文件數大於255開始移動
if !num! gtr 510 endlocal&goto:_start
rem 文件數大於510跳到代碼開始處繼續處理
md "%~2" 2>nul
rem 建立處理後的路徑目錄
move /y "%~1\%%i" "%~2"
rem 移動文件
))
B. c語言怎麼編寫程序計算:1+22+333+4444+...的前n項的值,n由用戶輸入(n<10)
給,已經編譯運行確認:
#include<conio.h>
#include<stdio.h>
#include<math.h>
main()
{
int i,n;
long j,k,sum=0;
printf("input the n:\n");
scanf("%d",&n); /*n為項數*/
for(i=1;i<=n;i++)
{
k=0;
for(j=i;j>0;j--)
k+=i*pow(10,j-1);
printf("%ld",k); /*列印輸出情況*/
if(i!=n) printf("+");
else printf("=");
sum+=k;
}
printf("%ld\n",sum);
getch();
}
C. TCON是什麼的簡寫
TCON(Timer Control Register)定時器/計數器控制寄存器 TCON在特殊功能寄存器中,位元組地址為88H,位地址(由低位到高位)為88H一8FH,由於有位地址,十分便於進行位操作。 TCON的作用是控制定時器的啟、停,標志定時器溢出和中斷情況。 TCON的格式如下圖所示。其中,TFl,TRl,TF0和TR0位用於定時器/計數器;IEl,ITl,IE0和IT0位用於中斷系統。 各位定義如下: TF1:定時器1溢出標志位。當字時器1計滿溢出時,由硬體使TF1置「1」,並且申請中斷。進入中斷服務程序後,由硬體自動清「0」,在查詢方式下用軟體清「0」。 TR1:定時器1運行控制位。由軟體清「0」關閉定時器1。當GATE=1,且INT1為高電平時,TR1置「1」啟動定時器1;當GATE=0,TR1置「1」啟動定時器1。 TF0:定時器0溢出標志。其功能及操作情況同TF1。 TR0:定時器0運行控制位。其功能及操作情況同TR1。 IE1:外部中斷1請求標志。 IT1:外部中斷1觸發方式選擇位。 IE0:外部中斷0請求標志。 IT0:外部中斷0觸發方式選擇位。 TCON中低4位與中斷有關,我們將在下節課講中斷時再給予講解。由於TCON是可以位定址的,因而如果只清溢出或啟動定時器工作,可以用位操作命令。例如:執行「CLR TF0」後則清定時器0的溢出;執行「SETB TR1」後可啟動定時器1開始工作(當然前面還要設置方式定)。 定時器/計數器的初始化 由於定時器/計數器的功能是由軟體編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。初始貨的步驟一般如下: 1、確定工作方式(即對TMOD賦值); 2、預置定時或計數的初值(可直接將初值寫入TH0、TL0或TH1、TL1); 3、根據需要開放定時器/計數器的中斷(直接對IE位賦值); 4、啟動定時器/計數器(若已規定用軟體啟動,則可把TR0或TR1置「1」;若已規定由外中斷引腳電平啟動,則需給外引腳步加啟動電平。當實現了啟動要求後,定時器即按規定的工作方式和初值開始計數或定時)。 下面介紹一下確定時時/計數器初值的具體方法。 因為在不同工作方式下計數器位數不同,因而最大計數值也不同。 現假設最大計數值為M,那麼各方式下的 最大值M值如下: 方式0:M=213=8 192 方式1:M=216=65 536 方式2:M=28=256 方式3:定時器0分成兩個8位計數器,所以兩個M均為256。 因為定時器/計數器是作「加1」計數,並在計數滿溢出時產生中斷,因此初值X可以這樣計算: X=M-計數值
D. ftl是什麼格式
ftl(FreeMarker Template Language)是Freemarker模板的文件後綴名。
Freemarker其實是一種比較簡單的網頁展示技術,說白了就是網頁模板和數據模型的結合體。這種結合模式的好處就是,分離了網頁界面設計人員和編程人員的工作,讓他們各司其職。
簡單的說,FreeMarker就是一種用Java編寫的模板引擎,該模板引擎可適用於任何場景,它根據模板輸出多種規格的文本。從更本質的方面來說,它是一個Java package,面向Java程序員class library。它本身並不是針對最終用戶的應用,而是允許程序員將其嵌入到他們的產品中。
(4)tfl編程擴展閱讀:
FreeMarker被設計用來生成HTML Web頁面,特別是基於MVC(Model View Controller)模式的應用程序。
使用 MVC 模式作為動態的WEB頁面的想法,是為了分隔頁面設計者 (HTML 設計者) 和程序員。
設計者可以不通過程序員的改變或修改代碼來改變網頁的樣子,因為應用邏輯(Java程序)和頁面設計(FreeMa-rker 模版)是分開的。模板不會被復雜繁瑣的程序框架所破壞。即使當一個項目的程序員和HIMTL頁面的製作者是同一個人時,這種分隔也是很有用,因為這樣有助於保持應用的清晰並易於維護。
E. 什麼是51 單片機中斷允許觸發器
中斷源與中斷請求
由圖3.2可以看出,MCS-51系列單片機有5個中斷源,它們是:外部中斷INTO(P3.2) 、INTI(P3.3);定時器肼數器T0、Tl溢出中斷;串列口的發送(TXD)和接收(RXD)中斷源(只佔1個中斷源)。外部中斷的中斷請求標志位和T0、Tl的溢出中斷請求標志位鎖存在定時器/計數器控制寄存器TCON中,而串列口對應的中斷請求標志位鎖存在串列口控制寄存器SCON中。
1.定時器/計數器控制寄存器TCON
TCON為定時器/計數器控制寄存器,其位元組映像地址為88H,可位定址,它除了控制定時器/計數器T0、Tl的溢出中斷外,還控制著兩個外部中斷源的觸發方式和鎖存兩個外部中斷源的中斷請求標志。其格式如下:
TFl
TRl
TF0
TRO
IEl
ITl
IEO
IT0
TCON寄存器各位的含義如下:
IT0:外部中斷INTO的中斷觸發方式選擇位。
當IT0位清為0時,外部中斷INTO為電平觸發方式。在這種觸發方式中,CPU在每一個機器周期的$5P2采樣INTO(P3.2)引腳的輸入電平,當采樣到低電平時,置INT0的中請求標志位為1,采樣到高電平清IE0位為0。在採用電平觸發方式時,外部中斷源(輸入到INTO,即P3.2引腳)上的必須保持低電平有效,直到該中斷被CPU響應,同時在該中斷服務程序執行結束之前,外部中斷源的有效信號必須被清除,否則將產生另一次中斷。為了保證CPU能正確采樣電平狀態,要求外部中斷源INTO有效的低電平信號至少要維持一個機器周期以上。
當IT0位置為1時,外部中[新IN-T0為邊沿觸發方式。在這種觸發方式中,CPU在每個機器周期的$5P2采樣INTO(P3.2)引腳上的輸入電平。如果在相繼的兩個機器周期,一個周期采樣到INTO為高電平,而接著的下一個周期采樣到低電平,則置INTO的中斷請求標志位IE0為1,即當IE0位為l時,表示外部中斷INTO正在向CPU請求中斷,直到該中斷被CPU響應時,才由硬體自動將IE0位清為0。因為CPU在每一個機器周期采樣一次外部中斷源輸入引腳的電平狀態,因此採用邊沿觸發方式時,外部中斷源輸入的高電平信號和低電平信號時間必須保持在一個機器周期以上,才能保證CPU檢測到此信號由高到低的負跳變。
IE0:外部中斷:INT0的中斷請求標志位。當IE0位為0時,表示外部中斷源INT0沒有向CPU請求中斷;當IE0位為l時,表示外部中斷INTO正在向CPU請求中斷,且當CPU響應該中斷時由硬體自動對IE0進行清0。
1T1:外部中斷INTO的中斷觸發方式選擇位。功能與ITo相同。
IEl:外部中斷INTO的中斷請求標志位。功能與IE0相l司。
TR0:定時器/計數器T0的啟動標志位。當TR0位為0時,不允許T0計數工作;當TRO位為l時,允許T0定時或計數工作。
TF0:定時器/計數器T0的溢出中斷請求標志位。在定時器/計數器T0被允許計數後,從初值開始加l計數,當產生計數溢出時由硬體自動將TF0位置為1,通過TF0位向CPU申請中斷,一直保持到CPU響應該中斷後才由硬體自動將TF0位清為0。當TF0位為0時,表示T0未計數或計數未產生溢出。當T0工作在不允許中斷時,TF0標志可供程序查詢。
TRl:定時器/計數器Tl的啟動標志位。功能與TR0相l司。
TFl:定時器/計數器Tl的溢出中斷請求標志位。功能與TF0相I司。
2.串列口控制寄存器SC,ON
』SCON為串口控制寄存器,其位元組映像地址為98H,也可以進行位定址。串口的接收和發送數據中斷請求標志位(R1、TI)被鎖存在串口控制寄存器SCON中,其格式如下:
SM0
SMl
SM2
REN
TB8
RB8
TI
RI
SCON寄存器各位的含義如下:
R1:串口接收中斷請求標志位。當串列以一定方式接收數據時,每接收完一幀數據,由硬體自動將Rl位置為1。而Rl位的清0必須由用戶用指令來完成。
T1:串l3發送中斷請求標志位。當串口以一定方式發送數據時,每發送完一幀數據,由硬體自動將Tl位置為l。而Tl位的清0也必須由用戶用指令來完成。
注意:在中斷系統中,將串列口的接收中斷Rl和發送中斷Tl經邏輯或運算後作為內部的一個中斷源。當CPU響應串口的中斷請求時,CPU並不清楚是由接收中斷產生的中斷請求還是由發送中斷產生的中斷請求,所以用戶在編寫串口的中斷服務程序時,在程序中必須識別是RI還是Tl產生的中斷請求,從而執行相應的中斷服務程序。
SCON其他位的功能和作用與串列通信有關,將在第6章中介紹。
在上述的特殊功能寄存器中的所有中斷請求標志位,都可以由軟體加以控制,即用軟體置位或清0。當某位置位時,就相當於該位對應的中斷源向CPU發出中斷請求,如果清。就撤銷中斷請求。
3.2.2中斷允許控制
在計算機中斷系統中有兩種不同類型的中斷:一類為非屏蔽中斷,另一類為可屏蔽中斷。對於非屏蔽中斷,用戶不能用軟體方法加以禁止,一旦有中斷請求,CPU就必須予以響應。而對於可屏蔽中斷,用戶則可以通過軟體方法來控制它們是否允許CPU去響應。允許CPU響應某一個中斷請求稱為中斷開放(或中斷允許),不允許CPU響應某一個中斷請求稱為中斷屏蔽(或中斷禁止)。
MCS一51系列單片機的5個中斷源都是可屏蔽中斷。由圖3.2可知,CPU對中斷源的中斷開放或中斷屏蔽的控制是通過中斷允許控制寄存器IE來實現的。IE的位元組映像地址為0A8H,既可以按位元組定址,也可以按位定址。當單片機復位時,IE被清為0。
通過對IE的各位的置1或清0操作,實現開放或屏蔽某個中斷,也可以通過對EA位的清O來屏蔽所有的中斷源。IE的格式如下.
EA
----
-----
ES
ET1
EX1
ETO
EX0
IE寄存器各位的含義為:
EA:總中斷允許控制位。當EA位為0時,屏蔽所有的中斷;當EA位為l時,開放所有的中斷。
ES:串口中斷允許控制位。當ES位為0時,屏蔽串口中斷;當ES位為l且EA位也為1時,開放串口中斷。
ETl:定時器/計數器Tl的中斷允許控制位。當ETl位為0時,屏蔽Tl的溢出中斷;當ETl位為l且EA位也為1時,開放Tl的溢出中斷。
EXl:INT1的中斷允許控制位。當EXl位為0時,屏蔽INTl;當EXl位為l且EA位也為1時,開放麗。
ET0:定時器/計數器T0的中斷允許控制位。功能與ETl相同。
EX0:INT0的中斷允許控制位。功能與EXl相同。比如要開放INTl和Tl的溢出中斷,屏蔽其他中斷,則對應的中斷允許控制字為:l00011008,即8CH。只要將這個結果送人IE中,中斷系統就按所設置的結果來管理這些中斷源。形成這個控制結果的方法可以對IE按位元組操作,也可以按位操作。
按位元組操作形式 按位操作形式
SETB EXl
MOV IE,#8CHSETB ETl
SETB EA
思考題3.1:如果要開放外部中斷0和串口的中斷,而屏蔽其他中斷的控制字是什麼?如何來實現這個控制結果呢?
3.2.3中斷優先權管理
在中斷系統中,要使某一個中斷被優先響應的話,就要依靠中斷優先權控制。MCS-51系列單片機對所有中斷設置了兩個優先權,每一個中斷請求源都可以編程設置為高優先權中斷或低優先權中斷,從而實現二級中斷嵌套。為了實現對中斷優先權的管理,在MCS一51內部提供了一個中斷優先順序寄存器IP,其位元組地址為088H,既可以按位元組形式訪問,又可以按位的形式訪問。其格式如下:
—
-------
--------
PS
PTl
PXl
PT0
PXO
IP寄存器各位的含義如下:
PX0、PT0、PXl、PTl和PS分別為INTO、TO、INT1、Tl和串口中斷優先順序控制位。當相應的位為0時,所對應的中斷源定義為低優先順序,相反則定義為高優先順序。
比如要將T0定義為高優先順序,使CPU優先響應其中斷,其他中斷均定義為低優先順序,對應的優先順序控制字為O00000108,即02H。只要將這個控制字送人IP中,CPU就優先響應TO產生的溢出中斷,並將其他中斷按低優先順序中斷處理。具體操作形式如下:
按位元組操作形式 按位操作形式
MOV IP,#02H SETB PT0
在同一個優先順序中,各中斷源的優先順序別由一個內部的硬體查詢序列來決定,所以在同級的中斷中按硬體查詢序列也確定了一個自然優先順序,其從高到低的優先順序排列如下:
INTO—TO—INT1—Tl--串口(RI、TI)
按中斷優先權設置後,響應中斷的基本原則是:
.若多個中斷請求同時有效,CPU優先響應優先權最高的中斷請求。
.同級的中斷或更低級的中斷不能中斷CPU正在響應的中斷過程。
.低優先權的中斷響應過程可以被高優先權的中斷請求所中斷,CPU會暫時中止當前低優先權的中斷過程,而優先響應高優先權中斷。等到高優先權中斷響應結束後再繼續響應原低優先權的中斷過程,形成中斷的嵌套。為了實現上述功能和基本原則,在MCS.51系列單片機中斷系統的內部設置了兩個不可定址的優先順序觸發器,一個是指出CPU是否正在響應高優先權中斷的高優先順序觸發器,另一個是指出CPU是否正在響應低優先權中斷的低優先順序觸發器。當高優先順序觸發器狀態為l時,屏蔽所有的中斷請求;當低優先順序觸發器狀態為1時,屏蔽所有同級的中斷請求而允許高優先權中斷的中斷請求。
MCS一51系列單片機復位後,特殊功能寄存器IE、IP的內容均為0,由用戶的初始化程序對IE、IP進行初始化,開放或屏蔽某些中斷並設置它們的優先權。
3.2.4中斷響應
單片機一旦工作,並由用戶對各中斷源進行使能和優先權初始化編程後,MCS-51系列單片機的CPU在每個機器周期順序檢查每一個中斷源。那麼,在什麼情況下CPU可以及時響應某一個中斷請求呢?若CPU響應某一個中斷請求,它又是如何工作的呢?
1.中斷響應條件
單片機的CPU在每個機器周期的最後一個狀態周期采樣並按優先權設置的結果處理所有被開放中斷源的中斷請求。一個中斷源的請求要得到響應,必須滿足一定的條件。
(1)CPU正在處理相同的或更高優先權的中斷請求。這種情況下只有當前中斷響應結
束後才可能響應另一個中斷請求。
(2)現行的機器周期不是當前所執行指令的最後一個機器周期。此時只有在當前指令執行結束周期的下一個機器周期才可能響應中斷請求。
(3)正在執行的指令是中斷返回指令(RETI)或者是對IE、IP的寫操作指令。在這種情況下,只有在這些指令執行結束並至少再執行一條其他指令後才可能響應中斷請求。如果上述條件中有一個存在,CPU將自動丟棄對中斷查詢的結果;若一個條件也不存在,則將在緊接著的下一個機器周期執行中斷查詢的結果,響應相應的中斷請求。
2.中斷響應過程
如果某一個中斷被開放,且中斷請求符合響應條件,CPU會及時響應該中斷請求,並按下列過程進行處理:
(1)置相應的優先順序觸發器狀態為1,指明了CPU正在響應的中斷優先權的級別,並通過它屏蔽所有同級或更低級的中斷請求,允許更高級的中斷請求。
(2)執行一條硬體子程序調用,清相應的中斷請求標志位為0(R1、Tl和電平觸發的外部中斷除外)。
(3)保護斷點。即將被中斷程序的斷點位置(Pc的值)壓人堆棧保存起來。
(4)將被響應的中斷源的中斷服務程序入口地址送程序計數器PC。各中斷源的中斷服務程序入口地址的分配情況如表l.4所示。
(5)執行相應的中斷服務程序。當CPU執行完中斷服務程序中的中斷返回指令後,清相應的優先順序觸發器為0,然後恢復斷點,即將保存在堆棧中的程序計數器PC的值再彈給PC,使CPU再繼續執行原來被中斷的程序。
3.中斷響應的時間
在MCS.51系列單片機中的外部中斷請求信號在每一個機器周期的第5個狀態周期的第2個時鍾脈沖被采樣並鎖存到相應的中斷請求標志中,這個狀態等到下一個機器周期才被查詢。如果中斷被開放,並符合響應條件,CPU接著執行一個硬體子程序調用指令以轉到相應的中斷服務程序入口,該調用指令需要2個機器周期,所以從外部產生中斷請求到CPU開始執行中斷服務程序的第l條指令之間,最少需要3個完整的機器周期。如果中斷請求被阻止,則需要更長的時間。如果已經在處理同級或更高級中斷,額外的等待取決於中斷服務程序的處理過程。如果正處理的指令沒有執行到最後的機器周期,即使是需要時間最長的乘法或除法指令,所需的額外等待時間不會超過3個機器周期;如果是CPU正在執行中斷返回指令RETl或對IE、IP的寫操作指令,加上另外一條指令的執行時間,額外的等待時間不會多於5個機器周期。所以在單一中斷系統中,外部中斷響應時間總是在3~8個機器周期。
F. 單片機原理及其應用(找師傅)
1 二進制數10101010轉換為十進制為(170)十六進制(0xaa)。 十進制數6的8421BCD碼為(00000110),
2 單片機是指將(運算器、),(控制器),(存儲器),及各種I/O口線集成在一塊晶元上的計算機
3 標志程序的偽指令是(MAIN ),標志程序開始的偽指令是(ORG).
4 半導體儲存器按功能分,可分為(程序存儲器ROM )和(數據存儲器RAM )兩大類.
5. 8051單片機有(4組每組8個共32)個並向I/O口,共(32)根I/O線。
6 單片機串列通信有(單工)(半雙工)(全雙工)三種傳輸方向
二問答題
1.MCS-51單片機內含哪些主要部件?
8位CPU及片內振盪器,80514B掩膜ROM,87514KB EPROM,8031無ROM,特殊功能寄存器SFR128B RAM,定時器/計數器T0及T1,並行I/O介面:P0,P1,P2,P3;串列介面:TXD,RXD;中斷系統:INT0,INT1.
2.MCS-51單片機有哪幾個中斷源?有哪幾個中斷優先順序?
A:INT0(外部中斷0) 0003H;B:TF0(TO中斷) 000BH;C:INT1(外部中斷1) 0013H;D:TFl(T1中斷) 001BH;E:RI/TI(串列口中斷) 0023H.
自然中斷優先順序按ABCDE遞減,可以人為設置改變自然優先順序.
3.簡述並行通訊和串列通訊的優缺點?
並口傳輸速度快,串口傳輸速度慢;並口傳送的線路長度受到限制,串口傳送距離較並行口更長;串口一般像USB傳輸數據只需要兩根數據線,而並口需要更多更多的數據線.
4.簡述80C51單片機內部RAM的配置情況?
data:直接定址區,為內部RAM的低128 位元組 00H~7FH,idata:間接定址區,包括整個內部RAM區 00H~FFH,bdata:可位定址區,20H~2FH
三 編程題
ORG 0020H ;定義程序首地址
CSH: MOV R0,#47H ;內部RAM(40H~47H)清零
CSH1: MOV @R0,#40H
DJNZ R0,CSH1
G. STC15系列在Keil中編程時,如何引用STC15系列的頭文件急求。。。。
直接#include<STC15.h>就是引用了哦。
你把頭文件放到相應的目錄下一次就應該可以了,如果你使用的是會自動還原的機子就只有聯系管理員兒了。
參考鏈接http://wenku..com/link?url=
希望能幫到你
H. pictrues是什麼
picture
[5pIktFL; 5piktFE]
形象,字形,圖象
A language construct that describes a data type by means of a model character string literal.
編程語言中,利用模型字元串的數值文字描述數據類型的一種語言成分。
In a program, a string of characters used in editing to modify the indivial characters in a field. There is a one-to-one relationship between the characters in the picture and the characters in the field.
在程序中,編輯時用於修改某欄位中各字元的一串字元。形象中的字元與欄位中的字元之間有一一對應關系。
The display image of an area on a document.
在文卷上,某區的顯示圖象。
picture
[5piktFE]
n.
畫, 圖畫, 圖片
照片, 畫像
美景, 美的事物[人]
生動的描寫, 寫照
相似的形象, 化身, 體現
印象, 記憶, 情景, 想像
[pl. ]電影, 電影院
【無】圖象, 電視畫面
picture book
圖畫書
picture card
花牌(紙牌中的J、Q、K); 有圖畫的明信片
picture gallery
畫 廊, 美術館, 美術陳列館
picture hat
女用寬邊帽
picture hall [house, palace, show, theatre]
電影院(的舊稱)
picture play
電影劇
picture tube
(電視)顯像管
have one's picture taken
(請人給自己)照像
give a picture of ...
把...描繪一番
You look the picture of health.
你看起來十分健康。
She is the picture of her mother.
她活象她的媽媽。
picture
[5piktFE]
vt.
畫, 用圖表示
生動地描寫[描述, 描繪]
想像
把...(作為電影)拍攝
It is hard to picture life a hundred years ago.
我們很難想像一百年前人們的生活。
picturedrome
[`pIktFEdrEJm]
n.
[英]電影院
picture-goer
n.
影迷
picturable
adj.
picturableness
n.
picturably
adv.
pictured
adj.
picturer
n.
be high up in the pictures (=be in the picture picture)
大有成就; 成為要人, 居重要地位
be in the picture
[口]被告知詳情; 獲得最新消息
be the picture of
是...的化身
活象
look the picture of
是...的化身
活象
be the very picture of
是...的化身
活象
look the very picture of
是...的化身
活象
big picture
[口](電影放映節目單上的)正片; [美俚]特種寬銀幕電影
close-up picture
特寫鏡頭, 特寫畫面
come into the picture
引人注意, 處於顯要地位, 成為其中一部分
step into the picture
引人注意, 處於顯要地位, 成為其中一部分
go to the pictures
去看電影
not in the picture
不合適, 不相乾的
被拋棄, 被拒絕, 沒有贏的希望
out of the picture
不合適, 不相乾的
被拋棄, 被拒絕, 沒有贏的希望
put sb. in the picture
把基本情況告訴某人
keep sb. in the picture
把基本情況告訴某人
take a picture
攝影, 照相
take a good picture
照起相來好看[不好看]
take a bad picture
照起相來好看[不好看]
word picture
生動的文字描述, 有聲有色的描寫
picture sth. to oneself
想像[設想]某事
I. 控制cpu內部中斷允許觸發器的指令是
中斷源與中斷請求
由圖3.2可以看出,MCS——51系列單片機有5個中斷源,它們是:外部中斷INTO(P3.2) 、INTI(P3.3);定時器肼數器T0、Tl溢出中斷;串列口的發送(TXD)和接收(RXD)中斷源(只佔1個中斷源)。外部中斷的中斷請求標志位和T0、Tl的溢出中斷請求標志位鎖存在定時器/計數器控制寄存器TCON中,而串列口對應的中斷請求標志位鎖存在串列口控制寄存器SCON中。
1.定時器/計數器控制寄存器TCON
TCON為定時器/計數器控制寄存器,其位元組映像地址為88H,可位定址,它除了控制定時器/計數器T0、Tl的溢出中斷外,還控制著兩個外部中斷源的觸發方式和鎖存兩個外部中斷源的中斷請求標志。其格式如下:
TFl
TRl
TF0
TRO
IEl
ITl
IEO
IT0
TCON寄存器各位的含義如下:
IT0:外部中斷INTO的中斷觸發方式選擇位。
當IT0位清為0時,外部中斷INTO為電平觸發方式。在這種觸發方式中,CPU在每一個機器周期的$5P2采樣INTO(P3.2)引腳的輸入電平,當采樣到低電平時,置INT0的中請求標志位為1,采樣到高電平清IE0位為0。在採用電平觸發方式時,外部中斷源(輸入到INTO,即P3.2引腳)上的必須保持低電平有效,直到該中斷被CPU響應,同時在該中斷服務程序執行結束之前,外部中斷源的有效信號必須被清除,否則將產生另一次中斷。為了保證CPU能正確采樣電平狀態,要求外部中斷源INTO有效的低電平信號至少要維持一個機器周期以上。
當IT0位置為1時,外部中[新IN-T0為邊沿觸發方式。在這種觸發方式中,CPU在每個機器周期的$5P2采樣INTO(P3.2)引腳上的輸入電平。如果在相繼的兩個機器周期,一個周期采樣到INTO為高電平,而接著的下一個周期采樣到低電平,則置INTO的中斷請求標志位IE0為1,即當IE0位為l時,表示外部中斷INTO正在向CPU請求中斷,直到該中斷被CPU響應時,才由硬體自動將IE0位清為0。因為CPU在每一個機器周期采樣一次外部中斷源輸入引腳的電平狀態,因此採用邊沿觸發方式時,外部中斷源輸入的高電平信號和低電平信號時間必須保持在一個機器周期以上,才能保證CPU檢測到此信號由高到低的負跳變。
IE0:外部中斷:INT0的中斷請求標志位。當IE0位為0時,表示外部中斷源INT0沒有向CPU請求中斷;當IE0位為l時,表示外部中斷INTO正在向CPU請求中斷,且當CPU響應該中斷時由硬體自動對IE0進行清0。
1T1:外部中斷INTO的中斷觸發方式選擇位。功能與ITo相同。
IEl:外部中斷INTO的中斷請求標志位。功能與IE0相l司。
TR0:定時器/計數器T0的啟動標志位。當TR0位為0時,不允許T0計數工作;當TRO位為l時,允許T0定時或計數工作。
TF0:定時器/計數器T0的溢出中斷請求標志位。在定時器/計數器T0被允許計數後,從初值開始加l計數,當產生計數溢出時由硬體自動將TF0位置為1,通過TF0位向CPU申請中斷,一直保持到CPU響應該中斷後才由硬體自動將TF0位清為0。當TF0位為0時,表示T0未計數或計數未產生溢出。當T0工作在不允許中斷時,TF0標志可供程序查詢。
TRl:定時器/計數器Tl的啟動標志位。功能與TR0相l司。
TFl:定時器/計數器Tl的溢出中斷請求標志位。功能與TF0相I司。
2.串列口控制寄存器SC,ON
'SCON為串口控制寄存器,其位元組映像地址為98H,也可以進行位定址。串口的接收和發送數據中斷請求標志位(R1、TI)被鎖存在串口控制寄存器SCON中,其格式如下:
SM0
SMl
SM2
REN
TB8
RB8
TI
RI
SCON寄存器各位的含義如下:
R1:串口接收中斷請求標志位。當串列以一定方式接收數據時,每接收完一幀數據,由硬體自動將Rl位置為1。而Rl位的清0必須由用戶用指令來完成。
T1:串l3發送中斷請求標志位。當串口以一定方式發送數據時,每發送完一幀數據,由硬體自動將Tl位置為l。而Tl位的清0也必須由用戶用指令來完成。
注意:在中斷系統中,將串列口的接收中斷Rl和發送中斷Tl經邏輯或運算後作為內部的一個中斷源。當CPU響應串口的中斷請求時,CPU並不清楚是由接收中斷產生的中斷請求還是由發送中斷產生的中斷請求,所以用戶在編寫串口的中斷服務程序時,在程序中必須識別是RI還是Tl產生的中斷請求,從而執行相應的中斷服務程序。
SCON其他位的功能和作用與串列通信有關,將在第6章中介紹。
在上述的特殊功能寄存器中的所有中斷請求標志位,都可以由軟體加以控制,即用軟體置位或清0。當某位置位時,就相當於該位對應的中斷源向CPU發出中斷請求,如果清。就撤銷中斷請求。
3.2.2中斷允許控制
在計算機中斷系統中有兩種不同類型的中斷:一類為非屏蔽中斷,另一類為可屏蔽中斷。對於非屏蔽中斷,用戶不能用軟體方法加以禁止,一旦有中斷請求,CPU就必須予以響應。而對於可屏蔽中斷,用戶則可以通過軟體方法來控制它們是否允許CPU去響應。允許CPU響應某一個中斷請求稱為中斷開放(或中斷允許),不允許CPU響應某一個中斷請求稱為中斷屏蔽(或中斷禁止)。
MCS一51系列單片機的5個中斷源都是可屏蔽中斷。由圖3.2可知,CPU對中斷源的中斷開放或中斷屏蔽的控制是通過中斷允許控制寄存器IE來實現的。IE的位元組映像地址為0A8H,既可以按位元組定址,也可以按位定址。當單片機復位時,IE被清為0。
通過對IE的各位的置1或清0操作,實現開放或屏蔽某個中斷,也可以通過對EA位的清O來屏蔽所有的中斷源。IE的格式如下。
EA
----
-----
ES
ET1
EX1
ETO
EX0
IE寄存器各位的含義為:
EA:總中斷允許控制位。當EA位為0時,屏蔽所有的中斷;當EA位為l時,開放所有的中斷。
ES:串口中斷允許控制位。當ES位為0時,屏蔽串口中斷;當ES位為l且EA位也為1時,開放串口中斷。
ETl:定時器/計數器Tl的中斷允許控制位。當ETl位為0時,屏蔽Tl的溢出中斷;當ETl位為l且EA位也為1時,開放Tl的溢出中斷。
EXl:INT1的中斷允許控制位。當EXl位為0時,屏蔽INTl;當EXl位為l且EA位也為1時,開放麗。
ET0:定時器/計數器T0的中斷允許控制位。功能與ETl相同。
EX0:INT0的中斷允許控制位。功能與EXl相同。比如要開放INTl和Tl的溢出中斷,屏蔽其他中斷,則對應的中斷允許控制字為:l00011008,即8CH。只要將這個結果送人IE中,中斷系統就按所設置的結果來管理這些中斷源。形成這個控制結果的方法可以對IE按位元組操作,也可以按位操作。
按位元組操作形式 按位操作形式
SETB EXl
MOV IE,#8CHSETB ETl
SETB EA
思考題3.1:如果要開放外部中斷0和串口的中斷,而屏蔽其他中斷的控制字是什麼?如何來實現這個控制結果呢?
3.2.3中斷優先權管理
在中斷系統中,要使某一個中斷被優先響應的話,就要依靠中斷優先權控制。MCS-51系列單片機對所有中斷設置了兩個優先權,每一個中斷請求源都可以編程設置為高優先權中斷或低優先權中斷,從而實現二級中斷嵌套。為了實現對中斷優先權的管理,在MCS一51內部提供了一個中斷優先順序寄存器IP,其位元組地址為088H,既可以按位元組形式訪問,又可以按位的形式訪問。其格式如下:
—
-------
--------
PS
PTl
PXl
PT0
PXO
IP寄存器各位的含義如下:
PX0、PT0、PXl、PTl和PS分別為INTO、TO、INT1、Tl和串口中斷優先順序控制位。當相應的位為0時,所對應的中斷源定義為低優先順序,相反則定義為高優先順序。
比如要將T0定義為高優先順序,使CPU優先響應其中斷,其他中斷均定義為低優先順序,對應的優先順序控制字為O00000108,即02H。只要將這個控制字送人IP中,CPU就優先響應TO產生的溢出中斷,並將其他中斷按低優先順序中斷處理。具體操作形式如下:
按位元組操作形式 按位操作形式
MOV IP,#02H SETB PT0
在同一個優先順序中,各中斷源的優先順序別由一個內部的硬體查詢序列來決定,所以在同級的中斷中按硬體查詢序列也確定了一個自然優先順序,其從高到低的優先順序排列如下:
INTO—TO—INT1—Tl--串口(RI、TI)
按中斷優先權設置後,響應中斷的基本原則是:
.若多個中斷請求同時有效,CPU優先響應優先權最高的中斷請求。
.同級的中斷或更低級的中斷不能中斷CPU正在響應的中斷過程。
.低優先權的中斷響應過程可以被高優先權的中斷請求所中斷,CPU會暫時中止當前低優先權的中斷過程,而優先響應高優先權中斷。等到高優先權中斷響應結束後再繼續響應原低優先權的中斷過程,形成中斷的嵌套。為了實現上述功能和基本原則,在MCS.51系列單片機中斷系統的內部設置了兩個不可定址的優先順序觸發器,一個是指出CPU是否正在響應高優先權中斷的高優先順序觸發器,另一個是指出CPU是否正在響應低優先權中斷的低優先順序觸發器。當高優先順序觸發器狀態為l時,屏蔽所有的中斷請求;當低優先順序觸發器狀態為1時,屏蔽所有同級的中斷請求而允許高優先權中斷的中斷請求。
MCS一51系列單片機復位後,特殊功能寄存器IE、IP的內容均為0,由用戶的初始化程序對IE、IP進行初始化,開放或屏蔽某些中斷並設置它們的優先權。
3.2.4中斷響應
單片機一旦工作,並由用戶對各中斷源進行使能和優先權初始化編程後,MCS-51系列單片機的CPU在每個機器周期順序檢查每一個中斷源。那麼,在什麼情況下CPU可以及時響應某一個中斷請求呢?若CPU響應某一個中斷請求,它又是如何工作的呢?
1.中斷響應條件
單片機的CPU在每個機器周期的最後一個狀態周期采樣並按優先權設置的結果處理所有被開放中斷源的中斷請求。一個中斷源的請求要得到響應,必須滿足一定的條件。
(1)CPU正在處理相同的或更高優先權的中斷請求。這種情況下只有當前中斷響應結
束後才可能響應另一個中斷請求。
(2)現行的機器周期不是當前所執行指令的最後一個機器周期。此時只有在當前指令執行結束周期的下一個機器周期才可能響應中斷請求。
(3)正在執行的指令是中斷返回指令(RETI)或者是對IE、IP的寫操作指令。在這種情況下,只有在這些指令執行結束並至少再執行一條其他指令後才可能響應中斷請求。如果上述條件中有一個存在,CPU將自動丟棄對中斷查詢的結果;若一個條件也不存在,則將在緊接著的下一個機器周期執行中斷查詢的結果,響應相應的中斷請求。
2.中斷響應過程
如果某一個中斷被開放,且中斷請求符合響應條件,CPU會及時響應該中斷請求,並按下列過程進行處理:
(1)置相應的優先順序觸發器狀態為1,指明了CPU正在響應的中斷優先權的級別,並通過它屏蔽所有同級或更低級的中斷請求,允許更高級的中斷請求。
(2)執行一條硬體子程序調用,清相應的中斷請求標志位為0(R1、Tl和電平觸發的外部中斷除外)。
(3)保護斷點。即將被中斷程序的斷點位置(Pc的值)壓人堆棧保存起來。
(4)將被響應的中斷源的中斷服務程序入口地址送程序計數器PC。各中斷源的中斷服務程序入口地址的分配情況如表l.4所示。
(5)執行相應的中斷服務程序。當CPU執行完中斷服務程序中的中斷返回指令後,清相應的優先順序觸發器為0,然後恢復斷點,即將保存在堆棧中的程序計數器PC的值再彈給PC,使CPU再繼續執行原來被中斷的程序。
3.中斷響應的時間
在MCS.51系列單片機中的外部中斷請求信號在每一個機器周期的第5個狀態周期的第2個時鍾脈沖被采樣並鎖存到相應的中斷請求標志中,這個狀態等到下一個機器周期才被查詢。如果中斷被開放,並符合響應條件,CPU接著執行一個硬體子程序調用指令以轉到相應的中斷服務程序入口,該調用指令需要2個機器周期,所以從外部產生中斷請求到CPU開始執行中斷服務程序的第l條指令之間,最少需要3個完整的機器周期。如果中斷請求被阻止,則需要更長的時間。如果已經在處理同級或更高級中斷,額外的等待取決於中斷服務程序的處理過程。如果正處理的指令沒有執行到最後的機器周期,即使是需要時間最長的乘法或除法指令,所需的額外等待時間不會超過3個機器周期;如果是CPU正在執行中斷返回指令RETl或對IE、IP的寫操作指令,加上另外一條指令的執行時間,額外的等待時間不會多於5個機器周期。所以在單一中斷系統中,外部中斷響應時間總是在3——8個機器周期。