導航:首頁 > 編程語言 > 單片機雙終端編程

單片機雙終端編程

發布時間:2022-04-26 08:26:12

1. 快速學習單片機編程的方法

單片機匯編語言編程規范
軟體設計更多地是一種工程,而不是一種個人藝術。如果不統一編程規范,最終寫出的程序,其可讀性將較差,這
不僅給代碼的理解帶來障礙,增加維護階段的工作量,同時不規范的代碼隱含錯誤的可能性也比較大。分析表明,編碼
階段產生的錯誤當中,語法錯誤大概佔20%左右,而由於未嚴格檢查軟體邏輯導致的錯誤、函數(模塊)之間介面錯誤
及由於代碼可理解度低導致優化維護階段對代碼的錯誤修改引起的錯誤則佔了一半以上。可見,提高軟體質量必須降低
編碼階段的錯誤率。如何有效降低編碼階段的錯誤呢?這需要制定詳細的軟體編程規范,並培訓每一位程序員,最終的
結果可以把編碼階段的錯誤降至10%左右,同時也降低了程序的測試費用,效果相當顯著。
本文從代碼的可維護性(可讀性、可理解性、可修改性)、代碼邏輯與效率、函數(模塊)介面、可測試性四個方
面闡述了軟體編程規范,規范分成規則和建議兩種,其中規則部分為強制執行項目,而建議部分則不作強制,可根據習
慣取捨。
1.排版
規則 1
程序塊使用縮進方式,函數和標號使用空格縮進,程序段混合使用TAB 和空格縮進。縮進的目的是使程序結構清晰,便
於閱讀和理解。
<TAB>默認寬度應為8 個空格,由於Word 中<TAB>為4 個空格,為示範清晰,此處用2 個<TAB>代替(下同)。
例如:
MOV R1, #00H
MOV R2, #00H
MOV PMR, #PMRNORMAL
MOV DPS, #FLAGDPTR
MOV DPTR, #ADDREEPROM
read1kloop:
read1kpage:
INC R1
MOVX A, @DPTR
MOV SBUF, A
JNB TI, $
CLR TI
INC DPTR
CJNE R1, #20H, read1kpage
INC R2
MOV R1, #00H
CPL WDI
CJNE R2, #20H, read1kloop ;END OF EEPROM
規則2
在指令的操作數之間的,使用空格進行間隔,採用這種鬆散方式編寫代碼的目的是使代碼更加清晰。
例如:
CJNE R2, #20H, read1kloop ;END OF EEPROM
規則 3
一行最多寫一條語句。
規則 4
變數定義時,保持對齊。便於閱讀和檢查內存的使用情況。
例如:
RegLEDLOSS EQU 30H ; VARIABLE ;
TESTLED==RegLEDLOSS.0
RegLEDRA EQU 31H ; VARIABLE
RUNLED_Flag EQU 32H ; VARIABLE ;
256ms 改變一次RUNLED 狀態
RUNLED_Def EQU 10H ; STATIC ;
16*32ms=500ms 改變一次LED 狀態
2.注釋
注釋的原則是有助於對程序的閱讀理解,注釋不宜太多也不能太少,太少不利於代碼理解,太多則會對閱讀產生干擾,
因此只在必要的地方才加註釋,而且注釋要准確、易懂、盡可能簡潔。注釋量一般控制在30%到50%之間。
規則 1
程序在必要的地方必須有注釋,注釋要准確、易懂、簡潔。
例如如下注釋意義不大:
MOV DXCE1COUNTER, #00H ; 將DXCE1COUNTER 賦值為0
而如下的注釋則給出了額外有用的信息:
JNZ PcComm_Err ; 假如校驗出錯
規則 2
注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放
於上方則需與其上面的代碼用空行隔開。
規則 3
頭文件、源文件的頭部,應進行注釋。注釋必須列出:文件名、作者、目的、功能、修改日誌等。
規則 4
函數頭部應進行注釋,列出:函數的目的、功能、輸入參數、輸出參數、涉及到的通用變數和寄存器、調用的其他函數
和模塊、修改日誌等。對一些復雜的函數,在注釋中最好提供典型用法。
規則 5
對重要代碼段的功能、意圖進行注釋,提供有用的、額外的信息。並在該代碼段的結束處加一行注釋表示該段代碼結束。
規則 6
對於所有的常量,變數,數據結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,在聲明時都必
須加以注釋,說明其含義。
規則 7
維護代碼時,要更新相應的注釋,刪除不再有用的注釋。保持代碼、注釋的一致性,避免產生誤解。
3.命名
規則 1
標識符縮寫
形成縮寫的幾種技術:
1) 去掉所有的不在詞頭的母音字母。如screen 寫成scrn, primtive 寫成prmv。
2) 使用每個單詞的頭一個或幾個字母。如Channel Activation 寫成ChanActiv,ReleaseIndication 寫成RelInd。
3) 使用變數名中每個有典型意義的單詞。如Count of Failure 寫成FailCnt。
4) 去掉無用的單詞後綴 ing, ed 等。如Paging Request 寫成PagReq。
5) 使用標準的或慣用的縮寫形式(包括協議文件中出現的縮寫形式)。
如 BSIC(Base Station Identification Code)、MAP(Mobile Application Part)。
關於縮寫的准則:
1) 縮寫應該保持一致性。如Channel 不要有時縮寫成Chan,有時縮寫成C
h。Length 有時縮寫成Len,有時縮寫成len。
2) 在源代碼頭部加入註解來說明協議相關的、非通用縮寫。
3) 標識符的長度不超過12 個字元。
規則 2
變數命名約定:<前綴> + 主體 ; 注釋
變數命名要考慮簡單、直觀、不易混淆。
前綴是可選項,表示變數類型,由於匯編中變數多是單位元組變數,所以單位元組變數可以不加前綴,對於 bit 和雙位元組型
變數,使用小寫的b 和d 作為前綴表示。
主體是必選項,可多個單詞(或縮寫)合在一起,每個單詞首字母大寫,其餘部分小寫。
規則 3
常量的命名
常量的命名規則:單詞的字母全部大寫,各單詞之間用下劃線隔開。
規則 4
函數的命名
單詞首字母為大寫,其餘均為小寫。函數名應以一個動詞開頭,即函數名應類似一個動詞斷語或祈使句。
例如:Test_Protect, Check_EEPROM, Init_Para
4.可維護性
規則 1
函數和過程中關系較為緊密的代碼盡可能相鄰。
規則 2
每個函數的源程序行數原則上應該少於200 行。對於消息分流處理函數,完成的功能統一,但由於消息的種類多,可能
超過200 行的限制,不屬於違反規定。
規則 3
語句嵌套層次不得超過5 層。嵌套層次太多,增加了代碼的復雜度及測試的難度,容易出錯,增加代碼維護的難度。
規則 4
避免相同的代碼段在多個地方出現。當某段代碼需在不同的地方重復使用時,應根據代碼段的規模大小使用函數調用或
宏調用的方式代替。這樣,對該代碼段的修改就可在一處完成,增強代碼的可維護性。
規則 5
每個函數完成單一的功能,不設計多用途面面俱到的函數。多功能集於一身的函數,很可能使函數的理解、測試、維護
等變得困難。使函數功能明確化,增加程序可讀性,亦可方便維護、測試。
規則 6
在函數的項目維護文檔中,應該指出軟體適用的硬體平台及版本。
建議 1
使用專門的初始化函數對所有的公共變數進行初始化。
5.程序正確性、效率
規則 1
嚴禁使用未經初始化的變數。引用未經初始化的變數可能會產生不可預知的後果,特別是引用未經初始化的指針經常會
導致系統崩潰,需特別注意。
規則 2
防止內存操作越界。
說明:內存操作越界是軟體系統主要錯誤之一,後果往往非常嚴重。
規則 3
注意變數的有效取值范圍,防止表達式出現上溢或下溢。
規則 4
防止易混淆的指令和操作數拼寫錯誤。
規則 5
避免函數中不必要語句,防止程序中的垃圾代碼,預留代碼應以注釋的方式出現。程序中的垃圾代碼不僅佔用額外的空
間,而且還常常影響程序的功能與性能,很可能給程序的測試、維護等造成不必要的麻煩。
規則 6
通過對系統數據結構的劃分與組織的改進,以及對程序演算法的優化來提高空間效率。這種方式是解決軟體空間效率的根
本辦法。
規則 7
循環體內工作量最小化。應仔細考慮循環體內的語句是否可以放在循環體之外,使循環體內工作量最小,從而提高程序
的時間效率。
規則 8
在多重循環中,應將最忙的循環放在最內層。
規則 9
避免循環體內含判斷語句,將與循環變數無關的判斷語句移到循環體外。目的是減少判斷次數。循環體中的判斷語句是
否可以移到循環體外,要視程序的具體情況而言,一般情況,與循環變數無關的判斷語句可以移到循環體外,而有關的
則不可以。
規則 10
中斷和恢復
中斷程序應該盡量短,應該在中斷中進行標記,在主程序中處理。但實時性很高的程序段例外。
中斷時應該保存所有涉及到的通用變數和寄存器,如 A, PSW, DPTR 等。
規則 11
堆棧設置
堆棧對於程序非常重要,對於堆棧的設置要合理。堆棧太小,在嵌套調用和容易溢出,造成系統故障;堆棧太大,浪費
RAM 資源。為了節約堆棧資源,中斷時要求不要保存太多資源,中斷嵌套和程序嵌套層數不要太多,盡量不要超過5
層。這就要求合理的劃分功能模塊。
規則 12
看門狗
看門狗電路用於在單片機死機時自動復位。單片機需要定時向看門狗發送脈沖,俗稱」喂狗」。喂狗不可太勤,這樣看門
狗沒有起到作用;也不可太慢,這樣容易造成單片機復位。正確的喂狗應該在主循環中進行,最好是建立一個獨立的系
統監控進程。不可以在定時中斷中喂狗,應為單片機有時可能會在主循環中死掉。
6.介面
規則 1
去掉沒有必要的公共變數,編程時應盡量少用公共變數。公共變數是增大模塊間耦合的原因之一,故應減少沒必要的公
共變數以降低模塊間的耦合度。應該構造僅有一個模塊或函數可以修改、創建,而其餘有關模塊或函數只訪問的公共變
量,防止多個不同模塊或函數都可以修改、創建同一公共變數的現象。
規則 2
當向公共變數傳遞數據時,要防止越界現象發生。對公共變數賦值時,若有必要應進行合法性檢查,以提高代碼的可靠
性、穩定性。
規則 3
盡量不設計多參數函數,將不使用的參數從介面中去掉,降低介面復雜度,減少函數間介面的復雜度。
規則 4
對所調用函數的返回碼要仔細、全面地處理。防止把錯誤傳遞到後面的處理流程。如有意不檢查其返回碼,應明確指明。
規則5
檢查介面函數所有輸入參數的有效性。
規則 6
檢查函數的所有非參數輸入,如外部數據、公共變數等。
7.代碼可測性
規則 1
模塊編寫應該有完善的測試方面的考慮。
規則 2
源代碼中應該設計了代碼測試的內容。
在編寫代碼之前,應預先設計好程序調試與測試的方法和手段,並設計好各種調測開關及相應測試代碼。程序的調試與
測試是軟體生存周期中很重要的一個階段,如何對軟體進行較全面、高率的測試並盡可能地找出軟體中的錯誤就成為很
關鍵的問題。因此在編寫源代碼之前,除了要有一套比較完善的測試計劃外,還應設計出一系列代碼測試手段,為單元
測試、集成測試及系統聯調提供方便。
規則 3
在同一項目組或產品組內,要有一套統一的為集成測試與系統聯調准備的調測開關及相應函數,並且要有詳細的說明。
本規則是針對項目組或產品組的。
規則 4
在同一項目組或產品組內,調測列印出的信息串的格式要有統一的形式。信息串中至少要有所在模塊名(或源文件名)
及行號。統一的調測信息格式便於集成測試。
規則 5
正式軟體產品中應把調測代碼去掉(即把有關的調測開關關掉)。
規則 6
用調測開關來切換軟體的DEBUG 版和正式版,而不要同時存在正式版本和DEBUG 版本的不同源文件,以減少維護的
難度。
規則 7
在軟體系統中設置與取消有關測試手段,不能對軟體實現的功能等產生影響。即有測試代碼的軟體和關掉測試代碼的軟
件,在功能行為上應一致。
規則 8
發現錯誤應該立即修改,並且若有必要記錄下來。
規則 9
開發人員應堅持對代碼進行徹底的測試(單元測試),而不依靠他人或測試組來發現問題。
規則 10
清理、整理或優化後的代碼要經過審查及測試。
規則 11
代碼版本升級要經過嚴格測試。
8.代碼編譯
規則 1
打開編譯器的所有告警開關對程序進行編譯。防止隱藏可能是錯誤的告警。
規則 2
某些語句經編譯後產生告警,但如果你認為它是正確的,那麼應通過某種手段去掉告警信息。照著規范系統的學習,不久的將來你也是個高手了。

