VHDL語言設計中并行語句與串行語句包含哪些語句
通常說并行語句和順序語句,不說串行語句的!
VHDL并行語句7個:
1. 進程語句
2. 塊語句
3. 并行信號賦值語句(兩種形式)
4. 并行過程調用語句
5. 并行斷言語句
6. 元件例化語句
7. 生成語句
VHDL順序語句13個:
1. WAIT語句
2. 變量賦值語句
3. 信號賦值語句
4. IF 語句
5. CASE語句
6. NULL語句(空語句)
7. LOOP語句
8. NEXT 語句
9. EXIT 語句
10. 過程調用語句
11. RETURN 語句
12. 斷言語句
13. REPORT語句
其它語句一般稱為聲明語句,或者子句。
VB語句,如果串口打開失敗的語句怎么寫
MSComm1 僅僅 是 控件的 實例!無需 2 個 控件,除非同時使用 2 個!一個即可一般 用 On Error 語句 處理!看看 MSDN祝你順利以下 摘自 MSDN---------------------On Error 語句啟動一個錯誤處理程序并指定該子程序在一個過程中的位置;也可用來禁止一個錯誤處理程序。
語法On Error GoTo line On Error Resume NextOn Error GoTo 0On Error 語句的語法可以具有以下任何一種形式:語句 描述 On Error GoTo line 啟動錯誤處理程序,且該例程從必要的 line 參數中指定的 line 開始。line 參數可以是任何行標簽或行號。
如果發生一個運行時錯誤,則控件會跳到 line,激活錯誤處理程序。指定的 line 必須在一個過程中,這個過程與 On Error 語句相同; 否則會發生編譯時間錯誤。
On Error Resume Next 說明當一個運行時錯誤發生時,控件轉到緊接著發生錯誤的語句之后的語句,并在此繼續運行。訪問對象時要使用這種形式而不使用 On Error GoTo。
On Error GoTo 0 禁止當前過程中任何已啟動的錯誤處理程序。 說明如果不使用 On Error 語句,則任何運行時錯誤都是致命的;也就是說,結果會導致顯示錯誤信息并中止運行。
一個“允許的”錯誤處理程序是由 On Error 語句打開的一個處理程序;一個“活動的”錯誤處理程序是處理錯誤的過程中允許的錯誤處理程序。如果在錯誤處理程序處于活動狀態時(在發生錯誤和執行 Resume、Exit Sub、Exit Function 或 Exit Property 語句之間這段時間)又發生錯誤,則當前過程的錯誤處理程序將無法處理這個錯誤。
控件返回調用的過程。如果調用過程有一個已啟動的錯誤處理程序,則激活錯誤處理程序來處理該錯誤。
如果調用過程的錯誤處理程序也是活動的,則控件將再往回傳到前面的調用過程,這樣一直進行下去,直到找到一個被允許的但不是活動的錯誤處理程序為止。如果沒有找到被允許而且不活動的錯誤處理程序,那么在錯誤實際發生的地方,錯誤本身是嚴重的。
錯誤處理程序每次將控件返回調用過程時,該過程就成為當前過程。在任何過程中,一旦錯誤處理程序處理了錯誤,在當前過程中就會從 Resume 語句指定的位置恢復運行。
注意 一個錯誤處理程序不是 Sub 過程或 Function 過程。它是一段用行標簽或行號標記的代碼。
錯誤處理程序依靠 Err 對象的 Number 屬性中的值來確定錯誤發生的原因。在其它任何錯誤發生之前,或在調用一個可能會導致錯誤發生的過程之前,錯誤處理程序應該先測試或存儲 Err 對象中相關的屬性值。
Err 對象中的屬性值只反映最近發生的錯誤。*ption 中包含有與 * 相關聯的錯誤信息。
On Error Resume Next 會使程序從緊隨產生錯誤的語句之后的語句繼續執行,或是從緊隨最近一次調用含有 On Error Resume Next 語句的過程的語句繼續運行。這個語句可以置運行時錯誤于不顧,使程序得以繼續執行。
可以將錯誤處理程序放置在錯誤發生的地方,而不必將控件傳輸到過程中的其它位置。在調用另一個過程時,On Error Resume Next 語句成為非活動的,所以,如果希望在例程中進行嵌入錯誤處理,則應在每一個調用的例程中執行 On Error Resume Next 語句。
注意 當處理在訪問其它對象期間產生的錯誤時,與其使用 On Error GoTo 指令,不如使用 On Error Resume Next。每次和對象打交道,在不知道用代碼訪問哪個對象時,檢查一下 Err 都會打消這種疑慮。
可以確定是哪個對象產生錯誤(* 中指定的對象),也可以確定是哪個對象將錯誤代碼放在 * 中。On Error GoTo 0 停止在當前過程中處理錯誤。
即使過程中包含編號為 0 的行,它也不把行 0 指定為處理錯誤的代碼的起點。如果沒有 On Error GoTo 0 語句,在退出過程時,錯誤處理程序會自動關閉。
在錯誤未發生的時候,為了防止錯誤處理程序代碼運行,請像在下段程序中那樣,在緊靠著錯誤處理程序的前面寫入 Exit Sub、Exit Function 或 Exit Property 語句。Sub InitializeMatrix(Var1, Var2, Var3, Var4) On Error GoTo ErrorHandler . . . Exit SubErrorHandler: . . . Resume NextEnd Sub此處,錯誤處理程序代碼在 Exit Sub 語句之后,而在 End Sub 語句之前,從而與過程中的流程分開。
錯誤處理程序代碼可以在程序中的任何地方寫入。當對象作為文件運行時,對象中未捕獲的錯誤都被返回控制應用程序。
在開發環境中,如果設置了正確選項,未捕獲的錯誤只返回控制應用程序。請參考主應用程序的文檔的有關描述,從而得知,在調試時應該設置哪些選項、如何設置這些選項以及主機能否建立類。
如果建立一個訪問其它對象的對象,則應該著手處理從那些對象返回的未處理錯誤。如果無法處理這種錯誤,請將 * 中的錯誤代碼當作自己的一個錯誤,然后將錯誤回傳給對象的調用者。
應該將錯誤代碼添加到 vbObjectError 常數上來指定這個錯誤。舉例來說,如果錯誤代碼為 1052,則使用如下方法指定錯誤:* = vbObjectError + 1052注意 調用動態鏈接庫 (DLL) 期間產生的系統錯誤不會產生例外情況,也不會被 Visual Basic 的錯誤捕獲操作所捕獲。
當調用 DLL 函數時,應該(根據 API 的詳細說明)檢查。
串行數據輸出語句應寫在查詢程序段中還是中斷服務程序中
您好,我猜你問的是PC的,不是單片機
一、匯編語言的中斷分以下幾種:
*中斷,這是固化到BIOS程序中的,每次開機BIOS會自動加載到指定內存
2.186下的DOS中斷,在DOS系統被加載后,系統會延用BIOS的中斷向量,并向里面添加一些新的向量,這些功能便是DOS系統自帶的中斷服務程序
3.286及以上的系統中斷,PC會進入保護模式,在OS被加載后,中斷由IDT控制,這一機制類似于中斷向量表,只不過中斷向量換成了選擇子。這樣的中斷機制對不同型號的CPU有略微的差別,這里不細說了,我自己也沒全弄明白。
二、中斷實現的方式(8086下的普通中斷)
聽說過“優先級編碼器”沒?——如果同時有兩個信號被接收,會指定某一個信號的優先級高,先執行它。中斷就是類似的處理方法。
當CPU獲取到某一高操作優先級的信號時(比如時鐘,每固定時間就會觸發一次;比如鍵盤響應,用戶希望通過Ctrl+C來退出任何正在執行的DOS程序),CPU會將當前正在執行的程序掛起來,轉而去處理該信號(類似于Call,但略有不同,你看的書應該會講到)。
處理中斷時,系統會將其解釋為一個標號,比如int 9h、int 21h等等。這個標號是一個序號,在內存某處存放著連續的一個表格,這個標號便是表格中的“行號”,只不過,每一行是兩列,包括了該中斷的處理程序的段基址和偏移量。中斷向量表是從0000:0000開始的,每4字節為一個表項。中斷標號x4就是對應的中斷向量表項所存的地址,高地址是基地址,低地址是偏移。
這么說不知道你懂不懂。
反正總結一下你的問題吧,中斷服務程序是加載到內存中的,它在加載前可能是存在BIOS芯片上,也可能是存在硬盤里的;中斷向量表里只能寫上中斷處理程序的入口地址,要知道每個表項只有4字節;具體的中斷服務程序,我不信你學匯編的書上不講,我大概講一下:CPU的INTR引腳獲得了中斷信號,得到了標號,比方說是5號,中斷向量表項為0000:000A,讀取這個內存,得到中斷程序入口地址比方說是AAAA:BBBB,那么它會將當前的CS/IP、Flags寄存器入棧,然后轉到AAAA:BBBB處去執行一直到iret指令返回原任務(或許該中斷結束了這個任務,就不會返回了)。
至于保護模式的中斷,相信你暫時還沒遇到。到后面還有操控8259A芯片來實現高級中斷的,這個就不是一般需要學的了。
用串口2通過TC35發送數據的串口語句怎么配置
//pclk2:PCLK2時鐘頻率(Mhz)//bound:波特率//CHECK OK//091209void uart_init(u32 pclk2,u32 bound){float temp;u16 mantissa;u16 fraction;temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIVmantissa=temp; //得到整數部分fraction=(temp-mantissa)*16; //得到小數部分mantissa<<=4;mantissa+=fraction;RCC->APB2ENR|=1<<2; //使能PORTA口時鐘RCC->APB2ENR|=1<<14; //使能串口時鐘GPIOA->CRH&=0XFFFFF00F;GPIOA->CRH|=0X000008B0;//IO狀態設置RCC->APB2RSTR|=1<<14; //復位串口1RCC->APB2RSTR&=~(1<<14);//停止復位//波特率設置USART1->BRR=mantissa; // 波特率設置USART1->CR1|=0X200C; //1位停止,無校驗位.//#ifdef EN_USART1_RX //如果使能了接收//使能接收中斷USART1->CR1|=0<<8; //PE中斷使能USART1->CR1|=1<<5; //接收緩沖區非空中斷使能MY_NVIC_Init(3,3,USART1_IRQChannel,2);//組2,最低優先級 //#endif}。
在串口通信中,要使用奇校驗,請教一下語句
串口是計算機上一種非常通用設備通信的協議。大多數計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設備通用的通信協議;很多GPIB兼容的設備也帶有RS-232口。同時,串口通信協議也可以用于獲取遠程采集設備的數據。
串口通信的概念非常簡單,串口按位(bit)發送和接收字節。盡管比按字節(byte)的并行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。它很簡單并且能夠實現遠距離通信。比如IEEE488定義并行通行狀態時,規定設備線總常不得超過20米,并且任意兩個設備間的長度不得超過2米;而對于串口而言,長度可達1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。其他線用于握手,但是不是必須的。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個進行通行的端口,這些參數必須匹配:
a,波特率:這是一個衡量通信速度的參數。它表示每秒鐘傳送的bit的個數。例如300波特表示每秒鐘發送300個bit。當我們提到時鐘周期時,我們就是指波特率例如如果協議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數據線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。
b,數據位:這是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據不會是8位的,標準的值是5、7和8位。如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數據使用簡單的文本(標準 ASCII碼),那么每個數據包使用7位數據。每個包是指一個字節,包括開始/停止位,數據位和奇偶校驗位。由于實際數據位取決于通信協議的選取,術語“包”指任何通信的情況。
c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率同時也越慢。
d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。例如,如果數據是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。
RS-232(ANSI/EIA-232標準)是IBM-PC及其兼容機上的串行連接標準。可用于許多用途,比如連接鼠標、打印機或者Modem,同時也可以接工業儀器儀表。用于驅動和連線的改進,實際應用中RS-232的傳輸長度或者速度常常超過標準的值。RS-232只限于PC串口和設備間點對點的通信。RS-232串口通信最遠距離是50英尺。