前言:中文期刊網(wǎng)精心挑選了單片機(jī)程序設(shè)計(jì)范文供你參考和學(xué)習(xí),希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。
單片機(jī)程序設(shè)計(jì)范文1
摘要:通過(guò)對(duì)鼠標(biāo)底層通信原理及協(xié)議的深入分析,探討了鼠標(biāo)在80c196單片機(jī)系統(tǒng)中的應(yīng)用價(jià)值與可行性,并介紹了鼠標(biāo)接口軟件設(shè)計(jì)的原理及方法,給出了80c196單片機(jī)與microsoft鼠標(biāo)的具體接口程序。
送信息時(shí),第三個(gè)字節(jié)為一個(gè)完整的信息報(bào)告。但80c196每接收到一個(gè)字節(jié),就產(chǎn)生一次中斷,然后根據(jù)當(dāng)前字節(jié)是否大于40h確定其性質(zhì)。若是信息報(bào)告的首字節(jié),則還要進(jìn)一步通過(guò)有效性檢驗(yàn)后保存;若不是首字節(jié),則必須經(jīng)過(guò)一系列檢驗(yàn)后保存起來(lái)。收到三個(gè)字節(jié)后立即進(jìn)行命令分析和執(zhí)行。具體處理過(guò)程可參看源程序。用戶模塊通過(guò)特定接口模塊(圖2(b))獲得鼠標(biāo)當(dāng)前位置和按鈕狀,并可通過(guò)進(jìn)位標(biāo)志c=0/1判斷鼠標(biāo)是否安裝。
jlt goud
單片機(jī)程序設(shè)計(jì)范文2
摘要:討論如何利用軟件控制LM3033B-0BR3液晶顯示模塊時(shí)序,采用C51語(yǔ)言編程,驅(qū)動(dòng)液晶模塊實(shí)現(xiàn)并行傳輸方式的字符、漢字以及圖形顯示。具體闡述了LM3033B-0BR3液晶顯示模塊與單片機(jī)AT89S52的并行接口電路和軟件編程方法。
關(guān)鍵詞:LM3033B-0BR3液晶顯示模塊;ST7920控制器;AT89S52單片機(jī);C51編程
中圖分類號(hào):TN40文獻(xiàn)標(biāo)識(shí)碼:A
Parallel Interface Technique between Chinese Graphic 12864 Dot Matrix LCD Module and 51 Singlechip and C51 Programming
LI Zhi-guang1,2,LI Xiao-quan3,HUAI Jun-xia1,2
(1.Department of Applied Physics, Hebei University of Technology, Tianjin 300130, China;2.Shenzhen Topway Technology CO.,LTD., Shenzhen 518057, China; 3.Tianjin Light Industry Design Institute,TianJin 300193,China)
Abstract: How to control the time sequence of LM3033B-0BR3 LCD module by C51 programming was discussed in this paper. In this way the LCD module was driven by parallel communication and the characters and graphics could be displayed well. The parallel interface circuit and the soft design between LM3033B-0BR3 LCD module and AT89S52 were narrated in detail.
Keywords:LM3033B-OBR3 LCD module;ST7920 controller;AT89S52 single chip micyoco; C51 programming
引言
顯示器是人類與應(yīng)用設(shè)備溝通的重要界面,近年來(lái),隨著電子技術(shù)的飛速發(fā)展,液晶顯示技術(shù)在實(shí)際生活中得到了廣泛應(yīng)用。液晶顯示模塊以其微功耗、體積小、顯示內(nèi)容豐富、模塊化以及接口電路簡(jiǎn)單等諸多優(yōu)點(diǎn)在科研、生產(chǎn)和產(chǎn)品設(shè)計(jì)等領(lǐng)域中發(fā)揮著越來(lái)越重要的作用 [1-2]。LM3033B系列液晶顯示模塊是深圳TOPWAY公司生產(chǎn)的中文顯示模塊中的一員。采用了臺(tái)灣的ST7920控制芯片,并提供了中文字庫(kù),為中文顯示開(kāi)發(fā)方面帶來(lái)了更多的方便。本文以LM3033B-0BR3為例介紹了12864點(diǎn)陣液晶顯示模塊的引腳、結(jié)構(gòu)、功能,詳述了與AT89S52單片機(jī)的硬件接口電路及有關(guān)軟件編程方法。
1 LM3033B-0BR3特點(diǎn)及操作
1.1字符顯示
每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過(guò)將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫(kù))、HCGROM(ASCII碼字庫(kù))及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:顯示自定義字型其代碼分別是0000H、0002H、0004H和0006H共4個(gè),顯示半寬ASCII碼字符為02H~7FH,A1A0H~F7FFH顯示8192種GB2312中文字庫(kù)字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如表1所示[3]。
1.2圖形顯示
繪圖顯示RAM提供64x32個(gè)位元組的記憶空間(由擴(kuò)充指令設(shè)定繪圖RAM位址),在更改繪圖RAM時(shí),由擴(kuò)充指令設(shè)定GDRAM位址先設(shè)置垂直位址,再設(shè)置水平位址(連續(xù)寫入兩個(gè)位元組的資料來(lái)完成垂直與水平的坐標(biāo)位址),再寫入兩個(gè)8位的資料到繪圖RAM,而位址計(jì)數(shù)器(AC)會(huì)自動(dòng)加一,整個(gè)寫入繪圖RAM的步驟如下:
a.關(guān)閉繪圖顯示功能(在寫入繪圖RAM期間,繪圖顯示必須關(guān)閉)[4];
b.先將垂直的位元組(Y)寫入繪圖RAM位址;
c.再將水平的位元組(X)寫入繪圖RAM位址;
d.將D15~D8寫入到RAM中;
e.將D7~D0寫入到RAM中。
圖1 繪圖RAM與屏幕顯示區(qū)域的對(duì)應(yīng)關(guān)系
1.3 LM3033B-0BR3的操作指令
LM3033B-0BR3提供兩套控制命令:基本指令集和擴(kuò)充指令集?;局噶罴藢?duì)液晶LM3033B-0BR3的基本操作,如判斷控制器忙標(biāo)志、清除顯示、設(shè)定顯示的地址、寫數(shù)據(jù)和讀數(shù)據(jù)等。而擴(kuò)充指令集則包括設(shè)置睡眠模式,設(shè)置圖形顯示、設(shè)置反白、設(shè)置滾動(dòng)等功能,可以進(jìn)一步滿足低功耗的需求,使顯示效果更豐富,為使用者提供更方便的環(huán)境。
單片機(jī)對(duì)LM3033B-0BR3的操作過(guò)程為:?jiǎn)纹瑱C(jī)先確認(rèn)ST7920內(nèi)部處于非"忙"狀態(tài)。即讀取BF位,當(dāng)BF為0時(shí),LM3033B-0BR3才可接收新的指令或數(shù)據(jù)。在操作時(shí),LM3033B-0BR3在單片機(jī)的時(shí)鐘信號(hào)的控制下,數(shù)據(jù)通過(guò)數(shù)據(jù)線傳送給LM3033B-0BR3,當(dāng)LM3033B-0BR3成功接收到數(shù)據(jù)后,轉(zhuǎn)入內(nèi)部時(shí)鐘控制,封鎖I/O口緩沖器,置"忙"標(biāo)志。ST7920根據(jù)接收數(shù)據(jù)中的RW和RS位判斷所接收到的是數(shù)據(jù)還是指令,并進(jìn)行相應(yīng)的處理。處理完成后,撤消I/O口緩沖器的封鎖,"忙"標(biāo)志清零。
2 單片機(jī)與LM3033B-0BR3的接口電路
一般液晶顯示模塊與單片機(jī)的接口分為直接訪問(wèn)方式和間接控制方式,間接控制方式還分為一位串行、4位并行以及8位并行。本文采用的AT89S52和液晶LM3033B-0BR3模塊的接口電路如圖2所示。由于LM3033B-0BR3采用并口通信,外接電路簡(jiǎn)單,與單片機(jī)連接采用間接連接的方法,即用I/O口直接與LCD數(shù)據(jù)線和控制線相連,其特點(diǎn)是簡(jiǎn)單、直觀、操作方便。在此電路中,采用軟件模擬液晶的時(shí)序,達(dá)到正確顯示的目的。
圖2 AT89S52和液晶LM3033B-0BR3模塊的接口電路及LM3033B-0BR3引腳功能
3 液晶顯示C51程序設(shè)計(jì)
對(duì)LM3033B-0BR3的軟件編程采用Medwin 語(yǔ)言開(kāi)發(fā),主要包括兩部分,一部分是給液晶寫指令,另一部分是給液晶寫數(shù)據(jù)。有了這2個(gè)基本的子程序,就可以構(gòu)造出各種實(shí)用的顯示子程序。由于液晶內(nèi)部自帶漢字模塊,只需發(fā)送漢字對(duì)應(yīng)的代碼就可以實(shí)現(xiàn)漢字的顯示,其代碼可以在ST7920模塊的資料中查找。對(duì)于圖形和曲線顯示的原理類似,只需要設(shè)置好相應(yīng)的水平地址和垂直地址,并把相應(yīng)的圖形編碼寫入液晶模塊,就可顯示出所要顯示的內(nèi)容[5]。
寫命令到LCD:
void WRCMD(uchar cmdcode)
{
chk_busy();
RS=0;
RW=0;
E=1;
lcd_bus=cmdcode;
E=0;
}
寫數(shù)據(jù)到LCD:
void WRData(uchar Dispdata)
{
chk_busy();
RS=1;
RW=0;
E=1;
lcd_bus=Dispdata;
E=0;
}
初始化程序:
void Init()
{
RES=1;
RES=0;
delay(1);
RES=1;
delay(1);
WRCMD(0x30); //選擇8位并行
WRCMD(0x30); //選擇8位并行
WRCMD(0x0c); //開(kāi)顯示(無(wú)游標(biāo)、不反白)
WRCMD(0x01); //清除顯示
WRCMD(0x04); ///shift=0,AC加1
}
4 結(jié)論
在單片機(jī)與液晶的接口中,關(guān)鍵是要滿足液晶的時(shí)序要求;在軟件編程中,關(guān)鍵是要進(jìn)行正確的初始化、操作及寫入顯示內(nèi)容的代碼。以上接口電路和相應(yīng)的程序已經(jīng)通過(guò)調(diào)試,并在實(shí)際中得到應(yīng)用。由ST7920構(gòu)成的LM3033B-0BR3液晶顯示模塊與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多。因此,LM3033B-0BR3液晶顯示模塊將得到廣泛的應(yīng)用。
參考文獻(xiàn)
[1]楊應(yīng)平,石城,蔣愛(ài)湘,李振華. 圖形點(diǎn)陣液晶顯示模塊與51系列單片機(jī)的接口設(shè)計(jì)[J].現(xiàn)代顯示, 2006,(5):41-45.
[2]李良成,張永順,張. 基于MSP430單片機(jī)的液晶顯示[J]. 現(xiàn)代顯示,2007,(5):32-33.
[3]深圳市拓普微科技開(kāi)發(fā)有限公司. LM3033B(8位并行接口)液晶顯示模塊應(yīng)用參考[R]. 2006.1.
[4]洪家平. 中文圖形顯示控制芯片ST7920的原理與應(yīng)用[J]. 國(guó)外電子元器件, 2005,(1):38-40.
單片機(jī)程序設(shè)計(jì)范文3
【關(guān)鍵詞】單片機(jī) 理論與實(shí)驗(yàn) 課程設(shè)計(jì) 協(xié)同教學(xué)
【中圖分類號(hào)】G64 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2016)31-0243-01
引言
單片機(jī)理論、實(shí)驗(yàn)和課程設(shè)計(jì)相關(guān)課程體系是各高等院校電子電氣信息類工科專業(yè)基礎(chǔ)專業(yè)課程設(shè)置的重要組成部分,為大學(xué)生深入學(xué)習(xí)掌握單片機(jī)的基本原理,設(shè)計(jì)方法,實(shí)踐應(yīng)用等打下基礎(chǔ)。大多數(shù)理工科高校開(kāi)設(shè)這些課程,對(duì)學(xué)生進(jìn)行綜合培養(yǎng)。對(duì)于單片機(jī)的理論與實(shí)踐教學(xué),既可以選擇匯編語(yǔ)言,也可以選擇C語(yǔ)言進(jìn)行。在高校的實(shí)際教學(xué)工作中,大多數(shù)老師是選擇匯編語(yǔ)言進(jìn)行教學(xué)的,因?yàn)閺膮R編語(yǔ)言入手能更好的掌握單片機(jī)的硬件資源使用原理等,也有部分老師是直接使用C語(yǔ)言進(jìn)行教學(xué),認(rèn)為匯編語(yǔ)言編程過(guò)于繁瑣,而C語(yǔ)言編程能夠在將來(lái)的實(shí)踐工作中得到更好的應(yīng)用。本文通過(guò)總結(jié)作者多年來(lái)在單片機(jī)相關(guān)課程教學(xué)積累的經(jīng)驗(yàn)和教學(xué)研究心得,以51單片機(jī)理論、實(shí)驗(yàn)和課程設(shè)計(jì)教學(xué)為例,對(duì)如何在使用不同編程語(yǔ)言進(jìn)行繁瑣和復(fù)雜的教學(xué)中使學(xué)生更好地掌握單片機(jī)知識(shí)體系進(jìn)行了探討。
1.單片機(jī)理論教學(xué)
1.1 匯編語(yǔ)言理論教學(xué)
單片機(jī)是一個(gè)把中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、并行IO接口、串行IO接口、定時(shí)器計(jì)數(shù)器、時(shí)鐘振蕩電路等集成在一起的控制芯片,硬件資源簡(jiǎn)單且豐富,也易于擴(kuò)展電路,所以單片機(jī)的學(xué)習(xí)側(cè)重點(diǎn)首先在于掌握硬件資源使用方法。因?yàn)閰R編語(yǔ)言實(shí)際上是CPU能夠識(shí)別的機(jī)器碼的助記符,從匯編語(yǔ)言入手開(kāi)始教學(xué),能夠使學(xué)生更好地掌握單片機(jī)的硬件資源使用原理。使用匯編語(yǔ)言編程可以很方便地對(duì)單片機(jī)存儲(chǔ)器地址直接進(jìn)行存取操作,也能很方便地對(duì)存儲(chǔ)器地址進(jìn)行整體安排分配,前提是對(duì)單片機(jī)硬件資源非常熟悉,能夠靈活調(diào)用。比如指令MOV、MOVC和MOVX可以分別訪問(wèn)單片機(jī)內(nèi)部的數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器和外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器。匯編編程的缺點(diǎn)在于進(jìn)行算術(shù)運(yùn)算和邏輯判斷跳轉(zhuǎn)等比較繁瑣。
1.2 C語(yǔ)言理論教學(xué)
國(guó)內(nèi)的單片機(jī)C語(yǔ)言程序設(shè)計(jì)教程多數(shù)的編排都會(huì)在前面開(kāi)始的章節(jié)介紹單片機(jī)硬件資源以及匯編語(yǔ)言指令系統(tǒng),然后以更大篇幅講述C語(yǔ)言程序設(shè)計(jì)語(yǔ)法和針對(duì)硬件資源的編程。針對(duì)單片機(jī)的C語(yǔ)言程序設(shè)計(jì)語(yǔ)法與計(jì)算機(jī)C語(yǔ)言高級(jí)程序設(shè)計(jì)編程語(yǔ)法基本一致,而針對(duì)硬件資源的指令又類似于匯編語(yǔ)言指令系統(tǒng),所以應(yīng)該可以說(shuō)單片機(jī)C語(yǔ)言程序設(shè)計(jì)是計(jì)算機(jī)C語(yǔ)言高級(jí)程序設(shè)計(jì)和匯編語(yǔ)言指令結(jié)合體。要掌握好C語(yǔ)言編程依然要對(duì)于單片機(jī)的硬件資源理解透徹并能靈活調(diào)用。但是C語(yǔ)言針對(duì)硬件資源的指令與匯編語(yǔ)言指令比較起來(lái)卻不如匯編那么直觀,也不如匯編指令那樣更加有助于單片機(jī)硬件體系結(jié)構(gòu)的理解。
為了使初學(xué)者能夠更好地理解單片機(jī)硬件體系結(jié)構(gòu),掌握硬件資源的調(diào)用,選擇匯編語(yǔ)言進(jìn)行教學(xué)顯然是更加合適的。
2.單片機(jī)實(shí)驗(yàn)教學(xué)
單片機(jī)作為電子電氣信息類專業(yè)的一門專業(yè)基礎(chǔ)核心課程,比某些專業(yè)基礎(chǔ)課程如電路原理、數(shù)字電子技術(shù)、模擬電子技術(shù)等更加注重編程實(shí)踐的練習(xí)。單片機(jī)實(shí)驗(yàn)課程一般都是配套安排在單片機(jī)理論課程的下半學(xué)期,這樣能夠更加有助于理論的理解和掌握。作為理論課程的配套課程,單片機(jī)實(shí)驗(yàn)課程在教學(xué)上必須與理論課程保持一致性,選擇匯編語(yǔ)言進(jìn)行實(shí)驗(yàn)教學(xué)就是必然和最好的選擇。
在實(shí)驗(yàn)設(shè)備的選擇上,學(xué)院實(shí)驗(yàn)室早期購(gòu)置過(guò)星研單片機(jī)Star ES51實(shí)驗(yàn)箱,后來(lái)又購(gòu)置了大批光佑STC開(kāi)發(fā)板,可以兩者選其一。
早期的單片機(jī)實(shí)驗(yàn)都是集中在實(shí)驗(yàn)室進(jìn)行,兩人共用一臺(tái)實(shí)驗(yàn)箱,通過(guò)連線和讀寫配套程序仿真運(yùn)行來(lái)進(jìn)行實(shí)驗(yàn)。這樣的實(shí)驗(yàn)有一些明顯的不足,比如配套程序調(diào)用了很多鍵盤顯示的子程序,而這些子程序沒(méi)有直接給出來(lái),實(shí)驗(yàn)箱的很多硬件電路連接也沒(méi)有給出詳細(xì)原理圖,所以造成了實(shí)驗(yàn)結(jié)束后多數(shù)學(xué)生也是對(duì)實(shí)驗(yàn)原理和編程似懂非懂的結(jié)果。
有了STC開(kāi)發(fā)板后,每個(gè)學(xué)生可以分配一塊開(kāi)發(fā)板,各自進(jìn)行單片機(jī)的編程仿真實(shí)驗(yàn),還可以將開(kāi)發(fā)板帶回宿舍課后繼續(xù)練習(xí),實(shí)驗(yàn)可以更方便地進(jìn)行。實(shí)驗(yàn)開(kāi)發(fā)板的原理圖清晰,例子程序豐富,通過(guò)讀寫配套例程可以較好的掌握單片機(jī)的基本原理。
顯然使用匯編語(yǔ)言選擇STC開(kāi)發(fā)板進(jìn)行單片機(jī)實(shí)驗(yàn)是實(shí)驗(yàn)教學(xué)的最好安排。實(shí)驗(yàn)課程的要求注重于單片機(jī)基礎(chǔ)知識(shí)的掌握和硬件資源的調(diào)用。
3.單片機(jī)課程設(shè)計(jì)教學(xué)
單片機(jī)課程設(shè)計(jì)的安排是為了進(jìn)一步提高學(xué)生的實(shí)踐能力,所以課程設(shè)計(jì)的教學(xué)就不再局限于基本原理的掌握,而是必須達(dá)到更高程度的實(shí)踐效果。匯編語(yǔ)言編程有利于對(duì)基礎(chǔ)知識(shí)的理解和單片機(jī)硬件資源的掌握,卻不利于復(fù)雜邏輯的處理。所以在學(xué)生已經(jīng)基本掌握了基礎(chǔ)理論的情況下,課程設(shè)計(jì)選擇C語(yǔ)言編程,可以讓學(xué)生更加方便的進(jìn)行復(fù)雜程序的編寫。
單片機(jī)課程設(shè)計(jì)實(shí)踐項(xiàng)目?jī)?nèi)容的安排上,必須注重單片機(jī)內(nèi)部和外部硬件資源的綜合調(diào)用,以便完成具有實(shí)際意義的綜合程序的編寫。課程設(shè)計(jì)實(shí)踐項(xiàng)目安排了可以綜合調(diào)用單片機(jī)I/O口資源進(jìn)行鍵盤掃描數(shù)碼管顯示以及中斷處理的實(shí)現(xiàn)計(jì)算器功能的程序編寫,和能夠使用I2C總線進(jìn)行通訊的AD/DA處理的程序編寫。這兩種程序的綜合度和復(fù)雜度都遠(yuǎn)遠(yuǎn)大于單片機(jī)實(shí)驗(yàn)題目的要求。從實(shí)踐結(jié)果來(lái)看,通過(guò)這種綜合性復(fù)雜程序的編寫練習(xí),能夠大大提高學(xué)生的開(kāi)發(fā)設(shè)計(jì)實(shí)際項(xiàng)目的動(dòng)手實(shí)踐能力。
結(jié)束語(yǔ)
在我國(guó)大力實(shí)行人才戰(zhàn)略強(qiáng)調(diào)人才培養(yǎng)的大環(huán)境下,本文作者所在高校也響應(yīng)國(guó)家號(hào)召加強(qiáng)本科生培養(yǎng),實(shí)施卓越工程教育,取得了積極可喜的成績(jī)。本文積極探索和提高單片機(jī)理論實(shí)驗(yàn)課程設(shè)計(jì)協(xié)同教學(xué)的方法,取得了長(zhǎng)足的進(jìn)步和發(fā)展,也得到了學(xué)生的高度認(rèn)同。以此方法培養(yǎng)出來(lái)的本科生在參加全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽的過(guò)程中也取得了驕人的成績(jī)。本文作者經(jīng)驗(yàn)和方法也可以為兄弟院校相關(guān)專業(yè)的教學(xué)提供參考和借鑒。
參考文獻(xiàn):
[1]李朝青.單片機(jī)原理及接口技術(shù)(第4版),北京航空航天大學(xué)出版社,2013.7
[2]郭天祥.新概念51單片機(jī)C語(yǔ)言教程――入門、提高、開(kāi)發(fā)、拓展, 電子工業(yè)出版社,2009.1
[3]彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例――基于8051+Proteus仿真(第2版), 電子工業(yè)出版社,2012.10
單片機(jī)程序設(shè)計(jì)范文4
關(guān)鍵詞:?jiǎn)纹瑱C(jī);自動(dòng)控制系統(tǒng);開(kāi)發(fā)
1 前言
基于單片機(jī)的特點(diǎn),單片機(jī)在自動(dòng)控制系統(tǒng)開(kāi)發(fā)中得到了重要應(yīng)用,不但提高了自動(dòng)控制系統(tǒng)的性能,同時(shí)也滿足了自動(dòng)控制系統(tǒng)的開(kāi)發(fā)需求。考慮到單片機(jī)的應(yīng)用情況,在單片機(jī)開(kāi)發(fā)過(guò)程中認(rèn)真總結(jié)經(jīng)驗(yàn),做到掌握單片機(jī)的特點(diǎn),重點(diǎn)做好單片機(jī)的開(kāi)發(fā)。結(jié)合單片機(jī)開(kāi)發(fā)實(shí)際,要想提高單片機(jī)開(kāi)發(fā)的實(shí)效性,就要從明確功能目標(biāo)、合理設(shè)置硬件電路和做好控制程序設(shè)計(jì)等方面內(nèi)容。因此,在單片機(jī)開(kāi)發(fā)過(guò)程中,應(yīng)重點(diǎn)做好以上幾方面工作,保證單片機(jī)開(kāi)發(fā)取得實(shí)效。
2 單片機(jī)開(kāi)發(fā)應(yīng)明確功能目標(biāo)
在單片機(jī)開(kāi)發(fā)過(guò)程中,單片機(jī)作為自動(dòng)控制系統(tǒng)的核心部件,決定著自動(dòng)控制系統(tǒng)的功能。基于這一認(rèn)識(shí),在單片機(jī)開(kāi)發(fā)過(guò)程中,明確功能目標(biāo)是十分必要的。為此,應(yīng)從以下幾個(gè)方面入手:(1)單片機(jī)開(kāi)發(fā)應(yīng)確定開(kāi)發(fā)方向。由于單片機(jī)的功能較多,以單片機(jī)為基礎(chǔ)可以開(kāi)發(fā)出多種自動(dòng)控制系統(tǒng)?;趩纹瑱C(jī)的這一特點(diǎn),在單片機(jī)開(kāi)發(fā)過(guò)程中,只有確定開(kāi)發(fā)方向,并在開(kāi)發(fā)方向上做好單片機(jī)配置,才能保證單片機(jī)開(kāi)發(fā)達(dá)到預(yù)期目標(biāo)。因此,確定開(kāi)發(fā)方向,是保證單片機(jī)開(kāi)發(fā)取得實(shí)效的關(guān)鍵;(2)單片機(jī)開(kāi)發(fā)應(yīng)確定自動(dòng)控制系統(tǒng)功能。在單片機(jī)開(kāi)發(fā)過(guò)程中,除了要明確開(kāi)發(fā)方向之外,在開(kāi)發(fā)方向框架下確定自動(dòng)控制系統(tǒng)的功能,是滿足單片機(jī)開(kāi)發(fā)需要的重要步驟,關(guān)系到單片機(jī)開(kāi)發(fā)的整體質(zhì)量,并決定了單片機(jī)開(kāi)發(fā)能否實(shí)現(xiàn)預(yù)定功能。因此,確定自動(dòng)控制系統(tǒng)功能,是單片機(jī)開(kāi)發(fā)的關(guān)鍵;(3)單片機(jī)開(kāi)發(fā)應(yīng)把握開(kāi)發(fā)原則。單片機(jī)作為自動(dòng)控制系統(tǒng)的重要元件,不但決定了自動(dòng)控制系統(tǒng)的功能,同時(shí)也是自動(dòng)控制系統(tǒng)開(kāi)發(fā)的關(guān)鍵。因此,在開(kāi)發(fā)過(guò)程中應(yīng)把握高效性、全面性和合理性的原則,保證單片機(jī)開(kāi)發(fā)能夠取得積極效果,進(jìn)而滿足單片機(jī)開(kāi)發(fā)需要,使單片機(jī)開(kāi)發(fā)取得積極效果。
3 單片機(jī)開(kāi)發(fā)應(yīng)合理設(shè)置硬件電路
在單片機(jī)開(kāi)發(fā)過(guò)程中,硬件電路的設(shè)定關(guān)系到單片機(jī)控制功能的實(shí)現(xiàn),對(duì)單片機(jī)開(kāi)發(fā)具有較強(qiáng)的決定作用?;趩纹瑱C(jī)開(kāi)發(fā)實(shí)際,合理設(shè)置硬件電路,是保證單片機(jī)開(kāi)發(fā)取得實(shí)效的關(guān)鍵措施。為此,單片機(jī)開(kāi)發(fā)應(yīng)將設(shè)置硬件電路作為重要內(nèi)容,具體應(yīng)從以下幾個(gè)方面入手:(1)單片機(jī)開(kāi)發(fā)應(yīng)根據(jù)功能需要合理設(shè)置硬件電路。在單片機(jī)開(kāi)發(fā)過(guò)程中,單片機(jī)的硬件電路布置決定著單片機(jī)的整體功能?;谶@一特點(diǎn),只有根據(jù)功能需要合理設(shè)置硬件電路,并保證硬件電路的合理性,才能提高單片機(jī)開(kāi)發(fā)的整體質(zhì)量,進(jìn)而滿足單片機(jī)開(kāi)發(fā)需要;(2)單片機(jī)開(kāi)發(fā)在硬件電路設(shè)置中應(yīng)優(yōu)化電路板空間。由于單片機(jī)的電路板空間有限,要想實(shí)現(xiàn)更多的控制功能,就要在電路設(shè)置中對(duì)電路板空間進(jìn)行優(yōu)化,進(jìn)而實(shí)現(xiàn)單片機(jī)的其他功能。因此,合理優(yōu)化電路板空間,是保證單片機(jī)開(kāi)發(fā)質(zhì)量的關(guān)鍵,對(duì)單片機(jī)開(kāi)發(fā)具有重要意義;(3)單片機(jī)開(kāi)發(fā)應(yīng)保證硬件連接質(zhì)量。在單片機(jī)開(kāi)發(fā)過(guò)程中,為了保證硬件電路質(zhì)量滿足實(shí)際需要,應(yīng)對(duì)硬件連接的緊固程度進(jìn)行確認(rèn),保證單片機(jī)的硬件連接質(zhì)量達(dá)標(biāo),避免硬件脫落造成單片機(jī)的功能無(wú)法實(shí)現(xiàn)。因此,對(duì)硬件連接質(zhì)量進(jìn)行檢查是十分必要的。
4 單片機(jī)開(kāi)發(fā)應(yīng)做好控制程序設(shè)計(jì)
在單片機(jī)開(kāi)發(fā)過(guò)程中,控制程序設(shè)計(jì)是關(guān)系到單片機(jī)開(kāi)發(fā)質(zhì)量的關(guān)鍵。基于這一認(rèn)識(shí),做好控制設(shè)計(jì)是滿足單片機(jī)開(kāi)發(fā)的重要措施。以下為熱敏電阻溫度計(jì)的控制程序設(shè)計(jì)實(shí)例:
系統(tǒng)擴(kuò)展了一個(gè)按鍵,接于IOA15,當(dāng)按鍵按下時(shí),就進(jìn)行A/D轉(zhuǎn)換初始化,并進(jìn)行4次A/D轉(zhuǎn)換,SPCE061A的A/D轉(zhuǎn)換結(jié)果在高10位,每次將其移入低10位再計(jì)算4次平均值作為AD有效結(jié)果返回;為了提高準(zhǔn)確度,變量TempAD、Temper都采用浮點(diǎn)數(shù),計(jì)算完成用語(yǔ)音將溫度值報(bào)出來(lái)。由于在放音時(shí)播放函數(shù)會(huì)改變一些參數(shù),為了穩(wěn)定起見(jiàn),在每次A/D轉(zhuǎn)換前都做一次初始化。
由于每個(gè)熱敏電阻的特性并非一樣、與熱敏電阻串聯(lián)的固定電阻的不準(zhǔn)確等原因,每支溫度計(jì)在整個(gè)測(cè)量范圍內(nèi)至少找5點(diǎn)進(jìn)行校正,并適當(dāng)?shù)男薷膮?shù)以達(dá)到最佳狀態(tài)。
A/D轉(zhuǎn)換程序:
.PUBLIC _ReadAD _ReadAD: .proc R2=4 //共進(jìn)行4次轉(zhuǎn)換
R3=0
TestLoop:
R1=[P_ADC_MUX_Data] //進(jìn)行一次AD轉(zhuǎn)換
R1=0x8000 TempConverLoop:
TEST R1,[P_ADC_MUX_Ctrl] JZ TempConverLoop //轉(zhuǎn)換完成?
R1=[P_ADC_MUX_Data] //讀取AD轉(zhuǎn)換值
R1=R1 LSR 4 //將AD值移到低10位
R1=R1 LSR 2 R3+=R1 //四次A/D值累加
R2-=1
JNZ TestLoop
R3=R3 LSR 2 //結(jié)果除以4,求4次A/D值的平均值
R1=R3 //R1-------A/D返回值
RETF
ENDP
從上述程序來(lái)看,單片機(jī)在控制程序設(shè)計(jì)過(guò)程中,應(yīng)根據(jù)自動(dòng)控制系統(tǒng)的功能進(jìn)行設(shè)計(jì),并保證程序的準(zhǔn)確性,使控制程序能夠全面反映自動(dòng)控制系統(tǒng)功能。
5 結(jié)論
通過(guò)本文的分析可知,結(jié)合單片機(jī)開(kāi)發(fā)實(shí)際,要想提高單片機(jī)開(kāi)發(fā)的實(shí)效性,就要從明確功能目標(biāo)、合理設(shè)置硬件電路和做好控制程序設(shè)計(jì)等方面內(nèi)容。因此,在單片機(jī)開(kāi)發(fā)過(guò)程中,應(yīng)重點(diǎn)做好以上幾方面工作,保證單片機(jī)開(kāi)發(fā)取得實(shí)效。
參考文獻(xiàn):
[1]肖洪兵.跟我學(xué)用單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2002(08).
[2]何立民.單片機(jī)高級(jí)教程(第1版)[S].北京:北京航空航天大學(xué)出版社,2001.
[3]趙曉安.MCS-51單片機(jī)原理及應(yīng)用[S].天津:天津大學(xué)出版社,2001(03).
[4]李廣第.單片機(jī)基礎(chǔ)(第1版)[S].北京:北京航空航天大學(xué)出版社,1999.
單片機(jī)程序設(shè)計(jì)范文5
關(guān)鍵詞: 單片機(jī)應(yīng)用技術(shù) 教學(xué) 改革“五化”
近年來(lái),我在從事計(jì)算機(jī)專業(yè)《單片機(jī)應(yīng)用技術(shù)》課程的教學(xué)工作時(shí),愈來(lái)愈感受到單片機(jī)應(yīng)用技術(shù)的教科書與現(xiàn)狀之間的差距逐漸加大。為此我特提出五個(gè)方面的問(wèn)題,以鑒同行。
一、教學(xué)內(nèi)容應(yīng)該“硬件化”
這是個(gè)觀念問(wèn)題。學(xué)校中的大多數(shù)教師把《單片機(jī)原理及應(yīng)用》這門課當(dāng)做一門“匯編語(yǔ)言”來(lái)教,往往陷在指令系統(tǒng)這一章中拔不出來(lái),既浪費(fèi)了大量課時(shí),又嚴(yán)重偏離了方向。
實(shí)踐證明,單片機(jī)應(yīng)用的工夫不在對(duì)單片機(jī)本身的掌握上,而在對(duì)單片機(jī)控制對(duì)象的了解上。搞單片機(jī)開(kāi)發(fā)的成功者,往往不是計(jì)算機(jī)專業(yè)畢業(yè)的人,而是某行業(yè)中搞自動(dòng)化控制的人。即熟悉電路硬件的比熟悉程序軟件的干得更有出息。
我們一定要把這門課的重點(diǎn)放在“應(yīng)用”兩字上。對(duì)指令系統(tǒng),我認(rèn)為花4個(gè)課時(shí)就足夠了,更應(yīng)該完全刪除教材中關(guān)于單片機(jī)程序設(shè)計(jì)結(jié)構(gòu)的專門討論章節(jié)。要知道游泳是在水中學(xué)會(huì)的,根本沒(méi)有必要在岸上花大量的課時(shí)去訓(xùn)練劃水的基本動(dòng)作。一句話,在這門課的教學(xué)過(guò)程一定要突出硬件的地位,樹(shù)立軟件為硬件服務(wù)的觀念。
二、存儲(chǔ)器擴(kuò)展已經(jīng)“單片化”
在計(jì)算機(jī)技術(shù)發(fā)展的初始階段,存儲(chǔ)器曾是個(gè)昂貴的資源,而今的存儲(chǔ)器制造技術(shù)已今非昔比。單片達(dá)兆位級(jí)的EPROM、FlashROM已比比皆是,RAM的單片容量則更不用說(shuō)了。因此像8051單片機(jī)這類最大只支持64K存儲(chǔ)空間的機(jī)種,存儲(chǔ)器一片就能到位。這個(gè)技術(shù)現(xiàn)狀反過(guò)來(lái)指導(dǎo)我們,在教學(xué)時(shí)可刪除現(xiàn)有教科書中大篇幅的多片存儲(chǔ)器擴(kuò)展技術(shù)(這是一個(gè)突出的知識(shí)陳舊化問(wèn)題)。
教過(guò)這門課的老師都知道,多片存儲(chǔ)擴(kuò)展時(shí),如果不用全地址譯碼法,則會(huì)造成同一物理地址空間映射多個(gè)邏輯地址空間甚至出現(xiàn)存儲(chǔ)器地址之間的交疊。在教學(xué)中這部分內(nèi)容是非常難于讓學(xué)生理解的,在工程中也會(huì)給程序設(shè)計(jì)帶來(lái)不便,還可能留下隱患。而存儲(chǔ)器“單片化”結(jié)構(gòu),可徹底避免這一現(xiàn)象。所以,扔掉“單片機(jī)存儲(chǔ)器擴(kuò)展”這一單元,不僅原來(lái)的難題不再是難題,而且可節(jié)約大量課時(shí)。
三、程序設(shè)計(jì)可以“模塊化”
歷來(lái)單片機(jī)以“短小精干”著稱,因此開(kāi)發(fā)應(yīng)用系統(tǒng)十分珍惜資源(包括硬件與軟件),十分強(qiáng)調(diào)簡(jiǎn)短。為此開(kāi)發(fā)人員往往為“簡(jiǎn)之再簡(jiǎn)”而絞盡腦汁,有時(shí)不得不用一些“技巧”,使得設(shè)計(jì)出來(lái)的程序可讀性差,移植性差。所以在這個(gè)領(lǐng)域以前是不提“結(jié)構(gòu)化”設(shè)計(jì)的。
現(xiàn)在由于硬件技術(shù)的發(fā)展,有些情況正在變化。從應(yīng)用開(kāi)發(fā)的環(huán)境來(lái)看,應(yīng)用領(lǐng)域越來(lái)越廣泛、技術(shù)更新越來(lái)越快、開(kāi)發(fā)周期必須越來(lái)越短。因此,開(kāi)發(fā)人員不可能在每一產(chǎn)品的程序設(shè)計(jì)上精雕細(xì)琢地花費(fèi)大量時(shí)間,更何況這個(gè)領(lǐng)域主要是非計(jì)算機(jī)專業(yè)的人員在工作。面對(duì)這種形勢(shì),要求單片機(jī)程序設(shè)計(jì)也要能結(jié)構(gòu)化、模塊化、乃至對(duì)象化,以便實(shí)現(xiàn)程序的交流和重用。
從單片機(jī)技術(shù)本身的發(fā)展來(lái)看,資源的不斷擴(kuò)大,已經(jīng)允許我們?cè)趩纹瑱C(jī)這塊“彈丸之地”上做一些像桌面系統(tǒng)上的事情。
程序模塊化就是子程序化,子程序化就意味著堆棧的開(kāi)銷加大。以往,8051單片機(jī)的內(nèi)存,包括堆棧在內(nèi)用戶真正可用的只有80個(gè)字節(jié)?,F(xiàn)在我們可以用像8052這樣的產(chǎn)品,用戶實(shí)際可用的內(nèi)存一下又多了128個(gè)字節(jié)。像臺(tái)灣華邦公司W(wǎng)77E58等51系列型號(hào),片內(nèi)還帶1024字節(jié)的RAM供用戶使用。
程序模塊化當(dāng)然還會(huì)增多“履行公務(wù)”性的代碼,即“過(guò)門關(guān)節(jié)”變多。以往的觀點(diǎn),這會(huì)使程序的運(yùn)行時(shí)間加長(zhǎng),與單片機(jī)宗旨相違背?,F(xiàn)在我們可以選用主頻33MH。甚至60MH的單片機(jī),還怕來(lái)不及嗎?另外一個(gè)因素是存貯芯片的價(jià)格平民化,使我們不再怕程序太“臃腫”。
所有這些為我們?cè)趩纹瑱C(jī)應(yīng)用領(lǐng)域里引進(jìn)“結(jié)構(gòu)化語(yǔ)言”的思想提供了有利條件。模塊化在教學(xué)上的效益就是:利用現(xiàn)有的成熟模塊,學(xué)生可以立即體驗(yàn)單片機(jī)應(yīng)用的成果。體驗(yàn)完后,教師提出一些小要求,學(xué)生作些小調(diào)整,活動(dòng)來(lái)些小變化……單片機(jī)教學(xué)不就成了“寓教于樂(lè)”的形式了嗎?
四、課堂教學(xué)必須“實(shí)時(shí)化”
單片機(jī)技術(shù)近年的飛速發(fā)展,特別是器件的層出不窮,要求教師時(shí)刻把準(zhǔn)“脈搏”,及時(shí)地根據(jù)技術(shù)現(xiàn)狀對(duì)教學(xué)內(nèi)容作出調(diào)整與取舍。
例如,在給學(xué)生介紹8051系列單片機(jī)的ROM形式時(shí),必須及時(shí)地介紹“一次寫入式”O(jiān)PT型的PIC系列單片機(jī)及帶“閃爍存儲(chǔ)器”的AT89系列單片機(jī)。因?yàn)樗鼈兊某霈F(xiàn),極大地改變了單片機(jī)的應(yīng)用狀況。
同理在給學(xué)生講8051的串行口時(shí),必須及時(shí)地介紹點(diǎn)對(duì)點(diǎn)通信技術(shù)及多機(jī)通信技術(shù),因?yàn)樘峁﹩纹瑱C(jī)與其他計(jì)算機(jī)智能儀表或設(shè)備的數(shù)據(jù)交換。是近來(lái)的流行趨勢(shì)在給學(xué)生介紹單片機(jī)的人機(jī)界面時(shí)一定要介紹點(diǎn)陣式液晶顯示技術(shù),因?yàn)樗某霈F(xiàn)使單片機(jī)亦能做到“圖文并茂”;在給學(xué)生講解I/O擴(kuò)展時(shí),一定要介紹IA2C總線,因?yàn)檫@是一種僅兩條線的片間總線,它的應(yīng)用對(duì)硬件設(shè)計(jì)模式將產(chǎn)生重大影響。
再有,在給學(xué)生講A/D、D/A轉(zhuǎn)換技術(shù)時(shí),一定要介紹V/F、F/V轉(zhuǎn)換技術(shù),因?yàn)轭l率形式的量,是介于模擬與數(shù)字之間的量,在自動(dòng)控制領(lǐng)域中有極廣泛的應(yīng)用。
五、實(shí)驗(yàn)調(diào)試應(yīng)該“符號(hào)化”
單片機(jī)程序設(shè)計(jì)范文6
【關(guān)鍵詞】單片機(jī);仿真調(diào)試
在應(yīng)用單片機(jī)開(kāi)發(fā)設(shè)計(jì)電子產(chǎn)品的時(shí)候,絕大多數(shù)的設(shè)計(jì)人員都要使用仿真器。設(shè)計(jì)者在編制調(diào)試程序的時(shí)候,可以通過(guò)仿真器跟蹤單片機(jī)內(nèi)部程序的運(yùn)行流程,檢查程序的每一步執(zhí)行的情況都否滿足設(shè)計(jì)者的初衷。同時(shí),設(shè)計(jì)者可以直觀全面地得到單片機(jī)內(nèi)部程序運(yùn)行中的各項(xiàng)參數(shù)和數(shù)據(jù),進(jìn)而判斷所設(shè)計(jì)軟件程序的正確性和有效性,大大提高了程序設(shè)計(jì)的效率??梢哉f(shuō),仿真器是設(shè)計(jì)人員調(diào)試程序最有力的助手。
仿真器固然有很多的優(yōu)點(diǎn),筆者這里卻另辟蹊徑,在程序設(shè)計(jì)調(diào)試過(guò)程中拋開(kāi)仿真器,單獨(dú)談一談單片機(jī)的“在線仿真調(diào)試”方案,僅供單片機(jī)愛(ài)好者參考。
所謂的單片機(jī)的“在線仿真調(diào)試”方案,實(shí)際上就是我們把測(cè)試程序燒入單片機(jī)芯片中,讓單片機(jī)脫離仿真器獨(dú)立運(yùn)行。在運(yùn)行過(guò)程中,設(shè)計(jì)者可以通過(guò)合理有效的手段獲取單片機(jī)實(shí)際運(yùn)行過(guò)程中器件的一些狀態(tài)和必要數(shù)據(jù),檢查單片機(jī)運(yùn)行的程序是否符合設(shè)計(jì)要求,即所謂的“在線仿真調(diào)試”。
這種“在線仿真調(diào)試”的手段雖然得到的數(shù)據(jù)信息有限,但是也能得到一些必要的和關(guān)鍵的信息,對(duì)于熟練的設(shè)計(jì)人員也是可行的。獲取信息的手段包括檢查單片機(jī)外部連接發(fā)光二極管的狀態(tài)、數(shù)碼管或者液晶的顯示內(nèi)容、串行通訊的必要數(shù)據(jù)等。設(shè)計(jì)者可以根據(jù)所得到的狀態(tài)或數(shù)據(jù)來(lái)驗(yàn)證程序運(yùn)行的正確性。如果程序設(shè)計(jì)有疏漏,設(shè)計(jì)者需要重新調(diào)整編輯軟件程序,燒入單片機(jī)后再次測(cè)試,直到圓滿完成開(kāi)發(fā)任務(wù)。
要想做到“在線仿真調(diào)試”,必須滿足如下兩個(gè)條件:(1)單片機(jī)內(nèi)部的程序存儲(chǔ)器具有FLASH功能,可以多次地把程序燒入單片機(jī);(2)設(shè)計(jì)人員必須對(duì)所使用單片機(jī)的內(nèi)部資源及周邊功能都比較熟悉,能夠迅速地編制出必要的測(cè)試程序。
從加快設(shè)計(jì)周期上講,有些新開(kāi)發(fā)的產(chǎn)品與原有產(chǎn)品硬件相近,軟件功能差別也不大,開(kāi)發(fā)任務(wù)時(shí)間又偏緊,設(shè)計(jì)人員也可以采用“在線仿真調(diào)試”的方式,即不必重畫仿真目標(biāo)板,直接設(shè)計(jì)生產(chǎn)用的線路板,只是通過(guò)改動(dòng)原有的軟件程序來(lái)適應(yīng)新的產(chǎn)品要求。
從安全性上講,有些情況下直接連接仿真器運(yùn)行很危險(xiǎn),如目標(biāo)板上有強(qiáng)電接入,使得強(qiáng)電與仿真器之間沒(méi)有電氣隔離,容易損壞仿真器的硬件,即使把強(qiáng)電用隔離變壓器處理也不能保證絕對(duì)安全;有些場(chǎng)合程序運(yùn)行時(shí)不允許中斷,例如,在動(dòng)態(tài)測(cè)試傳動(dòng)設(shè)備時(shí),如果程序在斷點(diǎn)停止運(yùn)行后會(huì)損壞相關(guān)設(shè)備,進(jìn)而造成巨大的損失。這樣就必須用“在線仿真調(diào)試”來(lái)達(dá)到目的。
還有些無(wú)奈的情況,有些產(chǎn)品具有停電低功耗運(yùn)行功能,這種低功耗工作方式仿真器無(wú)法實(shí)現(xiàn)仿真運(yùn)行,只有脫機(jī)運(yùn)行才能完成低功耗運(yùn)行功能的測(cè)試工作;有些單片機(jī)廠家的單片機(jī)內(nèi)部資源豐富,但是相應(yīng)的仿真器很昂貴,動(dòng)輒數(shù)萬(wàn)元人民幣,租用和購(gòu)買都不合適。如果研發(fā)項(xiàng)目需要幾個(gè)人共同開(kāi)發(fā),那么在研發(fā)初期無(wú)法實(shí)現(xiàn)人手一臺(tái)仿真器,就只有使用“在線仿真調(diào)試”的方式來(lái)節(jié)省研發(fā)設(shè)備的資金投入,并且可以不受場(chǎng)地限制,只需一臺(tái)計(jì)算機(jī)和一個(gè)目標(biāo)板,再外加一個(gè)串行TTL/RS232接口通訊模塊就可以了。
“在線仿真調(diào)試”的方法給我們提供數(shù)據(jù)信息的方式有兩種:一種是應(yīng)用于數(shù)據(jù)量較少的系統(tǒng),直接借助目標(biāo)板上的顯示器件(數(shù)碼管或者液晶)就可以獲取一些必要的信息,更有甚者,通過(guò)發(fā)光二極管也可以表達(dá)很多的狀態(tài);另一種是應(yīng)用于數(shù)據(jù)量較大的系統(tǒng),設(shè)計(jì)者在程序中先把數(shù)據(jù)組織好,然后借助于單片機(jī)上的異步通訊接口,通過(guò)串行TTL/RS232接口通訊模塊把數(shù)據(jù)傳送給計(jì)算機(jī),在計(jì)算機(jī)上分析所得到的數(shù)據(jù)。這就像使用仿真器調(diào)試程序一樣,通訊時(shí)就相當(dāng)于使用仿真器運(yùn)行程序至所設(shè)斷點(diǎn)處,所得數(shù)據(jù)就相當(dāng)于仿真器所得到的相應(yīng)寄存器及變量的數(shù)值,唯一的區(qū)別就是這里介紹的斷點(diǎn)是軟斷點(diǎn),程序在執(zhí)行斷點(diǎn)后還可以繼續(xù)運(yùn)行。當(dāng)然,設(shè)計(jì)者可以連續(xù)觀察多組數(shù)據(jù),更好地分析程序運(yùn)行的流程。
我們?cè)诶猛ㄓ嵔涌凇霸诰€仿真調(diào)試”的時(shí)候,應(yīng)把數(shù)據(jù)組織得有一定的規(guī)律,這樣就可以迅速直觀地檢查運(yùn)行結(jié)果,進(jìn)而調(diào)整相應(yīng)的程序段,為下一次的“在線仿真調(diào)試”做準(zhǔn)備。這樣的“在線仿真調(diào)試”雖然每次都得把程序?qū)戇M(jìn)單片機(jī)中,過(guò)程略顯繁瑣,但是所設(shè)置的軟斷點(diǎn)并不影響程序的連續(xù)執(zhí)行,我們可以把多組數(shù)據(jù)放在一起比對(duì)查看,最大程度發(fā)揮“在線仿真調(diào)試”的優(yōu)勢(shì)。
“在線仿真調(diào)試”,實(shí)質(zhì)上就是設(shè)計(jì)者編制并運(yùn)行測(cè)試程序,單片機(jī)在程序的運(yùn)行過(guò)程中有效地給設(shè)計(jì)者反饋出必要的數(shù)據(jù)信息,然后通過(guò)有效地調(diào)整單片機(jī)的程序來(lái)達(dá)到最理想的結(jié)果。這就要求設(shè)計(jì)者的產(chǎn)品設(shè)計(jì)經(jīng)驗(yàn)豐富,處理問(wèn)題時(shí)頭腦靈活,對(duì)程序運(yùn)行過(guò)程中發(fā)生的異常情況心中有數(shù),并在最短的時(shí)間調(diào)整程序來(lái)完成進(jìn)一步的“在線仿真調(diào)試”。
以上僅是一家之言,僅供參考??傊O(shè)計(jì)人員在進(jìn)行程序設(shè)計(jì)的時(shí)候,一定要靈活地選取最安全最方便最有效的方案,不必過(guò)于教條,最主要的是要不斷地積累經(jīng)驗(yàn),在滿足產(chǎn)品設(shè)計(jì)要求的同時(shí)提升自己的價(jià)值。
【參考文獻(xiàn)】
[1]單片機(jī)原理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)應(yīng)用.中國(guó)科學(xué)技術(shù)大學(xué)出版社,1995.
[2]何立民.單片機(jī)高級(jí)教程.北京航空航天出版社,2000.