2. 如何利用超級終端實現單片機和PC機之間傳送數據

程序--》附件--》通訊--》超級終端--》打開後出現個對話框,名稱隨便輸入,確定--》選擇你所使用的COM口,確定--》設置波特率,數據位,奇偶校驗,停止位,數據流控制,確定就可以了,這時單片機發送的數據就會顯示在超級終端里。注意這里一定要設置對,如果錯了就會無法通信或則顯示亂碼
超級終端只認ascii碼,如果你發送的不是ASCII碼就會顯示為亂碼

3. 單片機C語言怎樣編程才可也使兩個不用的I/O口同時執行程序

下面是一個大概的例子,由主程序mian和兩個中斷程序組成。
mian()
{
TL0=0XXX;
TH0=0XXX;
TR0=1;
EX0=1;
EA=1;
//初始化程序
while(1)
//等待鍵盤中斷或者定時器中斷結果
{
p0=0xXX:
p2=0xXX;
}
}
time0
interuper()
//定時器中斷程序
{
}
extr0
interuper()
//鍵盤中斷程序

4. 求單片機編程高手幫忙,急用

基於單片機交通燈智能控制系統研究

隨著經濟發展,汽車數量急劇增加,城市道路日漸擁擠,交通擁塞已成為一個國際性的問題。因此,設計可靠、安全、便捷的多功能交通燈控制系統有極大的現實必要性。通常情況下,交通信號燈控制主要有兩個缺陷:1、車道放行車輛時,時間設定相同且固定,十字路口經常出現主車道車輛多,放行時間短,車流無法在規定時間內通過,而副車道車輛少,放行時間明顯過長;2、未考慮急車強通(譬如,消防車執行緊急任務時,兩車道都應等待消防車通過)。由於交通信號燈控制系統缺乏有效的應急措施,導致十字路口交通受阻,造成不必要的經濟損失。
本系統利用單片機AT89C51,藉助CAN匯流排作為現場通信匯流排實現智能交通信號燈控制系統設計,實現了根據區域車流、紅外遙控以及PC機進行十字路口交通信號燈智能控制,並在軟、硬體方面採取一些改進措施,實現了根據十字路口車流、紅外遙控進行交通信號燈智能控制,使交通信號燈現場控制靈活、有效。從一定程度上解決了交通路口堵塞、車輛停車等待時間不合理、急車強通等問題。系統具有結構簡單、可靠性高、成本低、實時性好、安裝維護方便等優點,有廣泛的應用前景。
2 設計方案與系統結構
本智能交通信號燈控制系統硬體主要由車流信息檢測電路、鍵盤時間設置電路、紅外遙控發射/接收電路、單片機控制器、CAN匯流排控制器、CAN匯流排收發器、光電隔離晶元、單片機並行介面、看門狗電路等電路組成。本系統設置與上位PC機相連的上位節點為主節點,各路口信號燈控制裝置為底層節點,共同構成區域交通信號燈控制系統。系統原理框圖如圖1所示。

