分析串口通信特殊寄存器如何配置
1. 要設置51系列單片機串口工作於所需工作方式,應是對哪個專用寄存器進行操作
控制51單片機串列口的控制寄存器共有兩個:特殊功能寄存器SCON和PCON。下面對這兩個寄存器各個位的功能予以詳細介紹。
1.串列口控制寄存器SCON
串列口控制寄存器SCON的格式如表4.4:
SM0、SM1:串列口4種工作方式的選擇位。
SM2:允許方式2和3的多機通訊控制位。在方式2或3中,如果SM2置為l,則接收到的第9位數據(RB8)為0時不激活RI。在方式1時,如果SM2=1,則只有收到有效的停止位時才會激活RI。在方式0時,SM2必須清0。
REN:允許串列接收位。由軟體置1或清0。REN=l允許接收,REN=O則禁止接收。
TB8:是工作在方式2和3時,要發送的第9位數據。需要時由軟體置1或清0。在許多的通訊協議中該位是奇偶校驗垃。在多機通訊中用來表示是地址幀或是數據幀,TB8=1為地址幀,TB8=0為數據幀。
RB8:當工作在方式2和3時,為接收到的第9位數據。在多機通訊中為地址幀或數據幀的標識位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
T1:發送中斷標志位,在方式O串列發送第8位數據結束時由硬體置1,或在其它方式串列發送停止位的開始時置1。TI=1時,申請中斷,CPU響應中斷後,發送下一幀數據。TI必須由軟體清0。 表4.4 串列口控制寄存器SCON的格式
RI:接收中斷標志位,在方式O串列接收到第8位數據結束時,由硬體置1。在其它方式中,串列接收到停止位的中間點時置1。RI=1時申請中斷,要求CPU取走數據。但在方式1中,SM2=1時,若未收到有效的停止位,不會對RI置1。RI必須由軟體清0。
SCON的所有位都能由軟體清0。
2.特殊功能寄存器PCON
特殊功能寄存器PCON沒有位定址功能。PCON的格式如表4.5:
表4.5 特殊功能寄存器PCON的格式
D7 D6 D5 D4 D3 D2 D1 D0
SMON × × × × × × ×
SMOD:波特率系數選擇位。
3.串列口工作方式
方式0:8位移位寄存器輸入/輸出方式。在擴展I/O埠外接移位寄存器時常用,其波特率固定為Fosc/12, Fosc為時鍾頻率;
方式1:10位非同步通信方式。其中1個起始位,8個數據位和一個停止位,其波特率計算公式為:波特率=2的SMOD次方/32*(定時器T1的溢出率);
方式2,3:11位非同步通信方式,其中一個起始位,8個數據位,1個附加的第9位和1個停止位,方式2和方式3僅只有波特率不同,方式2的波特率=2的SMOD次方/64*Fosc,方式3的波特率=2的SMOD次方/32*(定時器T1的溢出率)。
此次系統串列口工作方式是:01。
SM0、SM1兩位為01時,串列口以方式1上作,方式1時串列口被控制為波特率可變的8位非同步通訊介面。方式1的波特彩由下式確定:
方式l波特率=2的(SMOD-5)次方*定時器1的溢出率
式中SMOD為PCON寄存器的最高位的值(0或1)。
因為串列口用於連接列印機,所以這里只介紹串列口輸出情況。
串列口以方式1輸出時,數據位由TXD端輸出,發送—幀信息為10位,1位起始位0,8位數據位(先低位)和1位停止位1,CPU執行一條數據寫發送緩沖器SBUF的指令,就啟動發送。當發送完數據位,置「1」中斷標志TI。
2. 單片機串口通信需要用哪些寄存器
51單片機串口工作時,涉及到以下三個寄存器:
1.SCON:串列口工作寄存器
2.IE:中斷允許寄存器(如果用到中斷方式的話)
3.PCON:其中最高位SMOD與波特率有關
另外還有定時器T1在方式1,方式3時需要用到,以改變波特率。
3. 用STC12C2052AD的單片機進行串口通信,波特率為115200HZ,那麼怎樣設置相關寄存器 請大師指教,謝謝!
void UartInit(void) //[email protected]
{
SCON = 0x50; //8位數據,可變波特率
AUXR |= 0x40; //定時器1時鍾為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0F; //設定定時器1為16位自動重裝方式
TL1 = 0xE8; //設定定時初值
TH1 = 0xFF; //設定定時初值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}
或者
UARTINIT: ;[email protected]
MOV SCON,#50H ;8位數據,可變波特率
ORL AUXR,#40H ;定時器1時鍾為Fosc,即1T
ANL AUXR,#0FEH ;串口1選擇定時器1為波特率發生器
ANL TMOD,#0FH ;設定定時器1為16位自動重裝方式
MOV TL1,#0E8H ;設定定時初值
MOV TH1,#0FFH ;設定定時初值
CLR ET1 ;禁止定時器1中斷
SETB TR1 ;啟動定時器1
RET
4. 串口通信一般對哪些寄存器操作
不 都如此吧?
電腦串口通信 用現成的控制項,如 mscomm 或者 serialport 等
幾乎不涉及寄存器
但 單片機 串口通信 就 要設置 相關的 寄存器
所以要針對 具體的 情況來說
5. DMA寄存器怎樣配置
樓上真有意思,把說明書傳真?哪個商家願意這么干?補寄都不一定願意呢。
你說的是哪兩個液晶的數字吧?
這東西說明書也沒有說的,是狀態代碼。
1、特殊代碼「00」和「FF」及其它起始碼有三種情況出現:
①已由一系列其它代碼之後再出現:「00」或「FF」,則主板OK。
②如果將CMOS中設置無錯誤,則不嚴重的故障不會影響BIOS自檢的繼續,而最終出現「00」或「FF」。
③一開機就出現「00」或「FF」或其它起始代碼並且不變化則為板沒有運行起來。
2、本表是按代碼值從小到大排序,卡中出碼順序不定。
3、未定義的代碼表中未列出。
4、對於不同BIOS(常用的AMI、Award、Phoenix)用同一代碼所代表的意義有所不同,因此應弄清您所檢測的電腦是屬於哪一種類型的BIOS,您可查問你的電腦使用手冊,或從主板上的BIOS晶元上直接查看,也可以在啟動屏幕時直接看到。
5、有少數主板的PCI槽只有前一部分代碼出現,但ISA槽則有完整自檢代碼輸出。且目前已發現有極個別原裝機主板的ISA槽無代碼輸出,而PCI槽則有完整代碼輸出,故建議您在查看代碼不成功時,將本雙槽卡換到另一種插槽試一下。另外,同一塊主板的不同PCI槽,有的槽有完整<代碼送出,如DELL810主板只有靠近CPU的一個PCI槽有完整的代碼顯示,一直變化到「00」或「FF」,而其它槽走到「38」則不繼續變化。
6、復位信號所需時間ISA與PCI不一定同步,故有可能ISA開始出代碼,但PCI的復位燈還不熄,故PCI代碼停在起始碼上。
代碼 Award BIOS Ami BIOS Phoenix BIOS或Tandy 3000 BIOS
00 . 已顯示系統的配置;即將控制INI19引導裝入。 .
01 處理器測試1,處理器狀態核實,如果測試失敗,循環是無限的。 處理器寄存器的測試即將開始,不可屏蔽中斷即將停用。 CPU寄存器測試正在進行或者失敗。
02 確定診斷的類型(正常或者製造)。如果鍵盤緩沖器含有數據就會失效。 停用不可屏蔽中斷;通過延遲開始。 CMOS寫入/讀出正在進行或者失靈。
03 清除8042鍵盤控制器,發出TESTKBRD命令(AAH) 通電延遲已完成。 ROM BIOS檢查部件正在進行或失靈。
04 使8042鍵盤控制器復位,核實TESTKBRD。 鍵盤控制器軟復位/通電測試。 可編程間隔計時器的測試正在進行或失靈。
05 如果不斷重復製造測試1至5,可獲得8042控制狀態。 已確定軟復位/通電;即將啟動ROM。 DMA初如准備正在進行或者失靈。
06 使電路片作初始准備,停用視頻、奇偶性、DMA電路片,以及清除DMA電路片,所有頁面寄存器和CMOS停機位元組。 已啟動ROM計算ROM BIOS檢查總和,以及檢查鍵盤緩沖器是否清除。 DMA初始頁面寄存器讀/寫測試正在進行或失靈。
07 處理器測試2,核實CPU寄存器的工作。 ROM BIOS檢查總和正常,鍵盤緩沖器已清除,向鍵盤發出BAT(基本保證測試)命令。 .
08 使CMOS計時器作初始准備,正常的更新計時器的循環。 已向鍵盤發出BAT命令,即將寫入BAT命令。 RAM更新檢驗正在進行或失靈。
09 EPROM檢查總和且必須等於零才通過。 核實鍵盤的基本保證測試,接著核實鍵盤命令位元組。 第一個64K RAM測試正在進行。
0A 使視頻介面作初始准備。 發出鍵盤命令位元組代碼,即將寫入命令位元組數據。 第一個64K RAM晶元或數據線失靈,移位。
0B 測試8254通道0。 寫入鍵盤控制器命令位元組,即將發出引腳23和24的封鎖/解鎖命令。 第一個64K RAM奇/偶邏輯失靈。
0C 測試8254通道1。 鍵盤控制器引腳23、24已封鎖/解鎖;已發出NOP命令。 第一個64K RAN的地址線故障。
0D 1、檢查CPU速度是否與系統時鍾相匹配。2、檢查控制晶元已編程值是否符合初設置。3、視頻通道測試,如果失敗,則鳴喇叭。 已處理NOP命令;接著測試CMOS停開寄存器。 第一個64K RAM的奇偶性失靈
0E 測試CMOS停機位元組。 CMOS停開寄存器讀/寫測試;將計算CMOS檢查總和。 初始化輸入/輸出埠地址。
0F 測試擴展的CMOS。 已計算CMOS檢查總和寫入診斷位元組;CMOS開始初始准備。 .
10 測試DMA通道0。 CMOS已作初始准備,CMOS狀態寄存器即將為日期和時間作初始准備。 第一個64K RAM第0位故障。
11 測試DMA通道1。 CMOS狀態寄存器已作初始准備,即將停用DMA和中斷控制器。 第一個64DK RAM第1位故障。
12 測試DMA頁面寄存器。 停用DMA控制器1以及中斷控制器1和2;即將視頻顯示器並使埠B作初始准備。 第一個64DK RAM第2位故障。
13 測試8741鍵盤控制器介面。 視頻顯示器已停用,埠B已作初始准備;即將開始電路片初始化/存儲器自動檢測。 第一個64DK RAM第3位故障。
14 測試存儲器更新觸發電路。 電路片初始化/存儲器處自動檢測結束;8254計時器測試即將開始。 第一個64DK RAM第4位故障。
15 測試開頭64K的系統存儲器。 第2通道計時器測試了一半;8254第2通道計時器即將完成測試。 第一個64DK RAM第5位故障。
16 建立8259所用的中斷矢量表。 第2通道計時器測試結束;8254第1通道計時器即將完成測試。 第一個64DK RAM第6位故障。
17 調准視頻輸入/輸出工作,若裝有視頻BIOS則啟用。 第1通道計時器測試結束;8254第0通道計時器即將完成測試。 第一個64DK RAM第7位故障。
18 測試視頻存儲器,如果安裝選用的視頻BIOS通過,由可繞過。 第0通道計時器測試結束;即將開始更新存儲器。 第一個64DK RAM第8位故障。
19 測試第1通道的中斷控制器(8259)屏蔽位。 已開始更新存儲器,接著將完成存儲器的更新。 第一個64DK RAM第9位故障。
1A 測試第2通道的中斷控制器(8259)屏蔽位。 正在觸發存儲器更新線路,即將檢查15微秒通/斷時間。 第一個64DK RAM第10位故障。
1B 測試CMOS電池電平。 完成存儲器更新時間30微秒測試;即將開始基本的64K存儲器測試。 第一個64DK RAM第11位故障。
1C 測試CMOS檢查總和。 . 第一個64DK RAM第12位故障。
1D 調定CMOS配置。 . 第一個64DK RAM第13位故障。
1E 測定系統存儲器的大小,並且把它和CMOS值比較。 . 第一個64DK RAM第14位故障。
1F 測試64K存儲器至最高640K。 . 第一個64DK RAM第15位故障。
20 測量固定的8259中斷位。 開始基本的64K存儲器測試;即將測試地址線。 從屬DMA寄存器測試正在進行或失靈。
21 維持不可屏蔽中斷(NMI)位(奇偶性或輸入/輸出通道的檢查)。 通過地址線測試;即將觸發奇偶性。 主DMA寄存器測試正在進行或失靈。
22 測試8259的中斷功能。 結束觸發奇偶性;將開始串列數據讀/寫測試。 主中斷屏蔽寄存器測試正在進行或失靈。
23 測試保護方式8086虛擬方式和8086頁面方式。 基本的64K串列數據讀/寫測試正常;即將開始中斷矢量初始化之前的任何調節。 從屬中斷屏蔽存器測試正在進行或失靈。
24 測定1MB以上的擴展存儲器。 矢量初始化之前的任何調節完成,即將開始中斷矢量的初始准備。 設置ES段地址寄存器注冊表到內存高端。
25 測試除頭一個64K之後的所有存儲器。 完成中斷矢量初始准備;將為旋轉式斷續開始讀出8042的輸入/輸出埠。 裝入中斷矢量正在進行或失靈。
26 測試保護方式的例外情況。 讀出8042的輸入/輸出埠;即將為旋轉式斷續開始使全局數據作初始准備。 開啟A20地址線;使之參入定址。
27 確定超高速緩沖存儲器的控制或屏蔽RAM。 全1數據初始准備結束;接著將進行中斷矢量之後的任何初始准備。 鍵盤控制器測試正在進行或失靈。
28 確定超高速緩沖存儲器的控制或者特別的8042鍵盤控制器。 完成中斷矢量之後的初始准備;即將調定單色方式。 CMOS電源故障/檢查總和計算正在進行。
29 . 已調定單色方式,即將調定彩色方式。 CMOS配置有效性的檢查正在進行。
2A 使鍵盤控制器作初始准備。 已調定彩色方式,即將進行ROM測試前的觸發奇偶性。 置空64K基本內存。
2B 使磁碟驅動器和控制器作初始准備。 觸發奇偶性結束;即將控制任選的視頻ROM檢查前所需的任何調節。 屏幕存儲器測試正在進行或失靈。
2C 檢查串列埠,並使之作初始准備。 完成視頻ROM控制之前的處理;即將查看任選的視頻ROM並加以控制。 屏幕初始准備正在進行或失靈。
2D 檢測並行埠,並使之作初始准備。 已完成任選的視頻ROM控制,即將進行視頻ROM回復控制之後任何其他處理的控制。 屏幕回掃測試正在進行或失靈。
2E 使硬磁碟驅動器和控制器作初始准備。 從視頻ROM控制之後的處理復原;如果沒有發現EGA/VGA就要進行顯示器存儲器讀/寫測試。 檢測視頻ROM正在進行。
2F 檢測數學協處理器,並使之作初始准備。 沒發現EGA/VGA;即將開始顯示器存儲器讀/寫測試。 .
30 建立基本內存和擴展內存。 通過顯示器存儲器讀/寫測試;即將進行掃描檢查。 認為屏幕是可以工作的。
31 檢測從C800:0至EFFF:0的選用ROM,並使之作初始准備。 顯示器存儲器讀/寫測試或掃描檢查失敗,即將進行另一種顯示器存儲器讀/寫測試。 單色監視器是可以工作的。
32 對主板上COM/LTP/FDD/聲音設備等I/O晶元編程使之適合設置值。 通過另一種顯示器存儲器讀/寫測試;卻將進行另一種顯示器掃描檢查。 彩色監視器(40列)是可以工作的。
33 . 視頻顯示器檢查結束;將開始利用調節開關和實際插卡檢驗顯示器的關型。 彩色監視器(80列)是可以工作的。
34 . 已檢驗顯示器適配器;接著將調定顯示方式。 計時器滴答聲中斷測試正在進行或失靈。
35 . 完成調定顯示方式;即將檢查BIOS ROM的數據區。 停機測試正在進行或失靈。
36 . 已檢查BIOS ROM數據區;即將調定通電信息的游標。 門電路中A-20失靈。
37 . 識別通電信息的游標調定已完成;即將顯示通電信息。 保護方式中的意外中斷。
38 . 完成顯示通電信息;即將讀出新的游標位置。 RAM測試正在進行或者地址故障>FFFFH。
39 . 已讀出保存游標位置,即將顯示引用信息串。 .
3A . 引用信息串顯示結束;即將顯示發現信息。 間隔計時器通道2測試或失靈。
3B 用OPTI電路片(只是486)使輔助超高速緩沖存儲器作初始准備。 已顯示發現<ESC>信息;虛擬方式,存儲器測試即將開始。 按日計算的日歷時鍾測試正在進行或失靈。
3C 建立允許進入CMOS設置的標志。 . 串列埠測試正在進行或失靈。
3D 初始化鍵盤/PS2滑鼠/PNP設備及總內存節點。 . 並行埠測試正在進行或失靈。
3E 嘗試打開L2高速緩存。 . 數學協處理器測試正在進行或失靈。
40 . 已開始准備虛擬方式的測試;即將從視頻存儲器來檢驗。 調整CPU速度,使之與外圍時鍾精確匹配。
41 中斷已打開,將初始化數據以便於0:0檢測內存變換(中斷控制器或內存不良) 從視頻存儲器檢驗之後復原;即將准備描述符表。 系統插件板選擇失靈。
42 顯示窗口進入SETUP。 描述符表已准備好;即將進行虛擬方式作存儲器測試。 擴展CMOS RAM故障。
43 若是即插即用BIOS,則串口、並口初始化。 進入虛擬方式;即將為診斷方式實現中斷。 .
44 . 已實現中斷(如已接通診斷開關;即將使數據作初始准備以檢查存儲器在0:0返轉。) BIOS中斷進行初始化。
45 初始化數學協處理器。 數據已作初始准備;即將檢查存儲器在0:0返轉以及找出系統存儲器的規模。 .
46 . 測試存儲器已返回;存儲器大小計算完畢,即將寫入頁面來測試存儲器。 檢查只讀存儲器ROM版本。
47 . 即將在擴展的存儲器試寫頁面;即將基本640K存儲器寫入頁面。 .
48 . 已將基本存儲器寫入頁面;即將確定1MB以上的存儲器。 視頻檢查,CMOS重新配置。
49 . 找出1BM以下的存儲器並檢驗;即將確定1MB以上的存儲器。 .
4A . 找出1MB以上的存儲器並檢驗;即將檢查BIOS ROM數據區。 進行視頻的初始化。
4B . BIOS ROM數據區的檢驗結束,即將檢查<ESC>和為軟復位清除1MB以上的存儲器。 .
4C . 清除1MB以上的存儲器(軟復位)即將清除1MB以上的存儲器. 屏蔽視頻BIOS ROM。.
4D 已清除1MB以上的存儲器(軟復位);將保存存儲器的大小。 .
4E 若檢測到有錯誤;在顯示器上顯示錯誤信息,並等待客戶按<F1>鍵繼續。 開始存儲器的測試:(無軟復位);即將顯示第一個64K存儲器的測試。 顯示版權信息。
4F 讀寫軟、硬碟數據,進行DOS引導。 開始顯示存儲器的大小,正在測試存儲器將使之更新;將進行串列和隨機的存儲器測試。 .
50 將當前BIOS監時區內的CMOS值存到CMOS中。 完成1MB以下的存儲器測試;即將高速存儲器的大小以便再定位和掩蔽。 將CPU類型和速度送到屏幕。
51 . 測試1MB以上的存儲器。 .
52 所有ISA只讀存儲器ROM進行初始化,最終給PCI分配IRQ號等初始化工作。 已完成1MB以上的存儲器測試;即將准備回到實址方式。 進入鍵盤檢測。
53 如果不是即插即用BIOS,則初始化串口、並口和設置時種值。 保存CPU寄存器和存儲器的大小,將進入實址方式。 .
54 . 成功地開啟實址方式;即將復原准備停機時保存的寄存器。 掃描「打擊鍵」
55 . 寄存器已復原,將停用門電路A-20的地址線。 .
56 . 成功地停用A-20的地址線;即將檢查BIOS ROM數據區。 鍵盤測試結束。
57 . BIOS ROM數據區檢查了一半;繼續進行。 .
58 . BIOS ROM的數據區檢查結束;將清除發現<ESC>信息。 非設置中斷測試。
59 . 已清除<ESC>信息;信息已顯示;即將開始DMA和中斷控制器的測試。 .
5A . . 顯示按「F2」鍵進行設置。
5B . . 測試基本內存地址。
5C . . 測試640K基本內存。
60 設置硬碟引導扇區病毒保護功能。 通過DMA頁面寄存器的測試;即將檢驗視頻存儲器。 測試擴展內存。
61 顯示系統配置表。 視頻存儲器檢驗結束;即將進行DMA#1基本寄存器的測試。 .
62 開始用中斷19H進行系統引導。 通過DMA#1基本寄存器的測試;即將進行DMA#2寄存器的測試。 測試擴展內存地址線。
63 . 通過DMA#2基本寄存器的測試;即將檢查BIOS ROM數據區。 .
64 . BIOS ROM數據區檢查了一半,繼續進行。 .
65 . BIOS ROM數據區檢查結束;將把DMA裝置1和2編程。 .
66 . DMA裝置1和2編程結束;即將使用59號中斷控制器作初始准備。 Cache注冊表進行優化配置。
67 . 8259初始准備已結束;即將開始鍵盤測試。 .
68 . . 使外部Cache和CPU內部Cache都工作。
6A . . 測試並顯示外部Cache值。
6C . . 顯示被屏蔽內容。
6E . . 顯示附屬配置信息。
70 . . 檢測到的錯誤代碼送到屏幕顯示。
72 . . 檢測配置有否錯誤。
74 . . 測試實時時鍾。
76 . . 掃查鍵盤錯誤。
7A . . 鎖鍵盤。
7C . . 設置硬體中斷矢量。
7E . . 測試有否安裝數學處理器。
80 . 鍵盤測試開始,正在清除和檢查有沒有鍵卡住,即將使鍵盤復原。 關閉可編程輸入/輸出設備。
81 . 找出鍵盤復原的錯誤卡住的鍵;即將發出鍵盤控制埠的測試命令。 .
82 . 鍵盤控制器介面測試結束,即將寫入命令位元組和使循環緩沖器作初始准備。 檢測和安裝固定RS232介面(串口)。
83 . 已寫入命令位元組,已完成全局數據的初始准備;即將檢查有沒有鍵鎖住。 .
84 . 已檢查有沒有鎖住的鍵,即將檢查存儲器是否與CMOS失配。 檢測和安裝固定並行口。
85 . 已檢查存儲器的大小;即將顯示軟錯誤和口令或旁通安排。 .
86 . 已檢查口令;即將進行旁通安排前的編程。 重新打開可編程I/O設備和檢測固定I/O是否有沖突。
87 . 完成安排前的編程;將進行CMOS安排的編程。 .
88 . 從CMOS安排程序復原清除屏幕;即將進行後面的編程。 初始化BIOS數據區。
89 . 完成安排後的編程;即將顯示通電屏幕信息。 .
8A . 顯示頭一個屏幕信息。 進行擴展BIOS數據區初始化。
8B . 顯示了信息:即將屏蔽主要和視頻BIOS。 .
8C . 成功地屏蔽主要和視頻BIOS,將開始CMOS後的安排任選項的編程。 進行軟碟機控制器初始化。
8D . 已經安排任選項編程,接著檢查滑了鼠和進行初始准備。 .
8E . 檢測了滑鼠以及完成初始准備;即將把硬、軟磁碟復位。 .
8F . 軟磁碟已檢查,該磁碟將作初始准備,隨後配備軟磁碟。 .
90 . 軟磁碟配置結束;將測試硬磁碟的存在。 硬碟控制器進行初始化。
91 . 硬磁碟存在測試結束;隨後配置硬磁碟。 局部匯流排硬碟控制器初始化。
92 . 硬磁碟配置完成;即將檢查BIOS ROM的數據區。 跳轉到用戶路徑2。
93 . BIOS ROM的數據區已檢查一半;繼續進行。 .
94 . BIOS ROM的數據區檢查完畢,即調定基本和擴展存儲器的大小。 關閉A-20地址線。
95 . 因應滑鼠和硬磁碟47型支持而調節好存儲器的大小;即將檢驗顯示存儲器。 .
96 . 檢驗顯示存儲器後復原;即將進行C800:0任選ROM控制之前的初始准備。 「ES段」注冊表清除。
97 . C800:0任選ROM控制之前的任何初始准備結束,接著進行任選ROM的檢查及控制。 .
98 . 任選ROM的控制完成;即將進行任選ROM回復控制之後所需的任何處理。 查找ROM選擇。
99 . 任選ROM測試之後所需的任何初始准備結束;即將建立計時器的數據區或列印機基本地址。 .
9A . 調定計時器和列印機基本地址後的返回操作;即調定RS-232基本地址。 屏蔽ROM選擇。
9B . 在RS-232基本地址之後返回;即將進行協處理器測試之初始准備。 .
9C . 協處理器測試之前所需初始准備結束;接著使協處理器作初始准備。 建立電源節能管理。
9D . 協處理器作好初始准備,即將進行協處理器測試之後的任何初始准備。 .
9E . 完成協...
參考資料:http://blog.tom.com/liling1208/article/1675.html
打字不易,如滿意,望採納。
6. 誰能介紹一下單片機串口通信的知識如何應用
7.1 計算機串列通信基礎
隨著多微機系統的廣泛應用和計算機網路技術的普及,計算機的通信功能愈來愈顯得重要。計算機通信是指計算機與外部設備或計算機與計算機之間的信息交換。
通信有並行通信和串列通信兩種方式。在多微機系統以及現代測控系統中信息的交換多採用串列通信方式。
計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換 。可以分為兩大類:並行通信與串列通信。
並行通信通常是將數據位元組的各位用多條數據線同時進行傳送 。
串列通信是將數據位元組分成一位一位的形式在一條傳輸線上逐個地傳送。
7.1.1 串列通信的基本概念
一、非同步通信與同步通信
1、非同步通信
非同步通信是指通信的發送與接收設備使用各自的時鍾控制數據的發送和接收過程。為使雙方的收發協調,要求發送和接收設備的時鍾盡可能一致。
非同步通信是以字元(構成的幀)為單位進行傳輸,字元與字元之間的間隙(時間間隔)是任意的,但每個字元中的各位是以固定的時間傳送的,即字元之間不一定有「位間隔」的整數倍的關系,但同一字元內的各位之間的距離均為「位間隔」的整數倍。
非同步通信的數據格式 :
2、同步通信
同步通信時要建立發送方時鍾對接收方時鍾的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為「位間隔」的整數倍,同時傳送的字元間不留間隙,即保持位同步關系,也保持字元同步關系。發送方對接收方的同步可以通過兩種方法實現。
面向字元的同步格式 :
面向位的同步格式 :
二、串列通信的傳輸方向
1、單工
單工是指數據傳輸僅能沿一個方向,不能實現反向傳輸。
2、半雙工
半雙工是指數據傳輸可以沿兩個方向,但需要分時進行。
3、全雙工
全雙工是指數據可以同時進行雙向傳輸。
三、信號的調制與解調
利用調制器(Molator)把數字信號轉換成模擬信號,然後送到通信線路上去,再由解調器(Demolator)把從通信線路上收到的模擬信號轉換成數字信號。由於通信是雙向的,調制器和解調器合並在一個裝置中,這就是數據機MODEM。
四、串列通信的錯誤校驗
1、奇偶校驗
在發送數據時,數據位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數據中「1」的個數與校驗位「1」的個數之和應為奇數;偶校驗時,數據中「1」的個數與校驗位「1」的個數之和應為偶數。接收字元時,對「1」的個數進行校驗,若發現不一致,則說明傳輸數據過程中出現了差錯。
五、傳輸速率與傳輸距離
1、傳輸速率
比特率是每秒鍾傳輸二進制代碼的位數,單位是:位/秒(bps)。如每秒鍾傳送240個字元,而每個字元格式包含10位(1個起始位、1個停止位、8個數據位),這時的比特率為:
10位×240個/秒 = 2400 bps
2、傳輸距離與傳輸速率的關系
串列介面或終端直接傳送串列信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過1000 bps 時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到只有76m(約250英尺)。
7.1.2 串列通信介面標准
一、RS-232C介面
RS-232C是EIA(美國電子工業協會)1969年修訂RS-232C標准。RS-232C定義了數據終端設備(DTE)與數據通信設備(DCE)之間的物理介面標准。
1、機械特性
RS-232C介面規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)
2、功能特性
4、過程特性
過程特性規定了信號之間的時序關系,以便正確地接收和發送數據 。
二、RS-422A介面
三、RS-485介面
RS-485是一點對多點的通信介面,一般採用雙絞線的結構。普通的PC機一般不帶RS485介面,因此要使用RS-232C/RS-485轉換器。對於單片機可以通過晶元MAX485來完成TTL/RS-485的電平轉換。在計算機和單片機組成的RS-485通信系統中,下位機由單片機系統組成,上位機為普通的PC機,負責監視下位機的運行狀態,並對其狀態信息進行集中處理,以圖文方式顯示下位機的工作狀態以及工業現場被控設備的工作狀況。系統中各節點(包括上位機)的識別是通過設置不同的站地址來實現的。
7.2 80C51的串列口
有兩個物理上獨立的接收、發送緩沖器SBUF,它們佔用同一地址99H ;接收器是雙緩沖結構 ;發送緩沖器,因為發送時CPU是主動的,不會產生重疊錯誤。
SCON 是一個特殊功能寄存器,用以設定串列口的工作方式、接收/發送控制以及設置狀態標志:
●SM2,多機通信控制位,主要用於方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數據進入SBUF,並激活RI,進而在中斷服務中將數據從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數據進入SBUF,並激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現多機通信。
在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。
●REN,允許串列接收位。由軟體置REN=1,則啟動串列口接收數據;若軟體置REN=0,則禁止接收。
●TB8,在方式2或方式3中,是發送數據的第九位,可以用軟體規定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀/數據幀的標志位。
在方式0和方式1中,該位未用。
●RB8,在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。
PCON中只有一位SMOD與串列口工作有關 :
四、波特率的計算
在串列通信中,收發雙方對發送或接收數據的速率要有約定。通過軟體可對單片機串列口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。
串列口的四種工作方式對應三種波特率。由於輸入的移位時鍾的來源不同,所以,各種方式的波特率計算公式也不相同。
方式0的波特率 = fosc/12
方式2的波特率 =(2SMOD/64)· fosc
方式1的波特率 =(2SMOD/32)·(T1溢出率)
方式3的波特率 =(2SMOD/32)·(T1溢出率)
串列口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串列口控制和中斷控制。具體步驟如下:
確定T1的工作方式(編程TMOD寄存器);
計算T1的初值,裝載TH1、TL1;
啟動T1(編程TCON中的TR1位);
確定串列口控制(編程SCON寄存器);
串列口在中斷方式工作時,要進行中斷設置(編程IE、IP寄存器)。
以上材料引自郭天翔的51單片機教程,強烈推薦此視頻,可以上網查郭天翔《十天學會單片機》。
7. 單片機中與串列有關的特殊功能的寄存器有哪些以及其主要作用
SCON 是串口功能控制寄存器,主要是設置串口的接受使能,是不是奇偶校驗,工作第幾狀態的。
TMOD 一般也會用到,因為一般都是用T1的溢出率來作為串口的波特率的,所以計時器寄存器也有用,相應的還有TCON和T1H,T1L等
涉及到中斷還有EA,ES,EA是總中斷標志位,ES是串口中斷標志位,都開了才會有串口的接收或發送中斷。
SBUF是串口的緩存,接收就是MOV A,SBUF,發送就是MOV SBUF,A
8. 如何配置寄存器的地址
配置寄存器是一個16位的虛擬寄存器,用於指定路由器啟動的次序、中斷參數和設置控制台波特率等。該寄存器的值通常是以十六進制來表示的。
利用配置命令config register可以改變配置寄存器的值。
2. 啟動次序
配置寄存器的最後4位,指定的是,路由器在啟動的時候必須使用的啟動文件所在的位置:
<>
l 0x0001指定從ROM中啟動
l 0x0002-0x000F的值則參照在NVRAM配置文件中命令boot system指定的順序
如果配置文件中沒有boot system命令,路由器會試圖用系統Flash存儲器中的第一個文件來啟動,如果失敗,路由器就會試圖用TFTP從網路上載入一個預設文件名的文件(由boot域的值確定,如cisco2-4500),如果還失敗,系統就從啟動Flash中載入啟動。
預設的文件名是採用單詞cisco、啟動位的值以及路由器類型或處理器的名稱構成。例如某台4500上啟動欄位設為3,那麼預設的啟動文件名就是cisco3-4500。
以MC3819(CPU型號,大多採用MOTOROLA)路由器啟動順序為例,下面就是啟動的四個階段:
1. 系統自舉
2. 啟動載入(讀取配置信息和啟動Flash文件系統的最小功能)
3. 啟動系統IOS鏡像文件
4. 介面初始化/系統重啟
3. 配置寄存器
3.1. 各位的含義
通過show version命令可以看到路由器配置寄存器的值,預設情況下為0x2102。這四個數字每一個均有著重要的意義。下面從低到高進行一一的介紹。
第一個2,還原成二進制為0010,這一部分為boot field,對路由器IOS的啟動起著至關重要的作用,當boot field 的值為2-15中的任何一個時,路由器屬於正常啟動,當此值為0時,路由器啟動後會進入ROMMON模式,此值為1時,路由器進入到RXBOOT模式(2500路由器的FLASH在配置寄存器的值為2102時屬性為只讀,如果要升級IOS必須把寄存器的值修改為2101)
0,還原成二進制為0000,這四位中,起關鍵作用的是第三位(即整個寄存器裡面的BIT 7),值為0,當路由器啟動後會從NVRAM裡面的配置文件調到RAM里運行,值為1,路由器啟動後會忽略NVRAM的配置(這就是我們在進行PASSWORD RECOVERY時把寄存器的值改為2142的原因 )
1,還原成二進值為0001,我們來關注BIT8,值為0時,路由器在正常運行模式下CTRL + BREAK無效;值為1,路由器在任何運行模式下只要按下CTRL + BREAK均會立即進入ROMMON模式。
第二個2,還原成二進制為0100,其中BIT13,當值為0時,路由器如果進行網路啟動會嘗試無窮多次。當值為1時,路由器最多進行5次的網路啟動嘗試。
寄存器位數 十六進制 功能描述
0-3(啟動次序) 0x0000-0x000F 啟動欄位:0000-停留在引導提示符下(>或rommon >下)0001-從ROM中引導,
4 - 未使用
5 - 未使用
6 0x0040 配置系統忽略NVRAM中的配置信息
7 0x0080 啟動OEM位
8 0x0100 設置之後,暫停鍵在系統運行時無法使用;如果沒有設置,系統會進入引導監控模式下(rommon>)
9 -
10 0x0400 全0的就是廣播地址
11-12 0x0800到0x1800 控制台線路速度,默認的就是00即9600bps
13 0x2000 如果啟動失敗,系統以預設ROM軟體啟動
14 0x4000 -
15 0x8000 該設置能夠啟用診斷消息,並忽略NVRAM的內容
典型參數
l 0x2102: 運行過程中中斷鍵被屏蔽,路由器會查看NVRAM中配置的內容以確定啟動次序,如果啟動失敗會採用預設的ROM軟體進行啟動。
l 0x2142:恢復密碼時候使用。忽略NVRAM配置信息而進入初始配置對話模式中去
3.2. 密碼恢復
路由器的密碼恢復是將路由器重啟、中斷再進入ROM監控模式,將設備設置為忽略配置文件,然後再重啟,退出初始配置對話模式,配置存儲器,然後讀出或重新設置密碼即可。
根據路由器的處理器不同,需要分兩種情況進行處理。
l 適用於精簡指令集計算機(RISC):
1. 關掉路由器電源,然後重新打開電源
2. 按下break鍵或別的鍵盤組合將路由器置入ROM監控模式。Break鍵對不同計算機或終端軟體是不同的,按鍵的次序可能是CTRL-D,CTRL-Break等。
3. 在rommon> 提示符下,鍵入conf reg 0x2142以設置路由器下一次從Flash載入啟動的時候不要載入NVRAM中的啟動配置信息
4. 鍵入reset命令,路由器將重啟但忽略NVRAM中的配置信息
5. 路由器運行設置對話模式。輸入no或按下CTRL-C以跳過初始設置對話模式
6. 在router>提示符下輸入enable以進入特權執行模式
7. 使用config memory或者 startup running命令將啟動配置信息拷貝到運行配置中去。不要輸入config terminal,否則將覆蓋NVRAM中的配置信息
8. show running查看配置信息的內容,
9. 輸入config terminal進入配置模式,根據需要改變線路密碼或enable密碼
10. 這時所有的介面都處於關閉狀態,因此在每一個需要使用的介面上no shutdown
11. 輸入config reg 0x2102命令設置路由器下次按照正常的方式啟動
12. 按下CTRL-Z或End退出配置模式
13. write memory或 run start命令保存所有所作的更改
14. 重啟路由器並驗證密碼
非RISC:
1. 關掉路由器電源,然後重新打開電源
2. 按下break鍵或其他鍵進入ROM 監控模式
3. 在>提示符下,輸入o命令以記錄配置寄存器的當前值(通常是0x2102或0x0102)
4. 鍵入o/r 0x2142設置路由器下次啟動不要載入NVRAM中的配置信息
5. 鍵入i重啟路由器
6. 以下步驟和RISC處理器相關步驟一樣
4. 路由器工作模式
l ROM監控模式:路由器已啟動但是沒有載入任何IOS,提示符為:>或rommon>
l 啟動模式:啟動Flash里含有最小化IOS啟動程序,提示符為:router(boot)>
l 用戶執行模式:成功載入啟動了一份完整的IOS代碼,可以顯示系統信息、執行基本的測試等。不能查看配置文件和使用debug命令
l 特權執行模式:完全訪問的第二級模式。可以現實系統設置和狀態信息,可以進入配置模式,可以運行debug命令
l 配置模式:在enable模式中輸入config terminal命令進入配置模式。可以對介面、路由器以及線路配置進行設置
l 初始配置對話模式;啟動時候,如果路由器沒有進行配置(可能是因為路由器是新的或配置文件被write erase命令刪除了)的話,進入系統配置對話模式。可以依次進行主機名、執行密碼以及enable密碼的設置;還可對網路管理介面的IP和子網掩碼配置。然後保存到NVRAM中去。
9. 如何通過串口,當西門子PLC 有一個輸入置位,就會給電腦發送命令
首先,西門子的串口通信直接用cpu自帶的自由口就可以進行了;
其次,串口通信就是使用普通的串口通信質量,只要做一些特殊寄存器的配置,調一些收發指令就可以了,這個在開發平台的幫助里頭,都有很詳細的範例;
最後,要通過輸入來觸發通信,那就是將輸入作為開始發送數據的開關就可以了,簡單來說,梯形圖就是這樣------|輸入|-------[串口發送指令]
10. 寫程序+用串口的方式1,需要配置哪幾個寄存器或者寄存器的哪幾個位
咨詢記錄 · 回答於2021-11-11