STC 定時器2 的操作定時器2 是一個16 位定時/ 計數器。通過設置特殊功能寄存器T2CON 中的C/T2 位,可將其作為定時器或計數器(特殊功能寄存器T2CON 的描述如表1 所列)。定時器2 有3 種操作模式:捕獲、自動重新裝載(遞增或遞減計數)和波特率發生器,這3 種模式由T2CON 中的位進行選擇(如表2 所列)。表1 特殊功能寄存器T2CON 的描述 1.捕獲模式2. 自動重裝模式(遞增/ 遞減計數器)3.波特率發生器模式4.波特率公式匯總5.定時器/ 計數器2 的設置6.可編程時鐘輸出
上傳時間: 2013-11-12
上傳用戶:zhangzhenyu
九.輸入/輸出保護為了支持多任務,80386不僅要有效地實現任務隔離,而且還要有效地控制各任務的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護。 這里下載本文源代碼。 <一>輸入/輸出保護80386采用I/O特權級IPOL和I/O許可位圖的方法來控制輸入/輸出,實現輸入/輸出保護。 1.I/O敏感指令輸入輸出特權級(I/O Privilege Level)規定了可以執行所有與I/O相關的指令和訪問I/O空間中所有地址的最外層特權級。IOPL的值在如下圖所示的標志寄存器中。 標 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規定了I/O空間中的哪些地址可以由在任何特權級執行的程序所訪問。I/O許可位圖在任務狀態段TSS中。 I/O敏感指令 指令 功能 保護方式下的執行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數據 CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數據 CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關,并且只有在滿足所列條件時才可以執行,所以把它們稱為I/O敏感指令。從表中可見,當前特權級不在I/O特權級外層時,可以正常執行所列的全部I/O敏感指令;當特權級在I/O特權級外層時,執行CLI和STI指令將引起通用保護異常,而其它四條指令是否能夠被執行要根據訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執行,那么將引起出錯碼為0的通用保護異常。 由于每個任務使用各自的EFLAGS值和擁有自己的TSS,所以每個任務可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實模式下總是可執行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執行是很不方便的,不能滿足實際要求需要。因為這樣做會使得在特權級3執行的應用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實際需要與此剛好相反,只允許任務甲的應用程序訪問部分I/O地址,只允許任務乙的應用程序訪問另一部分I/O地址,以避免任務甲和任務乙在訪問I/O地址時發生沖突,從而避免任務甲和任務乙使用使用獨享設備時發生沖突。 因此,在IOPL的基礎上又采用了I/O許可位圖。I/O許可位圖由二進制位串組成。位串中的每一位依次對應一個I/O地址,位串的第0位對應I/O地址0,位串的第n位對應I/O地址n。如果位串中的第位為0,那么對應的I/O地址m可以由在任何特權級執行的程序訪問;否則對應的I/O地址m只能由在IOPL特權級或更內層特權級執行的程序訪問。如果在I/O外層特權級執行的程序訪問位串中位值為1的位所對應的I/O地址,那么將引起通用保護異常。 I/O地址空間按字節進行編址。一條I/O指令最多可涉及四個I/O地址。在需要根據I/O位圖決定是否可訪問I/O地址的情況下,當一條I/O指令涉及多個I/O地址時,只有這多個I/O地址所對應的I/O許可位圖中的位都為0時,該I/O指令才能被正常執行,如果對應位中任一位為1,就會引起通用保護異常。 80386支持的I/O地址空間大小是64K,所以構成I/O許可位圖的二進制位串最大長度是64K個位,即位圖的有效部分最大為8K字節。一個任務實際需要使用的I/O許可位圖大小通常要遠小于這個數目。 當前任務使用的I/O許可位圖存儲在當前任務TSS中低端的64K字節內。I/O許可位圖總以字節為單位存儲,所以位串所含的位數總被認為是8的倍數。從前文中所述的TSS格式可見,TSS內偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長可達8K字節,所以開始偏移應小于56K,但必須大于等于104,因為TSS中前104字節為TSS的固定格式,用于保存任務的狀態。 1.I/O訪問許可檢查細節保護模式下處理器在執行I/O指令時進行許可檢查的細節如下所示。 (1)若CPL<=IOPL,則直接轉步驟(8);(2)取得I/O位圖開始偏移;(3)計算I/O地址對應位所在字節在I/O許可位圖內的偏移;(4)計算位偏移以形成屏蔽碼值,即計算I/O地址對應位在字節中的第幾位;(5)把字節偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產生出錯碼為0的通用保護故障;(6)若不越界,則從位圖中讀對應字節及下一個字節;(7)把讀出的兩個字節與屏蔽碼進行與運算,若結果不為0表示檢查未通過,則產生出錯碼為0的通用保護故障;(8)進行I/O訪問。設某一任務的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對應I/O端口00H—3FH DB 10000000B ;對應I/O端口40H—47H DB 01100000B ;對用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對應I/O端口50H—0FFFFH DB 0FFH ;位圖結束字節TSSLen = $TSSSEG ENDS 再假設IOPL=1,CPL=3。那么如下I/O指令有些能正常執行,有些會引起通用保護異常: in al,21h ;(1)正常執行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執行 out 20h,eax ;(6)正常執行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執行 由上述I/O許可檢查的細節可見,不論是否必要,當進行許可位檢查時,80386總是從I/O許可位圖中讀取兩個字節。目的是為了盡快地執行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個字節。例如,上面的第(8)條指令要對I/O位圖中的兩個位進行檢查,其低位是某個字節的最高位,高位是下一個字節的最低位。可見即使只要檢查兩個位,也可能需要讀取兩個字節。另一方面,最多檢查四個連續的位,即最多也只需讀取兩個字節。所以每次要讀取兩個字節。這也是在判別是否越界時再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節時產生越界,必須在I/O許可位圖的最后填加一個全1的字節,即0FFH。此全1的字節應填加在最后一個位圖字節之后,TSS界限范圍之前,即讓填加的全1字節在TSS界限之內。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當TSS的界限大于I/O許可位圖開始偏移加8K時,I/O許可位圖的有效部分就有8K字節,I/O許可檢查全部根據全部根據該位圖進行。當TSS的界限不大于I/O許可位圖開始偏移加8K時,I/O許可位圖有效部分就不到8K字節,于是對較小I/O地址訪問的許可檢查根據位圖進行,而對較大I/O地址訪問的許可檢查總被認為不可訪問而引起通用保護故障。因為這時會發生字節越界而引起通用保護異常,所以在這種情況下,可認為不足的I/O許可位圖的高端部分全為1。利用這個特點,可大大節約TSS中I/O許可位圖占用的存儲單元,也就大大減小了TSS段的長度。 <二>重要標志保護輸入輸出的保護與存儲在標志寄存器EFLAGS中的IOPL密切相關,顯然不能允許隨便地改變IOPL,否則就不能有效地實現輸入輸出保護。類似地,對EFLAGS中的IF位也必須加以保護,否則CLI和STI作為敏感指令對待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對EFLAGS中的這三個字段的處理比較特殊,只有在較高特權級執行的程序才能執行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權級下對這三個字段的處理情況。 不同特權級對標志寄存器特殊字段的處理 特權級 VM標志字段 IOPL標志字段 IF標志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權級0執行的程序才可以修改IOPL位及VM位;只能由相對于IOPL同級或更內層特權級執行的程序才可以修改IF位。與CLI和STI指令不同,在特權級不滿足上述條件的情況下,當執行POPF指令和IRET指令時,如果試圖修改這些字段中的任何一個字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標志中的VM位總為0。 <三>演示輸入輸出保護的實例(實例九)下面給出一個用于演示輸入輸出保護的實例。演示內容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權指令引起的異常;使用段間調用指令CALL通過任務門調用任務,實現任務嵌套。 1.演示步驟實例演示的內容比較豐富,具體演示步驟如下:(1)在實模式下做必要準備后,切換到保護模式;(2)進入保護模式的臨時代碼段后,把演示任務的TSS段描述符裝入TR,并設置演示任務的堆棧;(3)進入演示代碼段,演示代碼段的特權級是0;(4)通過任務門調用測試任務1。測試任務1能夠順利進行;(5)通過任務門調用測試任務2。測試任務2演示由于違反I/O許可位圖規定而導致通用保護異常;(6)通過任務門調用測試任務3。測試任務3演示I/O敏感指令如何引起通用保護異常;(7)通過任務門調用測試任務4。測試任務4演示特權指令如何引起通用保護異常;(8)從演示代碼轉臨時代碼,準備返回實模式;(9)返回實模式,并作結束處理。
上傳時間: 2013-12-11
上傳用戶:nunnzhy
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
摘要: 本文介紹了L ED 顯示屏常規型驅動電路的設計方式及其存在的缺陷, 提出了簡單的L ED 顯示屏恒流驅動方式及電路的實現。關鍵詞:L ED 顯示屏 動態掃描 驅動電路中圖分類號: TN 873+ . 93 文獻標識碼:A 文章編號: 1005- 9490(2001) 03- 0252- 051 引 言 L ED 顯示屏是80 年代后期在全球迅速發展起來的新型信息顯示媒體, 它利用發光二極管構成的點陣模塊或像素單元, 組成大面積顯示屏幕, 以其可靠性高、使用壽命、環境適應能力強、性能價格比高、使用成本低等特點, 在信息顯示領域已經得到了非常廣泛的應用[ 1 ]。L ED 顯示屏主要包括發光二極管構成的陣列、驅動電路、控制系統及傳輸接口和相應的應用軟件等, 其中驅動電路設計的好壞, 對L ED 顯示屏的顯示效果、制作成本及系統的運行性能起著很重要的作用。所以, 設計一種既能滿足控制驅動的要求, 同時使用器件少、成本低的控制驅動電路是很有必要的。本文就常規型驅動電路的設計作些分析并提出恒流驅動電路的設計方式。2 L ED 顯示屏常規驅動電路的設計 L ED 顯示屏驅動電路的設計, 與所用控制系統相配合, 通常分為動態掃描型驅動及靜態鎖存型驅動二大類。以下就動態掃描型驅動電路的設計為例為進行分析:動態掃描型驅動方式是指顯示屏上的4 行、8 行、16 行等n 行發光二極管共用一組列驅動寄存器, 通過行驅動管的分時工作, 使得每行L ED 的點亮時間占總時間的1ön , 只要每行的刷新速率大于50 Hz, 利用人眼的視覺暫留效應, 人們就可以看到一幅完整的文字或畫面[ 2 ]。常規型驅動電路的設計一般是用串入并出的通用集成電路芯片如74HC595 或MC14094 等作為列數據鎖存, 以8050 等小功率N PN 三極管為列驅動, 而以達林頓三極管如T IP127 等作為行掃描管, 其電路如圖1 所示。
上傳時間: 2014-02-19
上傳用戶:lingzhichao
鍵盤工作原理ppt l逐行掃描法 l由程序對鍵盤進行逐行掃描,通過檢測到的列輸出狀態來確定閉合鍵。 l需要設置輸入口、輸出口各一個。 l行列掃描法 l通過行列顛倒掃描來識別閉合鍵。在掃描每一行時,讀列線;然后依次向列線掃描輸出,讀行線。 l需要提供兩個可編程的雙向輸入/輸出端口。
上傳時間: 2013-10-15
上傳用戶:zq70996813
存儲器技術.doc 計算機的主存儲器(Main Memory),又稱為內部存儲器,簡稱為內存。內存實質上是一組或多組具備數據輸入輸出和數據存儲功能的集成電路。內存的主要作用是用來存放計算機系統執行時所需要的數據,存放各種輸入、輸出數據和中間計算結果,以及與外部存儲器交換信息時作為緩沖用。由于CPU只能直接處理內存中的數據 ,所以內存是計算機系統中不可缺少的部件。內存的品質直接關系到計算機系統的速度、穩定性和兼容性。 4.1 存儲器類型計算機內部存儲器有兩種類型,一種稱為只讀存儲器ROM(Read Only Memiry),另一種稱為隨機存儲器RAM(Random Access Memiry)。 4.1.1 只讀存儲器只讀存儲器ROM主要用于存放計算機固化的控制程序,如主板的BIOS程序、顯卡BIOS控制程序、硬盤控制程序等。ROM的典型特點是:一旦將數據寫入ROM中后,即使在斷電的情況下也能夠永久的保存數據。從使用上講,一般用戶能從ROM中讀取數據,而不能改寫其中的數據。但現在為了做一日和尚撞一天鐘于軟件或硬件程序升級,普通用戶使用所謂的閃存(Flash Memiry)也可以有條件地改變ROM中的數據。有關只讀存儲器ROM的內容將在第11章中介紹,本章主要介紹隨機存儲器。4.1.2 隨機存取存儲器隨機存取存儲器RAM的最大特點是計算機可以隨時改變RAM中的數據,并且一旦斷電,TAM中數據就會立即丟失,也就是說,RAM中的數據在斷電后是不能保留的。從用于制造隨機存取存儲器的材料上看,RAM又可分為靜態隨機存儲器SRAM(Static RAM)和動態隨機存儲器DRAM(Dymamic RAM)兩種。1. 動態隨機存儲器在DRAM中數據是以電荷的形式存儲在電容上的,充電后電容上的電壓被認為是邏輯上的“1”,而放電后的電容上的電壓被認為是邏輯上的“0”認。為了減少存儲器的引腳數,就反存儲器芯片的每個基本單元按行、列矩陣形式連接起來,使每個存儲單元位于行、列的交叉點。這樣每個存儲單元的地址做一日和尚撞一天鐘可以用位數較少的行地址和列地址兩個部分表示,在對每個單元進行讀寫操作時,就可以采用分行、列尋址方式寫入或讀出相應的數據,如圖4-1所示。 由于電容充電后,電容會緩慢放電,電容 上的電荷會逐漸
標簽: 存儲器
上傳時間: 2014-01-10
上傳用戶:18752787361
Virtex™-5 器件包括基于第二代高級硅片組合模塊 (ASMBL™) 列架構的多平臺 FPGA 系列。集成了為獲得最佳性能、更高集成度和更低功耗設計的若干新型架構元件,Virtex-5 器件達到了比以往更高的系統性能水平。
上傳時間: 2013-10-29
上傳用戶:long14578
無線感測器已變得越來越普及,短期內其開發和部署數量將急遽增加。而無線通訊技術的突飛猛進,也使得智慧型網路中的無線感測器能夠緊密互連。此外,系統單晶片(SoC)的密度不斷提高,讓各式各樣的多功能、小尺寸無線感測器系統相繼問市。儘管如此,工程師仍面臨一個重大的挑戰:即電源消耗。
上傳時間: 2013-10-30
上傳用戶:wojiaohs
隔離放大器IC___產品特點: 1.精度等級:0.1級、0.2級、0.5級。 2.0-2.5V/0-5V/0-10V/1-5V等標準電壓信號、0-1mA/ 0-10mA/0-20mA/4-20mA等標準電流信號輸入, 輸出標準的隔離信號。 3.輸出電壓信號:0-5V/0-10V/1-5V、輸出電流信號:0-10mA/0-20mA/4-20mA,具有高帶載能力。 4.全量程范圍內極高的線性度(非線性度<0.2%) 隔離放大器IC___應用舉例: 1.直流電流/電壓信號的隔離、轉換及放大 2.模擬信號地線干擾抑制及數據隔離采集 3.信號遠程無失傳輸 4.電力監控、醫療設備隔離安全柵 5.一進一出、一進兩出、兩進兩出模擬信號轉換 隔離放大器IC___產品型號及定義 連續隔離電壓值: 3000VDC 電源電壓輸入范圍: ±10%Vin 焊接溫度(10秒): +300℃ AOT -U(A)□ -P□- O□ 輸入電壓或電流信號值 U1:0-5V A1:0—1mA U2:0-10V A2: 0—10mA U3:0-75mV A3: 0—20mA U4:0-2.5V A4: 4—20mA U5:0-±5V A5:0—±1mA U6:0-±10V A6: 0—±10mA U7:0-±100mV A7: 0—±20mA U8:用戶自定義 A8: 用戶自定義 隔離放大器IC___輔助電源 P1:DC24V P2:DC12V P3:DC5V P4:DC15V P5:用戶自定義 隔離放大器IC____輸出信號 O1: 4-20mA O2: 0-20mA O4: 0-5V O5: 0-10V O6: 1-5V O7: 0-±5V O8: 0-±10V O9: -20-+20mA O10: 用戶自定義 隔離放大器IC___產品特征: 奧通 光耦隔離系列產品是通過模擬信號(線性光耦)隔離放大,轉換按比列輸出的一種信號隔離放大器,產品抗干擾強。廣泛應用在電力、工業控制轉換,儀器儀表、遠程監控、醫療設備、工業自控等需要電量隔離測控的行業。光耦隔離系列產品屬于雙隔離產品,輸入信號與輔助電源隔離,輔助電源與輸出隔離 ,隔離電壓3000VDC 隔離放大器IC___產品說明: 1.SIP12腳符合UL94V-0標準阻燃封裝 2.只需外接電位器既可調節零點和增益 3.電源、信號、輸入輸出 3000VDC隔離 4.工業級溫度范圍:-45~+85度 5.有較強的抗EMC電磁干擾和高頻信號空間干擾特性 6.大小: 32.0mm*13.8mm*8.8mm
上傳時間: 2014-01-04
上傳用戶:wangzeng
特點 顯示值范圍-199999至999999位數 最高輸入頻率 5KHz 90度相位差加減算具有提高解析度4倍功能 輸入脈波具有預設刻度功能 定位基準值可任意設定 比較磁滯值可任意設定 數位化指撥設定操作簡易 3組繼電器輸出功能 2:主要規格 脈波輸入型式: Jump-pin selectable current sourcing(NPN) or current sinking (PNP) 脈波觸發電位: HI bias (CMOS) (VIH=7.5V, VIL=5.5V) LO bias (TTL) (VIH=3.7V, VIL=2.0V) 最高輸入頻率: <5KHz 定位置范圍: -199999 to 999999 second adjustabl 比較磁滯范圍: 0 to 9999 adjustable 繼電器容量: AC 250V-5A, DC 30V-7A 顯示值范圍: -199999 to 999999 顯示幕: Red high efficiency LEDs high 9.2mm (.36") 參數設定方式: Touch switches 感應器電源: 12VDC +/-3%(<60mA) 記憶方式: Non-volatile E2PROM memory 絕緣耐壓能力: 2KVac/1 min. (input/output/power) 1600Vdc (input/output) 使用環境條件: 0-50℃(20 to 90% RH non-condensed) 存放環境條件: 0-70℃(20 to 90% RH non-condensed) CE認證: EN 55022:1998/A1:2000 Class A EN 61000-3-2:2000 EN 61000-3-3:1995/A1:2001 EN 55024:1998/A1:2001
上傳時間: 2014-12-03
上傳用戶:xjz632