系統利用紅外遙控裝置實現各十字路口現場信號燈控制,紅外發射器發射出的編碼信號經接收器接收後送入單片機控制器,控制信號燈紅綠變換、等待時間、急車強通。另外,車流檢測裝置安放在各十字路口東西、南北道路方向實時檢測車道車流信息。並將檢測到的信息輸至單片機進行處理,通過單片機編程技術實現信號燈綠、紅切換及等待時間設定。此外,PC機通過通訊串口與節點上的單片機控制器進行通信,實現數據信息在CAN匯流排上的發送與接收。PC機負責網路上所有信號燈控制裝置的集中管理功能;同時向各信號燈控制器下傳工作模式控制信息。3 系統設計
3.1 紅外遙控發射電路
由於系統需實現十字路口不同方向信號燈變化。假設兩方向為東西、南北方向。則需實現東西、南北兩個方向信號燈的選定、時間增減、急車強通等功能。紅外遙控發射電路原理框圖如圖2所示。

紅外遙控發射器與外接陶瓷諧振器、電容器組成振盪電路,分頻產生一定脈沖寬度的載頻信號。輸出編碼信號,經達林頓管放大後,驅動紅外線發射二極體向外發射。
3.2 紅外遙控接收電路
紅外接收、解調模塊接收來自發射器的紅外信號,經內部集成電路放大、解調後,由輸出端輸出編碼脈沖信號,經三極體反相放大後,送至接收器,由接收器解調模塊進行解碼。當發射器相應鍵按下時,接收器輸出高電平信號,通過或非門接入單片機控制器的外中斷,申請中斷,由中斷服務程序檢測鍵按下狀態,從而完成相應的中斷服務。紅外接收器與單片機控制器介面電路如圖3所示。

3.3 CAN匯流排節點介面電路
各路口交通信號燈控制器與上位機的通訊都通過各自的CAN匯流排介面模塊完成。匯流排系統節點硬體電路原理框圖如圖4所示。

單片機控制器負責CAN匯流排控制器初始化,控制實現數據的接收和發送等通信任務。CAN匯流排收發器與CAN匯流排介面部分採用了一定的安全和抗干擾措施。為增強CAN匯流排節點的抗干擾能力,CAN控制器不直接與CAN收發器相連,而是通過加接高速光電隔離器晶元,實現匯流排上各節點間的電氣隔離。但是,光耦電路所採用的VCC和VDD電源必須完全隔離,否則採用光耦電路就失去了意義,可採用小功率電源隔離模塊或不大於5V隔離輸出開關電源模塊實現。
3.4 看門狗電路
由於單片機控制器自身抗干擾能力較差,尤其在一些條件比較惡劣、雜訊大的場合,常會出現單片機因受外界干擾輕者導致系統內部數據出錯,重者將嚴重影響程序的運行而死機,造成系統不能正常工作。設置看門狗是為了防止單片機死機、提高單片機系統抗干擾性的一種重要途徑。考慮系統可靠性設計,滿足苛刻環境下的正常運行,本設計中採用硬體看門狗電路。電路原理框圖如圖5所示。

通過硬體看門狗電路設計,可有效防止運行程序進入「死循環」。保證系統不受惡劣天氣及環境條件造成的干擾。
3.5 分布式檢測控制系統由於CAN匯流排具有較強的抗干擾能力,通訊中沒有地址的概念及節點數不受限制等優點,已經被廣泛應用於汽車、數控機床、儀器儀表、現場匯流排控制等領域[1]。本設計將若干智能交通信號燈控制器、上位節點介面和PC機組成CAN匯流排通信系統方便實現智能分布式區域信號燈實時監控、高速數據採集等。單片機控制器與PC機實現串列通信,設置CAN匯流排控制器工作在Intel模式,由PC機發送數據寫入單片機控制器,再通過控制信號由單片機將數據寫入CAN匯流排控制器並通過CAN匯流排收發器發送。接收數據通過中斷進行,CAN BUS數據經CAN匯流排收發器接收並寫入CAN匯流排控制器。然後通過中斷提請單片機讀取數據上傳PC機。
4 實驗分析
本系統單片機控制器選用MSC-51系列IntelAT89C51晶元,紅外遙控發射/接收器使用BA5104/BA5302設計。利用MAX692設計看門狗監控電路。匯流排通信介面中選取PHILIPS公司的SJA1000 CAN匯流排控制器及82C250匯流排收發器[2] [3]。光耦合器採用6N137晶元。系統硬體電路利用Protel DXP設計並制板。
通過實驗測試,按下紅外遙控發射器按鍵K1-K6有效地控制了東西、南北方向時間設定、急車強通,時間增、減。持續使WDI低電平時間>1.6s後,看門狗RESET端產生200ms負溢出脈沖信號使AT89C51復位,均有效地達到了系統設計要求。
為了提高系統通訊抗干擾性及可靠性,在匯流排收發器82C250的CANH和CANL引腳通過5Ω電阻與CAN匯流排相連,保護其免受過流沖擊的影響;82C250的CANH和CANL與地之間分別並聯30pF電容,濾除匯流排高頻干擾並起到防電磁輻射的作用;匯流排兩端接入120Ω終端電阻[4],匹配匯流排阻抗。此外,在CAN匯流排輸入端與地之間接防雷擊管,當兩輸入端與地之間出現瞬變干擾時,通過防雷擊管放電起到保護匯流排的作用,避免了雷電天氣對系統通訊的影響。這些部分雖然增加了節點的復雜度,但卻有效保證了數據通信的穩定性和安全性。
5 結語
交通信號燈智能控制系統為改善城市交通擁堵,提高道路的交通運輸能力發揮了積極作用。本系統設計實現了十字路口信號燈自動化、智能化、人性化實時控制。通過系統功能擴展,系統亦可應用於其他控制領域,應用前景廣闊。

5. 單片機的種類劃分有那幾類

了解了MCU的基本概念後我們來看看MCU的分類有哪些,本文將按照用途、基本操作處理的數據位數、存儲器結構、存儲器類型、指令結構等角度對MCU做一分類:

按用途——可分為通用型MCU和專用型MCU,其中通用型是指將可開發的資源(ROM、RAM、I/O、 EPROM)等全部提供給用戶的MCU;專用型MCU是指硬體及指令是按照某種特定用途而設計,例如錄音機機芯控制器、列印機控制器、電機控制器等。

按其基本操作處理的數據位數——根據匯流排或數據暫存器的寬度,單片機又分為1位、4位、8位、16位、32位甚至64位單片機。

按存儲器類型——可分為無片內ROM型和帶片內ROM型兩種。

按存儲器結構——MCU根據其存儲器結構可分為哈佛(Harvard)結構和馮▪諾依曼(Von Neumann)結構。

按指令結構——根據指令結構又可分為CISC(Complex Instruction Set Computer,復雜指令集計算機)和RISC(Reced Instruction Set Comuter,精簡指令集計算機微控制器)
受到新冠肺炎病毒對全球的影響,MCU領域供需嚴重失衡,自2021年開年以來,各原廠紛紛表示交期拉長,部分至40周以上。此外伴隨著交期延長同時出現的就是MCU市場的缺貨和漲價,到終端手中甚至會出現數倍價格的現象。

貞光科技能為客戶提供高性價比的處理器如MCU產品,貞光科技是愛普生等國內外知名MCU品牌的授權代理商。隨著國產化需求浪潮的推進,2021年,貞光科技在處理器如MCU、功率器件如高壓MOS等領域新增合作品牌,持續為客戶提供更有競爭力的產品和服務。

6. 51單片機編程請教

Timer0 是函數名,隨便取的

interrupt xx

跟在interrupt 後面的xx 值得是中斷號,就是說這個函數對應第幾個中斷埠,一般在51中

0 外部中斷0

1 定時器0

2 外部中斷1

3 定時器1

4 串列中斷
繼續追問: 那對於有定時器/計數器2的單片機,它對應的中斷類型是不是5啊? 補充回答: 不錯。那是增強型MCU 繼續追問:
再想問一下就是像

void timer0_interrupt(void) interrupt 5 using 1

{

......

}

中 interrupt 5 using 1 又是什麼意思?

補充回答: using 後面的數要聯繫到單片機內部結構
51裡面一般有4個r0 -r7寄存器, using 1指明了你用的是哪個寄存器組。如果你的終端函數和別的程序用的不是同一個寄存器組則進入中斷的時候就不會將寄存器組壓入堆棧返回時也不會彈出來 節省代碼和時間。這樣寫起來比較規范。
當然你不寫它也是沒有問題,默認會使用同一組內部寄存器。

7. 單片機怎麼編程

1、下個keil3軟體,新建工程之後,新建文件,寫文件名的時候,寫.asm後綴的就是寫匯編語言,寫.c後綴的就是寫C語言。
2、至於怎麼編程,單片機編程,重點就是掌握單片機有哪些I/o口,哪些寄存器,哪些特殊寄存器。
3、推薦看一下視頻《十天學會單片機》,搜一下都有的,對初學者非常有幫助。
4、另外補充一點,學單片機,光看書一年都學不會,邊看邊學,一個月就能入門了,所以最好弄一塊板子,在上面跑跑程序。

8. 有沒有高手呀!!!求高手!!! 雙串口單片機(STC90C54RD+),串口通信程序編寫,具體要求如下:

#include<reg52.h>
unsigned char flag,a;
void main()
{
TMOD=0x20;//設置定時器1為工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{
/* if(RI==1)
{
RI=0;
P1=SBUF;
}*/
if(flag==1)
{
ES=0;
flag=0;
SBUF='1';//28;
while(!TI);
TI=0;
SBUF='2';//28;
while(!TI);
TI=0;
SBUF='3';//28;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
// P1=SBUF;
a=SBUF;
flag=1;
}
這是串口通訊的程序,由於C語言的良好的訊移性能,你再查詢GPS模塊的就編程,一整合可以了

9. 單片機雙機通信是不是要對兩個單片機分別寫程序

是啊。針對發送和接受的單片機都要進行編程。
現在的單片機應該都有串口模塊(TXD和RXD兩個管腳),通過串口發送數據的流程一般都是:1,設置串口模塊的相關寄存器,如格式寄存器(8位,有無校驗位等),波特率寄存器;2,發送的話就向發送數據寄存器寫入數據,接收數據則不需要;3,通過標志位或中斷的方式表明發送或接收動作完成。
你用的單片機如果有模擬器就用模擬器驗證,或者單片機支持在線調試就使用在線驗證的方式。

10. 單片機編程步驟

一、什麼是 nec 單片機

隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、 定時器 / 計時器 等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系

二、nec單片機的操縱教程詳解

1、在智能儀器儀表中的操縱:在各類儀器儀表中引入單片機,使儀器儀表智能化,進步測試的自動化程度和精度,簡化儀器儀表的硬體結構,進步其性能價格比。

2、在機電一體化中的操縱:機電一體化產品是指集呆板、微電子技能、計較機技能於一本,具有智能化特徵的電子產品。

3、在實時過程式控制制中的操縱:用單片機實時進行數據處理和控制,使系統保持最佳事變狀態,進步系統的事變從命和產品的品格。

4、在人類生活中的操縱:目前國外各種家用電器已普通採用單片機代替傳統的控制電路。

5、在此外方面的操縱:單片機除以上各方面的操縱,它還遍布操縱於辦公自動化范圍、商業營銷范圍、汽車及通信、計較機外部裝備、暗昧控制等各范圍中。

以上就是為大家整理的關於單片機含義及其具體操縱教程的全部內容了。此外小編還額外為大家整理了單片機的優點:低電壓、低功耗、集成度高、可靠性高、體積小、控製成果強等。希望通過這篇文章能夠給想要了解單片機相關知識的朋友帶來一些幫助。另外大家如果想了解更多單片機的知識可以通過圖書查閱、網路查閱等方式。

閱讀全文

與單片機雙終端編程相關的資料

熱點內容
銀河麒麟字體庫存在哪個文件夾 瀏覽:956
魔獸加丁伺服器的航空叫什麼 瀏覽:152
花冠改裝案例哪個app多 瀏覽:515
成績單app哪個好用 瀏覽:140
北美程序員vs國內程序員 瀏覽:181
php解析xml文檔 瀏覽:121
石墨文檔APP怎麼橫屏 瀏覽:185
牆主鋼筋加密和非加密怎麼看 瀏覽:144
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:525
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:170
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:816
c語言javaphp 瀏覽:804