單片機(jī)程序設(shè)計(jì)范文

時(shí)間:2023-03-25 15:34:52

導(dǎo)語:如何才能寫好一篇單片機(jī)程序設(shè)計(jì),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

1 鼠標(biāo)信號(hào)發(fā)送協(xié)議與過程

鼠標(biāo)是一個(gè)功能高度集中的小型機(jī)電一體化系統(tǒng)。它首先將直線移轉(zhuǎn)換成角度位移,再轉(zhuǎn)變成數(shù)字量,然后與按鈕狀態(tài)統(tǒng)一編碼,通過RS-232串口發(fā)出。鼠標(biāo)工作所需功率從RS-232串行接口的控制線上竊取(PS/2、USB接口鼠標(biāo)除外)。當(dāng)鼠標(biāo)被拖動(dòng)超過一個(gè)最小距離或某一按鈕被按下時(shí),它按照規(guī)定的協(xié)議將移動(dòng)距離和按鈕狀態(tài)通過一次或幾次信息發(fā)送到機(jī);主機(jī)上的鼠標(biāo)驅(qū)動(dòng)程序?qū)⑿畔⒆儞Q成鼠標(biāo)位置和按鈕狀態(tài)供其它程序模塊調(diào)用。每發(fā)生一次移動(dòng)或按鈕狀態(tài)變化,鼠標(biāo)向上發(fā)送一次信息。通常一般鼠標(biāo)的分辨率為400DPI。理論上即沿著某一方向每拖動(dòng)一英寸(一般速度),會(huì)產(chǎn)生400次信息發(fā)送過程。,如果拖動(dòng)較快,則信息發(fā)送次數(shù)送減少,但所反映的總的移動(dòng)距離仍然是400步。

各種串行接口鼠標(biāo)在物理層普遍采用標(biāo)準(zhǔn)的串行通信協(xié)議,波特率為1200bps。幀格式為7個(gè)數(shù)據(jù)位、2個(gè)停止位,無奇偶校驗(yàn)位。上層協(xié)議則在此基礎(chǔ)上以十六進(jìn)制數(shù)形式直接發(fā)更新鼠標(biāo)信息,包括:初始化報(bào)告:移動(dòng)方向、距離、按鈕狀態(tài)。其一般形式如表1所示。

表1 鼠標(biāo)信息發(fā)送格式

序 號(hào)名 稱字串形式長 度意 義說 明1初始化報(bào)告4DH('M')1字節(jié)聲明初始化結(jié)束加電時(shí)發(fā)送一次2移動(dòng)、按鈕P1、P2、P33字節(jié)反映按鈕狀態(tài)、移動(dòng)方向和距離移動(dòng)或按鈕操作時(shí)發(fā)送

上述P1、P2、P3三個(gè)參數(shù)說明:

P1_D7D6固定值01;D1D0=11本次鼠標(biāo)移動(dòng)包含左右移動(dòng)分量;D3D2=11本次鼠標(biāo)移動(dòng)包含上下移動(dòng)分量;D4=1目前鼠標(biāo)右鍵呈按下狀態(tài);D5=1目前鼠標(biāo)左鍵呈按下狀態(tài)(D4D5=00則鍵呈釋放狀態(tài))。

P2_D7D6固定值00;其余六位表示一個(gè)有符號(hào)二進(jìn)制數(shù),反映左右移動(dòng)量,大于0為向右移動(dòng),小于0為向左移動(dòng)。

P3_D7D6固定值00;其余六位表示一個(gè)有符號(hào)二進(jìn)制數(shù),反映上下移動(dòng)量,大于0為向下移動(dòng),小于0為向上移動(dòng)。

例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反饋出鼠標(biāo)向右移動(dòng)了2個(gè)單位,向上移動(dòng)了6個(gè)單位,目前左鍵按下。

2 鼠標(biāo)接口程序設(shè)計(jì)

80C196系列單片機(jī)內(nèi)設(shè)RS-232收發(fā)器,但需要配置接口芯片實(shí)現(xiàn)電平轉(zhuǎn)換??紤]到鼠標(biāo)從串口竊取功率,接口芯片必須具有一定的驅(qū)動(dòng)能力,而不能要用簡單的準(zhǔn)RS-232電平轉(zhuǎn)換器。這里采用MAX232E作為接口芯片。

圖1中左側(cè)為80C196單片機(jī),P2.0(TXD)、P2.1(RXD)通過MAX232E形成滿足鼠標(biāo)要求的串行接口,包括生成標(biāo)準(zhǔn)RS-232C電平和提供電源供應(yīng)。圖1中最右邊為9針或24針標(biāo)準(zhǔn)串行接插件。由于鼠標(biāo)的電源供應(yīng)采用功率竊取方案,由DTR/RTS提供,這里為DTR加限流電阻防止對鼠標(biāo)造成傷害。RTS由MAX232E垢信號(hào)發(fā)送端提供,通過80C196的P2.0控制MAX232E的10腳(對應(yīng)的輸出腳為7腳)電平高低以改變7腳電位,使鼠標(biāo)可以接收來自RTS的控制命令,以實(shí)現(xiàn)鼠標(biāo)安裝與否的檢測。MAX232E的11腳(對應(yīng)的輸入腳為14腳)設(shè)備高電平以保證14腳電位為負(fù)RS-232電位,滿足鼠標(biāo)發(fā)送信號(hào)時(shí)的電平要求。

從鏈路層看,80C196串行接口的四種工作方式均不滿足鼠標(biāo)的幀格式要求;但其工作方式1(1位起始位、8位數(shù)據(jù)位、1位停止位)的總傳送位數(shù)與鼠標(biāo)(1位起始位、7個(gè)數(shù)據(jù)位、2個(gè)停止位)相同,均為10位。接收過程中80C196收到7個(gè)數(shù)據(jù)位后,將2個(gè)停止位中的第一個(gè)作為數(shù)據(jù)位裝入接收緩沖器的最高位,由于停止位在物理層是高電平,作為數(shù)據(jù)被接收后相當(dāng)于邏輯“0”;剩下的第二個(gè)停止位給好為80C196提供了有效的停止位。利用80C196的工作方式1完全可以保證正確接收鼠標(biāo)信息。

單片機(jī)起動(dòng)后,通過鼠標(biāo)驅(qū)動(dòng)模塊對鼠標(biāo)進(jìn)行初始化,即通過P2.0使RTS電平翻轉(zhuǎn)一次而令鼠標(biāo)發(fā)送初始化報(bào)告,以確認(rèn)鼠標(biāo)是否安裝。之后,鼠標(biāo)即可隨著拖動(dòng)或按鈕操作向單片機(jī)發(fā)送動(dòng)作信息,經(jīng)接口模塊釋放即可反應(yīng)鼠標(biāo)位置和按鈕狀態(tài)。

鼠標(biāo)接口模塊主要包括按鈕狀態(tài)識(shí)別和位置識(shí)別兩個(gè)部分。80C196將根據(jù)接收到的鼠標(biāo)信息不斷刷新鼠標(biāo)信息緩沖區(qū)。由于鼠標(biāo)事件間隔不確定,采用掃描方式但會(huì)浪費(fèi)CPU時(shí)間,還可能因來不及處理而丟失信息。有效的處理方法是采用中斷方式接收,應(yīng)用模塊通過軟件接口獲得鼠標(biāo)信息。完整的鼠標(biāo)接口程序流程圖如圖2所示。在初始化階段,首先檢查鼠標(biāo)是否存在,根據(jù)結(jié)果設(shè)置標(biāo)志位,以備以后取鼠標(biāo)信息時(shí)判斷用;根據(jù)需要設(shè)定鼠標(biāo)初始化位置、按鈕原始狀態(tài);最后設(shè)置串行接口參數(shù)(幀格式等)并開放鼠標(biāo)中斷。鼠標(biāo)發(fā)送信息時(shí),第三個(gè)字節(jié)為一個(gè)完整的信息報(bào)告。但80C196每接收到一個(gè)字節(jié),就產(chǎn)生一次中斷,然后根據(jù)當(dāng)前字節(jié)是否大于40H確定其性質(zhì)。若是信息報(bào)告的首字節(jié),則還要進(jìn)一步通過有效性檢驗(yàn)后保存;若不是首字節(jié),則必須經(jīng)過一系列檢驗(yàn)后保存起來。收到三個(gè)字節(jié)后立即進(jìn)行命令分析和執(zhí)行。具體處理過程可參看源程序。用戶模塊通過特定接口模塊(圖2(b))獲得鼠標(biāo)當(dāng)前位置和按鈕狀,并可通過進(jìn)位標(biāo)志C=0/1判斷鼠標(biāo)是否安裝。

下面是圖2、3程序流程圖如圖對應(yīng)的程序清單。該程序要求80C196單片機(jī)的工作頻率為12MHz;如果采有其它工作頻率,通過修改串行口的波特率設(shè)置參數(shù)以及延時(shí)程序的時(shí)間常數(shù)即可。

;

;8098特殊功能寄存器預(yù)定義

R0 EQU 00H:Word

SBUD EQU 07H:Byte

INT_MASK EQU 08H:Byte

INT_PEND EQU 09H:Byte

BAUD_RT EQU 0EH:Byte

IOP2 EQU 10H:Byte

SP_CON EQU 11H:Byte

SP_STAT EQU 11H:Byte

IOC1 EQU 16H:Byte

SP EQU 18H:Word

篇2

關(guān)鍵詞 單片機(jī);C語言;TG12864;液晶顯示

中圖分類號(hào):TP271 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671—7597(2013)031-017-02

1 TG12864液晶原理

1.1 TG12864顯示原理

點(diǎn)陣式LCD其顯示原理是控制LCD點(diǎn)陣中點(diǎn)的亮暗,亮和暗的點(diǎn)陣按一定規(guī)律可以組成漢字,組成一幅圖形和曲線等。

1.2 TG12864內(nèi)部結(jié)構(gòu)及相關(guān)指令

1.2.1 TG12864內(nèi)部結(jié)構(gòu)

TG12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器、列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成,有20個(gè)外部引腳??梢杂蓡纹瑱C(jī)控制顯示8×4個(gè)16×16點(diǎn)陣漢字。

1.2.2 TG12864相關(guān)指令

該類液晶顯示模塊的指令系統(tǒng)比較簡單,總共有七種。

1)顯示開關(guān)指令。

功能:設(shè)置屏幕顯示開/關(guān),DB0=1,開顯示;DB0=0,關(guān)顯示。DB7~DB0=0x3f,開顯示;DB7~DB0=0x3e,關(guān)顯示。

2)顯示起始行設(shè)置。

功能:顯示起始行是由Z地址計(jì)數(shù)器控制的,該命令自動(dòng)將A0~A5位地址送入Z地址計(jì)數(shù)器,起始地址可以是0~63范圍內(nèi)任意一行。Z地址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃面同步,當(dāng)掃描完一行后自動(dòng)加一。DB7~DB0=0xc0,顯示從0行開始。

3)頁設(shè)置。

功能:頁地址存儲(chǔ)在X地址計(jì)數(shù)器中,A2~A0可表示8頁,讀寫數(shù)據(jù)對頁地址沒有影響,除本指令可改變頁地址外,復(fù)位信號(hào)RST可把頁地址計(jì)數(shù)器內(nèi)容清零。DB7~DB0=0xb8,顯示從0頁開始。

4)列地址設(shè)置。

功能:列地址存儲(chǔ)在Y地址計(jì)數(shù)器中,讀寫數(shù)據(jù)對列地址有影響,在對DDRAM進(jìn)行讀寫操作后,Y地址自動(dòng)加一。DB7~DB0=0x40,顯示從0列開始。

5)讀狀態(tài)。

功能:讀忙信號(hào)標(biāo)志位BF,復(fù)位標(biāo)志RST以及顯示狀態(tài)(ON/OFF)bf=1,內(nèi)部忙;bf=0,內(nèi)部空閑;res=1,正處于復(fù)位初始化狀態(tài),res=0,正常狀態(tài)。

6)寫數(shù)據(jù)。

寫數(shù)據(jù)到DDRAM,DDRAM是存儲(chǔ)圖形數(shù)據(jù)的,寫數(shù)據(jù)到DDRAM前,要先執(zhí)行設(shè)置頁地址及設(shè)置列地址命令。

7)讀數(shù)據(jù)。

從DDRAM讀數(shù)據(jù),讀數(shù)據(jù)前,要先執(zhí)行設(shè)置頁地址及設(shè)置列地址命令。

2 應(yīng)用程序設(shè)計(jì)

#include

#define uchar unsigned char

#define uint unsigned int

#define disp_on 0x3f //定義開顯示

#define disp_off 0x3e //定義關(guān)顯示

#define dis_x 0xb8 //定義顯示0頁

#define dis_y 0x40 //定義顯示0列

#define dis_z 0xc0 //定義顯示0行

#define db P0

sbit rs=P2^0;

sbit rw=P2^1;

sbit e=P2^2;

sbit cs1=P2^3;

sbit cs2=P2^4;

sbit rst=P2^5;

sbit bf=P2^6;

sbit res=P2^7;

uchar code tab[]={/*青海工業(yè)職業(yè)學(xué)校*/0x01,0x00,0x01,0x00,0x3F,0xF8,0x01...};

void check_busy(void);

void chushihua(void);

void delay(uint);

void wr_lcd(uchar,uchar);

void clear_lcd(void);

void display(void);

void _disp(uchar,uchar,uchar,uchar,uchar,uchar *);

void main() //主程序

{chushihua();display();while(1);}

void chushihua(void) //液晶初始化函數(shù)

{rst=0;delay(50);rst=1;

cs1=1;cs2=1;

wr_lcd(0,disp_off);

wr_lcd(0,disp_on);}

void wr_lcd(uchar i,uchar j) //寫液晶函數(shù)

{check_busy();

rs=i;rw=0;

db=j;e=1;

delay(1);

e=0;}

void check_busy(void) //檢測忙閑函數(shù)

{db=0xff;

rs=0;rw=1;

delay(1);

e=1;

while(res||bf==1);

e=0;}

void clear_lcd(void) //清屏函數(shù)

{uchar i,j;cs1=1;cs2=1;

wr_lcd(0,disp_on);

for(j=0;j

{wr_lcd(0,dis_x+j);

wr_lcd(0,dis_y);

wr_lcd(0,dis_z);

for(i=0;i

{wr_lcd(1,0x00);

wr_lcd(1,0x00);}

}

}

void _disp(uchar ye,uchar lie,uchar hang,uchar ls,uchar zs,uchar *ptr1) //液晶顯示函數(shù)

{ uchar i,j,m,n,a;

wr_lcd(0,disp_on);

for(m=0;m

{for(n=0;n

{for(j=0;j

{ wr_lcd(0,dis_x+j+ye+m*2); //顯示起始頁設(shè)置

wr_lcd(0,dis_z); //顯示起始行設(shè)置

wr_lcd(0,dis_y+lie+n*ls); //顯示起始列設(shè)置

a=j*ls+n*2*ls+m*zs*2*ls; //控制字的顯示數(shù)組位

for(i=0;i

{wr_lcd(1,*(ptr1+a+i));}

}

}

}

}

void display(void) //顯示主程序

{

uchar *ptr;

clear_lcd();

cs1=1;cs2=0; //開左屏顯示青海工業(yè)

ptr=&tab[0]; //取數(shù)組首地址

_disp(0,0,1,16,4,ptr); //顯示從0頁、0列開始,顯示一行,每個(gè)字16列顯示2個(gè)字

cs1=0;cs2=1; //開右屏顯示職業(yè)學(xué)校

ptr=&tab[128]; //取數(shù)組的第128個(gè)元素地址

_disp(0,0,1,16,4,ptr); //顯示從0頁、0列開始,顯示一行,每個(gè)字16列顯示2個(gè)字

}

void delay(uint x) //延時(shí)函數(shù)

{uchar i;

for(;x>0;x--)

for(i=0;i

以上程序,如果要從3頁,4列開始,在左屏顯示2行,每個(gè)字16列,共顯示4個(gè)字青海工業(yè),只要將顯示主程序改為:

void display(void)

{uchar *ptr;

clear_lcd();

cs1=1;cs2=0;

ptr=&tab[0];

_disp(3,4,2,16,2,ptr);}

上述液晶顯示程序,應(yīng)用起來靈活、方便,要將漢字顯示在液晶的什么位置,只需修改顯示主程序中_disp(0,0,1,16,4,ptr)函數(shù)中的數(shù)據(jù)即可。

3 結(jié)束語

用C語言程序來對液晶顯示模塊進(jìn)行編程控制,編程效率高,思路清晰,處理問題靈活方便,相對匯編語言有明顯的優(yōu)勢。

篇3

【關(guān)鍵詞】SDRAM;自動(dòng)化測試;設(shè)計(jì)

同步動(dòng)態(tài)隨機(jī)存取內(nèi)存(synchronous dynamic random access memory,簡稱SDRAM)為同步動(dòng)態(tài)存儲(chǔ)器,可用來臨時(shí)存放數(shù)據(jù)。SDRAM有一個(gè)同步接口,在響應(yīng)控制輸入前會(huì)等待一個(gè)時(shí)鐘信號(hào),時(shí)鐘被用來驅(qū)動(dòng)一個(gè)有限狀態(tài)機(jī),對進(jìn)入的指令進(jìn)行流水線操作,而不需要等待數(shù)據(jù)寫入存儲(chǔ)隊(duì)列的時(shí)間。 其缺點(diǎn)為掉電數(shù)據(jù)會(huì)丟失。

我公司常將SDRAM存儲(chǔ)芯片與ARM芯片配合使用,而用戶燒寫的程序運(yùn)行在SDRAM上,如果該芯片出現(xiàn)問題,用戶程序?qū)⒉荒苷_\(yùn)行,而導(dǎo)致未知的問題,甚至可以導(dǎo)致裝置無法正常工作。因而對SDRAM存儲(chǔ)芯片內(nèi)存單元讀寫的測試可有效由于SDRAM內(nèi)存單元、地址線和數(shù)據(jù)線的問題導(dǎo)致的設(shè)備發(fā)生異常,并且實(shí)現(xiàn)測試自動(dòng)化,節(jié)省了測試時(shí)間,也保證了測試的精度。

1.測試策略及組網(wǎng)

本次測試開始時(shí),曾設(shè)計(jì)3種測試方案:

方案1:使用產(chǎn)品代碼的基礎(chǔ)上進(jìn)行修改

優(yōu)點(diǎn)是工作量小,修改較小。

缺點(diǎn)是由于用戶程序直接在SDRAM上運(yùn)行,生成的變量直接保存到SDRAM中,并且程序運(yùn)行的過程中串口緩沖區(qū)和顯示緩沖區(qū)直接保存到SDRAM中,導(dǎo)致某些區(qū)域無法進(jìn)行測試,所以放棄該方案。

方案2:通過移植UBOOT進(jìn)行測試

優(yōu)點(diǎn)是工作量小,修改較小,測試原理成熟。

缺點(diǎn)是uboot的代碼和堆、棧空間0x10000000處開始,這些空間是不能被刷的,否則就掛死,所以放棄該方案。

方案3:通過修改BOOTLOADER進(jìn)行測試

優(yōu)點(diǎn)是工作量小,修改較小,可以對整個(gè)SDRAM進(jìn)行完全測試。

缺點(diǎn)是呈現(xiàn)給操作者的結(jié)果不夠直觀,需要測試者具有一定的編程基礎(chǔ)。

最終選擇第3種測試方案。

2.測試環(huán)境與測試儀器

搭建測試環(huán)境:①筆記本電腦一臺(tái),型號(hào):X230I;②硬件仿真工具一套,型號(hào):JLINK③硬件仿真軟件,型號(hào):AXD

3.測試內(nèi)容

3.1 數(shù)據(jù)線的連接測試

數(shù)據(jù)線的連接可能存在兩種錯(cuò)誤,一種是被斷開,另一種布線或生產(chǎn)造成互相短路。Denx設(shè)計(jì)的數(shù)據(jù)線檢測算法檢測數(shù)據(jù)線的連接錯(cuò)誤:以64位地址線為例,pattern=0b101010101010101010.... 能檢測出奇偶位之間的數(shù)據(jù)錯(cuò)誤。如果這個(gè)錯(cuò)誤被排除,每兩根數(shù)據(jù)線組成一組(這是理解下一個(gè)pattern的關(guān)鍵),再用相同的辦法,檢測每相鄰兩組之間是否有短路,就得到第二個(gè)pattern,就是 0b110011001100...... 依次類推,相繼寫入并讀出這6個(gè)pattern分別是 0xaaaaaaaaaaaaaaaa,0xcccccccccccccccc,0xf0f0f0f0f0f0f0f0,0xff00ff00ff00ff00,0xffff0000ffff0000,0xffffffff00000000就能驗(yàn)證是否存在數(shù)據(jù)線交叉短路錯(cuò)誤。

3.2 地址線錯(cuò)誤測試

如果地址線存在錯(cuò)誤,其癥狀是地址空間中的兩個(gè)不同位置被映射到同一物理存儲(chǔ)位置。更通俗地講,就是寫一個(gè)位置卻“改變”了另一個(gè)位置。

地址線的錯(cuò)誤檢測相對簡單,其算法是:

(1)將地址的值作為內(nèi)容寫入該地址處,匯編的表示方法是(addr)=addr。即將地址值寫到地址對應(yīng)的空間里,這樣確保每一個(gè)位置的內(nèi)容不同。

(2)依次將內(nèi)存基地址的某一根地址線的值翻轉(zhuǎn)(flip/toggle)得到某個(gè)地址,從該地址取值,如果該值和基地址的值相等,則表示某一位地址線有問題。

這個(gè)算法的特點(diǎn)是每次只檢測一根地址線,方法簡單有效。

3.3 SDRAM內(nèi)存單元讀寫測試

(1)點(diǎn)擊菜單欄“Execute”―“Go”命令,程序全速運(yùn)行。

(2)測試者等待XX分鐘,函數(shù)指針跳轉(zhuǎn)到Main函數(shù),看到提示則測試成功,如圖1所示:

圖1

(3)測試者等待XX分鐘,未看到上圖所示,用戶點(diǎn)擊菜單欄“Execute”―“Stop”命令,測試程序?qū)⑼V埂?/p>

(4)點(diǎn)擊菜單欄“Processor Views”―“Registers”命令,查看“Current”―“R2”的Value值,該值即為內(nèi)存單元讀寫錯(cuò)誤單元。如圖2所示:

圖2

結(jié)果要求:SDRAM內(nèi)存單元讀寫正確,測試者看到測試成功圖即圖1。

3.4 測試說明

本次測試時(shí)僅對SDRAM內(nèi)存單元正確性進(jìn)行測試。

存儲(chǔ)單元的檢測則是真正對DDR內(nèi)存芯片的檢測。內(nèi)存芯片的常見錯(cuò)誤是bit-stuck,簡而言之,就是讓它是0,它偏為1,讓它為1,它偏為0,檢測方法也很簡單,就是用不同的pattern去寫盡可能所有的地址并讀回比較。因此測試數(shù)據(jù)選擇0x55555555,0xAAAAAAAA。

篇4

關(guān)鍵詞:高等院校;微機(jī)原理;單片機(jī);教學(xué)改革

中圖分類號(hào):G642.423 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2012)07-0074-03

0 引 言

微機(jī)原理及應(yīng)用和單片機(jī)原理及應(yīng)用是現(xiàn)今大多數(shù)院校自動(dòng)化、電氣自動(dòng)化等信息工程類專業(yè)的重要課程。微機(jī)原理偏向于原理性的介紹,涉及的實(shí)驗(yàn)比較簡單;而單片機(jī)則更偏向于應(yīng)用性,涉及的實(shí)驗(yàn)較多。這兩門課程的實(shí)驗(yàn)過程及使用的芯片及編程的的方式非常類似。大多數(shù)院校選擇先開設(shè)微機(jī)原理的課程,在隨后的一個(gè)學(xué)期開設(shè)單片機(jī)的課程。這樣的選擇在邏輯上沒有錯(cuò)誤,可畢竟這兩門課程有很大的相似之處,但又有各自的特點(diǎn)。微機(jī)原理和單片機(jī)的內(nèi)容既相關(guān)又有明顯的區(qū)別,前后開課會(huì)使得學(xué)生可能產(chǎn)生忘了前面、記不住后面的感覺,同時(shí)兩門課的相似點(diǎn)又使得學(xué)生區(qū)分不清,對內(nèi)容產(chǎn)生混淆。而實(shí)驗(yàn)的環(huán)節(jié),用的實(shí)驗(yàn)箱不同,雖然芯片不同,學(xué)生也僅僅為做而做。在實(shí)際教學(xué)中,會(huì)經(jīng)常碰到學(xué)生提出“微機(jī)原理的匯編語言編程要分段(segment),而單片機(jī)的匯編語言編程為何不分段”、“微機(jī)原理課里的標(biāo)志寄存器有16位,為什么單片機(jī)里才有8位”等問題。此外,這兩門課一般都由同一位教師講授,教師備課時(shí)不由得對比著備課,在教學(xué)中自然把兩門課相關(guān)知識(shí)點(diǎn)進(jìn)行描述或比較,使得單一門課程的教學(xué)時(shí)間無形中被占用。對此,以筆者實(shí)際的教學(xué)經(jīng)驗(yàn),現(xiàn)對這兩門課程的教學(xué)改革進(jìn)行一些探討。

1 課程改革思路

微機(jī)原理及應(yīng)用課程主要是幫助學(xué)生理解計(jì)算機(jī)的原理和結(jié)構(gòu),通過學(xué)習(xí),使學(xué)生熟悉一款比較經(jīng)典的CPU和以該CPU為中心的總線、存儲(chǔ)器存儲(chǔ)過程等數(shù)據(jù)處理以及用匯編語言編寫程序的方法;同時(shí),還涉及了諸如8255、8259A等一些芯片的運(yùn)用及接口編程知識(shí),微機(jī)原理及應(yīng)用偏向于原理性的闡述。而單片機(jī)原理及應(yīng)用課程主要是針對某類型已經(jīng)非常成熟的單片機(jī)型號(hào),幫助學(xué)生學(xué)會(huì)如何使用單片微型機(jī)以及針對實(shí)現(xiàn)不同的功能進(jìn)行編程的知識(shí),該課程更偏向于應(yīng)用。

這兩門課程的內(nèi)容既有很大交叉,又有各自的特點(diǎn):微機(jī)原理及應(yīng)用理論更系統(tǒng),單片機(jī)應(yīng)用性更強(qiáng)。獨(dú)立開設(shè)兩門課程,不可避免地會(huì)出現(xiàn)知識(shí)點(diǎn)的重復(fù)和各自重點(diǎn)的缺失。由此,針對這兩門課程授課過程中的不足,筆者有了對這兩門課程進(jìn)行改革的想法。即:同步開課,結(jié)合實(shí)際教授理論內(nèi)容,合理分配實(shí)驗(yàn)學(xué)時(shí)等。

2 教學(xué)方面

2.1 教學(xué)內(nèi)容

在理論教學(xué)方面,筆者對微機(jī)原理和單片機(jī)的教學(xué)內(nèi)容進(jìn)行了整合。微機(jī)原理基于馮·諾依曼結(jié)構(gòu),這種理論更易于學(xué)生了解計(jì)算機(jī)體系和計(jì)算機(jī)系統(tǒng)的工作方式;單片機(jī)本質(zhì)上也是計(jì)算機(jī)系統(tǒng),只是性能弱,功能單一。因此,在理論講課過程中,應(yīng)該以微機(jī)原理為主,同時(shí)針對微機(jī)原理和單片機(jī)的明顯不同,比如同是45H,在微機(jī)原理中是立即數(shù),在單片機(jī)中是存儲(chǔ)的地址等,在這方面加以重點(diǎn)講解。微機(jī)原理的內(nèi)容較多,涉及面廣,如果對知識(shí)點(diǎn)面面俱到,不僅時(shí)間不夠,而且學(xué)生的學(xué)習(xí)積極性肯定不高。單片機(jī)原理課程主要基于80C51單片機(jī)進(jìn)行講解,并介紹單片機(jī)的特點(diǎn)、在片資源、匯編語言編程、片內(nèi)接口及中斷、通信及A/D、D/A轉(zhuǎn)換等。在這當(dāng)中,肯定會(huì)遇到一些和微機(jī)原理相沖突的地方,不論講解與否,勢必會(huì)影響到后續(xù)課程講授的連貫和流暢,因此,必須要對相關(guān)內(nèi)容進(jìn)行取舍。

篇5

中圖分類號(hào):G424.1 文獻(xiàn)標(biāo)識(shí)碼:A

Application and Research of Project Approach

Course in Microcontroller Technology

WANG Wenhai

(Changsha Aeronautical Vocational and Technical College, Changsha, Hu'nan 410124)

AbstractBased on the objective and teaching characteristic of single-chip microcomputer vocational electronic speciality course, in the course of microcontroller technology, use of project-driven method of teaching can play the leading role of teachers and the main role students'; Improve teaching efficiency and the teaching quality,and cultivate students' comprehensive ability.

Key wordsmicrocontroller technology; project teaching; teaching do unity; action oriented

單片機(jī)技術(shù)是高職電子信息類學(xué)生必須掌握的一門技術(shù),同時(shí)也是高職院校電子類專業(yè)為電子產(chǎn)品調(diào)試、維修、助理設(shè)計(jì)等崗位服務(wù)的專業(yè)課程,學(xué)生不僅要掌握單片機(jī)的接口應(yīng)用的基本技能,還應(yīng)具有實(shí)際工程應(yīng)用能力。因此,具有實(shí)用性強(qiáng)、學(xué)習(xí)難度大的特點(diǎn)。

1 單片機(jī)技術(shù)課程的教學(xué)現(xiàn)狀

傳統(tǒng)的單片機(jī)課程教學(xué)中,一般開設(shè)幾十學(xué)時(shí),通常是采用“填鴨式”的教學(xué)方法、“理論教學(xué)”+“課程設(shè)計(jì)”的教學(xué)模式?!袄碚摻虒W(xué)”以講授理論為主,內(nèi)容抽象、枯燥,課程設(shè)計(jì)不過是作紙上談兵的游戲,課程的教學(xué)效果一般。

2 教學(xué)做合一的教學(xué)模式和項(xiàng)目驅(qū)動(dòng)法

“教學(xué)做合一”是指以培養(yǎng)經(jīng)濟(jì)社會(huì)發(fā)展所需要的人才為宗旨,教學(xué)活動(dòng)以做為載體和目標(biāo),在做中教,在做中學(xué),在教學(xué)中推動(dòng)做,在做的基礎(chǔ)上,實(shí)現(xiàn)教學(xué)做的有機(jī)統(tǒng)一。在這種教學(xué)關(guān)系下,教師是教的主體、做的主導(dǎo),主要任務(wù)是指導(dǎo)學(xué)生學(xué);學(xué)生是學(xué)主體、做的主體。主要任務(wù)是學(xué)習(xí),通過親自做的環(huán)節(jié),學(xué)得知識(shí),掌握技能。

“項(xiàng)目教學(xué)法”是通過實(shí)施一個(gè)完整的項(xiàng)目而進(jìn)行的教學(xué)活動(dòng),其目的是在課堂教學(xué)中把理論與實(shí)踐教學(xué)有機(jī)地結(jié)合起來,充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性、培養(yǎng)學(xué)生解決實(shí)際問題的綜合能力和創(chuàng)新能力。

為解決單片機(jī)技術(shù)課程學(xué)生難學(xué)、教學(xué)效率低下和教學(xué)質(zhì)量一般的問題,進(jìn)行教學(xué)改革:打破“理論教學(xué)”+“課程設(shè)計(jì)”的教學(xué)模式采用教學(xué)做合一的教學(xué)模式,拋棄“填鴨式”的教學(xué)方法采用項(xiàng)目驅(qū)動(dòng)法是一種有效的舉措。

3 單片機(jī)技術(shù)課程教學(xué)項(xiàng)目的設(shè)計(jì)

根據(jù)單片機(jī)技術(shù)的課程目標(biāo)、教學(xué)內(nèi)容及教學(xué)特點(diǎn),以恰當(dāng)、實(shí)用、漸進(jìn)為原則設(shè)計(jì)課程教學(xué)項(xiàng)目。筆者在教改實(shí)踐中按課程目標(biāo)把單片機(jī)技術(shù)原理論授課內(nèi)容解構(gòu),設(shè)計(jì)了六個(gè)項(xiàng)目,如下:

3.1 廣告燈的設(shè)計(jì)制作

項(xiàng)目要求:①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制;③8位發(fā)光二極管作顯示;④廣告燈輪流閃爍時(shí)間為0.2秒;⑤發(fā)揮:增加1-2種顯示模式。

項(xiàng)目任務(wù):①擬定總體設(shè)計(jì)制作方案;②設(shè)計(jì)硬件電路;③編制軟件流程圖及設(shè)計(jì)源程序;④仿真調(diào)試;⑤安裝元件,制作廣告燈,調(diào)試功能指標(biāo);⑥完成項(xiàng)目報(bào)告。

內(nèi)容:①單片機(jī)內(nèi)部的結(jié)構(gòu);②單片機(jī)的存儲(chǔ)器;③單片機(jī)的IO口;④單片機(jī)的引腳及工作狀態(tài);⑤單片機(jī)指令系統(tǒng);⑥簡單匯編程序設(shè)計(jì);⑦工具軟件的使用。

3.2 頻率計(jì)的設(shè)計(jì)制作

項(xiàng)目要求:①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制;③數(shù)碼管作顯示;④能測1HZ-65KHZ的信號(hào)頻率,誤差允許?HZ;⑤發(fā)揮:擴(kuò)展頻率范圍等。

項(xiàng)目任務(wù): 同上。

內(nèi)容:①單片機(jī)的中斷系統(tǒng);②定時(shí)/計(jì)數(shù)器;③數(shù)碼管顯示器接口;④工具軟件的使用;⑤匯編程序設(shè)計(jì)。

3.3 電壓表的設(shè)計(jì)制作

項(xiàng)目要求:①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制,ADC0809作AD轉(zhuǎn)換器;③三位數(shù)碼管作顯示;④能測試0-5v的直流電壓;⑤發(fā)揮:增加超量程提示功能、自動(dòng)量程轉(zhuǎn)換功能等。

項(xiàng)目任務(wù):同上。

內(nèi)容:①C51程序設(shè)計(jì);②A/D轉(zhuǎn)換器與單片機(jī)技術(shù);③數(shù)碼管顯示器接口;④C51程序設(shè)計(jì)。

3.4 信號(hào)源的設(shè)計(jì)制作

項(xiàng)目要求:①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制,DAC0832作DA轉(zhuǎn)換;③三只按鍵作操作按鍵,8位數(shù)碼管作顯示;④能鍵控輸出方波、三角波、正弦波三種波形信號(hào);⑤輸出信號(hào)幅度穩(wěn)定、頻率可調(diào);⑥發(fā)揮:幅度可調(diào)、頻率可調(diào)等。

項(xiàng)目任務(wù):同上。

內(nèi)容:①D/A轉(zhuǎn)換器與單片機(jī)技術(shù);②獨(dú)立式鍵盤與單片機(jī)技術(shù);③C51程序設(shè)計(jì)。

3.5 密碼鎖的設(shè)計(jì)制作

項(xiàng)目要求: ①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制;③LCD作顯示;④具有設(shè)置、清除6位密碼的功能;⑤發(fā)揮:密碼錯(cuò)誤提示、控制電機(jī)開鎖等。

項(xiàng)目任務(wù):同上。

內(nèi)容:①矩陣式鍵盤;②液晶1602的應(yīng)用;③C51程序設(shè)計(jì)。

3.6 遠(yuǎn)程報(bào)警器的設(shè)計(jì)與制作

項(xiàng)目要求:①用keilC51、Proteus、EASY等軟件作開發(fā)工具;②用AT89C51單片機(jī)作控制,采用串行通信方式傳送數(shù)據(jù)。③主機(jī)LCD作顯示,顯示報(bào)警位置。④從機(jī)LED作顯示,具有警點(diǎn)狀態(tài)檢測、報(bào)警編號(hào)顯示的功能。⑤通信距離達(dá)8-10米;⑥發(fā)揮:記錄報(bào)警時(shí)間、位置、聲光報(bào)警等。

項(xiàng)目任務(wù):同上。

內(nèi)容:①串行通信,串行通信總線的標(biāo)準(zhǔn);②51單片機(jī)串行口及串行通信及簡單通信協(xié)議;③單片機(jī)與單片機(jī)之間通信;④端口控制;⑤C51程序設(shè)計(jì)。

4 項(xiàng)目教學(xué)法在單片機(jī)技術(shù)的課程教學(xué)中的實(shí)施

項(xiàng)目教學(xué)法在實(shí)施過程中,按照有簡單到復(fù)雜的順序?qū)嵤└鱾€(gè)項(xiàng)目,每個(gè)項(xiàng)目的實(shí)施一般以行動(dòng)導(dǎo)向教學(xué)原則為指導(dǎo)教學(xué)過程分采用資訊、計(jì)劃、決策、實(shí)施、檢測、評(píng)價(jià)六個(gè)階段按四個(gè)步驟實(shí)施。第一步資訊,教師提出項(xiàng)目要求與任務(wù)。在老師的引導(dǎo)下,學(xué)生明確要做什么?要學(xué)什么?老師通過案例、演示等對學(xué)生進(jìn)行個(gè)別或集體的指導(dǎo),使學(xué)生基本具備完成項(xiàng)目的能力。第二步計(jì)劃與決策,學(xué)生在老師的主導(dǎo)下制訂完成項(xiàng)目的實(shí)施方案。第三步實(shí)施,學(xué)生按計(jì)劃與方案完成項(xiàng)目任務(wù)。學(xué)生通過實(shí)施發(fā)現(xiàn)問題、解決問題、習(xí)得知識(shí),培養(yǎng)技能。老師進(jìn)行個(gè)別的提示性的指導(dǎo)。第四步檢查與評(píng)價(jià),老師、學(xué)生分別對學(xué)生項(xiàng)目完成的數(shù)量與質(zhì)量進(jìn)行檢查,根據(jù)評(píng)價(jià)標(biāo)準(zhǔn)做出評(píng)價(jià)與評(píng)分。學(xué)生的自省,老師的點(diǎn)評(píng),使學(xué)生的知識(shí)與技能得以完善與提高。實(shí)施中,教學(xué)過程與項(xiàng)目完成過程相統(tǒng)一,學(xué)生在做中學(xué)、老師在做中教,獲得知識(shí)與培養(yǎng)能力相統(tǒng)一。

5 結(jié)束語

通過多年的改革實(shí)踐,項(xiàng)目教學(xué)法符合教學(xué)做合一的教學(xué)模式,提高了教學(xué)效率和教學(xué)質(zhì)量,值得推廣。但應(yīng)用時(shí)要注意:項(xiàng)目的設(shè)計(jì)要恰當(dāng)、實(shí)用、漸進(jìn),教學(xué)實(shí)施要導(dǎo)向,老師指導(dǎo)要科學(xué),評(píng)價(jià)標(biāo)準(zhǔn)要合理、評(píng)分要公正。

課題來源:本文系長沙航空職業(yè)技術(shù)學(xué)院教改課題成果

參考文獻(xiàn)

[1]姜大源.當(dāng)代職業(yè)教育主流教學(xué)思想研究.北京:清華大學(xué)出版社,2007.4.

篇6

關(guān)鍵詞 MATLAB;單片機(jī);波形發(fā)生器

中圖分類號(hào)TP36 文獻(xiàn)標(biāo)識(shí)碼A 文章編號(hào) 1674-6708(2013)96-0208-02

在工業(yè)制造與日常研究過程里,往往需要一些可以靈活產(chǎn)生、周期與峰值等參數(shù)能方便調(diào)節(jié)、功能擴(kuò)展性強(qiáng)的信號(hào),這樣的特定需求通常都難以實(shí)現(xiàn)。本次設(shè)計(jì)的系統(tǒng)利用MATLAB與C51語言制作的波形發(fā)生器,能很好地解決這些問題,而且費(fèi)用不高、實(shí)用性強(qiáng),實(shí)現(xiàn)了硬件電路軟件化的設(shè)計(jì)。

1系統(tǒng)硬件設(shè)計(jì)

2.3.2“握手”通信處理程序

2.3.3接收子程序設(shè)計(jì)

2.3.4傳送子程序設(shè)計(jì)

本系統(tǒng)發(fā)送數(shù)據(jù)是用串行模式1來進(jìn)行的,由TXD端口一次送出10個(gè)位的數(shù)據(jù)。其中起始位和結(jié)束位分別位于一頭一尾,夾在中間的是8個(gè)數(shù)據(jù)位(校驗(yàn)檢查可選)。 如果串口完成了初始化工作,CPU就能執(zhí)行1條寫入SBUF指令啟動(dòng)發(fā)送器來實(shí)施數(shù)據(jù)的傳送。在傳輸過程中,當(dāng)10個(gè)串行位完成輸出,SCON的位1(TI)便會(huì)置為1,表明能夠繼續(xù)進(jìn)行下一批數(shù)據(jù)的送出操作。在程序設(shè)計(jì)中當(dāng)監(jiān)控到TI=1,便將數(shù)據(jù)寫入SBUF寄存器,之后再將TI位清0。具體程序設(shè)計(jì)如下:

2.3.5波形輸出子程序設(shè)計(jì)

3軟件運(yùn)行結(jié)果

本次設(shè)計(jì)的所用的matlab編程軟件只用來生成波形數(shù)據(jù),而波形的周期是使用單片機(jī)來控制的。在對單片機(jī)控制編程中c語言是一種強(qiáng)有力的程序設(shè)計(jì)語言,然而有些時(shí)候c語言程序還是無法完全控制程序的工作,遇到一些必須精確計(jì)算指令執(zhí)行工作時(shí)間的控制問題,則一定得用匯編語言來設(shè)計(jì)了。

參考文獻(xiàn)

[1]馬崇良.單片微型計(jì)算機(jī)原理及應(yīng)用[M]中國紡織出版社, 1996.

[2]張毅坤,陳善久.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安電子科技大學(xué)出版社, 1998,9.

篇7

【關(guān)鍵詞】MCGS組態(tài)軟件M51單片機(jī)

一、通訊系統(tǒng)軟件設(shè)計(jì)

1.前言。電話遠(yuǎn)程智能控制系統(tǒng)實(shí)現(xiàn)當(dāng)用戶離開用電設(shè)備時(shí),依然可以遠(yuǎn)程通過電話手機(jī)遙控家里的用電設(shè)備。對被控對象進(jìn)行實(shí)時(shí)監(jiān)控,對家電進(jìn)行全方位實(shí)時(shí)管理。同時(shí)通過雙上位機(jī)人性化的監(jiān)控界面。上位機(jī)通過MCGS組態(tài)軟件編程對下位機(jī)進(jìn)行監(jiān)控,在本設(shè)計(jì)中它與下位機(jī)的通信端口為COM1。

2.MCGS與單片機(jī)的通訊。MCGS是目前較常見的一種工業(yè)控制通用組態(tài)軟件,可以利用它十分方便地構(gòu)成了分布式系統(tǒng)的監(jiān)控畫面,動(dòng)態(tài)顯示控制設(shè)備的運(yùn)行狀態(tài)、實(shí)時(shí)、歷時(shí)曲線和報(bào)表、上下限報(bào)警等。他是一套基于Windows平臺(tái)的,為工業(yè)過程控制和實(shí)時(shí)監(jiān)控服務(wù)的32位全中文界面組態(tài)軟件系統(tǒng)。為了與現(xiàn)場設(shè)備進(jìn)行交互,它提供了國內(nèi)外各種常用的工控設(shè)備的驅(qū)動(dòng)程序,但基本上是與PLC,DSP等設(shè)備的數(shù)據(jù)交互通訊。如果用MCGS與單片機(jī)實(shí)現(xiàn)實(shí)時(shí)通訊,則需要利用MCGS驅(qū)動(dòng)開發(fā)工具對某一具體的通訊協(xié)議進(jìn)行單獨(dú)的開發(fā)。設(shè)計(jì)者只需要經(jīng)過簡單的參數(shù)設(shè)定,輸入,就可以編程出為自己項(xiàng)目所用的獨(dú)立的dll構(gòu)件。

MCGS用Active DLL構(gòu)件的方式來實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序,通過規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個(gè)整體,所以MCGS把設(shè)備驅(qū)動(dòng)程序叫做設(shè)備驅(qū)動(dòng)構(gòu)件。MCGS設(shè)備構(gòu)件的實(shí)現(xiàn)方法和原理與標(biāo)準(zhǔn)VB的ActiveDLL完全一致,但MCGS規(guī)定了一套接口規(guī)范,只有遵守這些接口規(guī)范的ActiveDLL才能用作MCGS的設(shè)備驅(qū)動(dòng)構(gòu)件。它必須具有如下5個(gè)屬性和8個(gè)方法:

用戶根據(jù)自己的協(xié)議要求編寫成功dll構(gòu)件之后,在MCGS開發(fā)環(huán)境中打開串口父設(shè)備,添加做好的電話遠(yuǎn)程控制的dll構(gòu)件。

二、硬件電路設(shè)計(jì)

本設(shè)計(jì)硬件部分主要是由兩部分組成。外線DTMF雙音頻碼譯碼電路和家用電器控制電路。其中主要部分是DTMF譯碼電路。該電路由MT8880作為DTMF譯碼芯片,由AT89C52接收MT8880的D0~D3引腳采集的16進(jìn)制碼,將所得到的碼反映到相對應(yīng)的引腳上,從而控制不同的用電設(shè)備。

三、程序設(shè)計(jì)

篇8

關(guān)鍵詞 單片機(jī);智能;車位鎖;藍(lán)牙

中圖分類號(hào) G2 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2017)183-0076-02

現(xiàn)代工作生活中,汽車已走進(jìn)千家萬戶,它給我們帶來的除了出行的迅速與便捷之外,還帶來了停車難、亂停車、車位被占等一系列問題,停車位的優(yōu)化管理成為了一個(gè)普遍且亟待解決的社會(huì)問題。若設(shè)計(jì)一種基于單片機(jī)控制的藍(lán)牙車位鎖,實(shí)現(xiàn)對車位鎖的智能化控制,讓車主不用下車去手動(dòng)開關(guān)車位鎖,直接在車內(nèi)通過手機(jī)藍(lán)牙軟件來操縱車位鎖的升降,這樣就大大提高了車位鎖的實(shí)用性和便捷性。

1 車位鎖系統(tǒng)設(shè)計(jì)方案

通過功能需求分析,需要設(shè)計(jì)單片機(jī)控制電路,超聲波測距模塊,步進(jìn)電機(jī)驅(qū)動(dòng)模塊,藍(lán)牙通信模塊等來完成以下功能:用戶通過手機(jī)控制車位鎖的升降、實(shí)時(shí)反饋車置信息給手機(jī)、提示用戶控制車位鎖升降等。對于手機(jī)與單片機(jī)間的通信模塊,選擇使用藍(lán)牙通信,相較于紅外遙控和WiFi,藍(lán)牙有著獨(dú)特的優(yōu)勢,它不像紅外遙控,必須要對準(zhǔn)其接受窗才能讓單片機(jī)接收到信號(hào),也不像WiFi那樣需要有WiFi覆蓋點(diǎn)和高額的成本。使用藍(lán)牙通信,只需手機(jī)與單片機(jī)點(diǎn)對點(diǎn)連接上即可進(jìn)行無死角通信,性價(jià)比最高。

2 硬件電路設(shè)計(jì)

2.1 單片機(jī)控制電路

本次設(shè)計(jì)選取51系列單片機(jī),他是一個(gè)集成了CPU、存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器和I/O口等部件的微型計(jì)算機(jī)。功耗低,性能強(qiáng),有8K在系統(tǒng)可編程Flash存儲(chǔ)器,指令代碼可兼容傳統(tǒng)的8051。通過時(shí)鐘系統(tǒng)、復(fù)位系統(tǒng)以及電源系統(tǒng)組成單片機(jī)的最小系統(tǒng),再加上超聲波電路和步進(jìn)電機(jī)驅(qū)動(dòng)電路即可滿足該智能車位鎖的硬件電路設(shè)計(jì)。

2.2 超聲波感應(yīng)電路

車輛在位以及汽車和車位鎖的相對位置信息是通過超聲波感應(yīng)電路實(shí)現(xiàn),本設(shè)計(jì)選取常見的HC-SR04超聲波模塊,其有4個(gè)接口端,VCC接直流5V,GND接地,TRIG為觸發(fā)控制信號(hào)接單片機(jī)I/O口,ECHO為回響信號(hào)也接到單片機(jī)的任一I/ O口即可。

其基本工作原理:1)采用I/O的TRIG觸發(fā)測距,要給上至少10us的高電平信號(hào)。2)自動(dòng)發(fā)送有8個(gè)40kHz的方波,感應(yīng)電路自動(dòng)檢測是否有信號(hào)返回信號(hào)。3)有信號(hào)返回時(shí),通過單片機(jī)的I/O口ECHO輸出一個(gè)高電平,該高電平的持續(xù)時(shí)間即為超聲波從發(fā)出信號(hào)到收回信號(hào)的總時(shí)間,故其測試距離=(ECHO高電平持續(xù)時(shí)間*聲速)/2,持續(xù)時(shí)間的記錄由定時(shí)器TO來完成。

2.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路

步進(jìn)電機(jī)使用ULN2003A驅(qū)動(dòng)芯片,它是一個(gè)7路的反向器電路,價(jià)格低廉,負(fù)載能力強(qiáng)且電流增益高,其輸出端允許通過的IC電流為200mA,飽和壓降1V。使用的步進(jìn)電機(jī)28BYJ-48是一種四相八拍電機(jī),他能夠?qū)㈦娒}沖信號(hào)轉(zhuǎn)換成角位移量,其工作電壓為12V,用ULN2003A驅(qū)動(dòng)能充分發(fā)揮步進(jìn)電機(jī)的功能。

將驅(qū)動(dòng)芯片的4個(gè)IN分別接到單片機(jī)的4個(gè)I/O口,作為輸入,步進(jìn)電機(jī)5根導(dǎo)線接到ULN2003A的輸出端(紅線為+)。單片機(jī)通過I/O口每給到一個(gè)脈沖信號(hào),通過驅(qū)動(dòng),步進(jìn)電C就會(huì)按照設(shè)定好的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,在程序中用for循環(huán)語句可讓其持續(xù)轉(zhuǎn)動(dòng)。通過單片機(jī)控制電機(jī)的正/反轉(zhuǎn),即可模擬車位鎖機(jī)械部分的升/降。

2.4 藍(lán)牙信息傳輸模塊

要實(shí)現(xiàn)手機(jī)與車位鎖單片機(jī)的通信,藍(lán)牙模塊是不可或缺的部分。本設(shè)計(jì)選用HC-06作為藍(lán)牙模塊,它主要采用CSR的主流藍(lán)牙芯片和藍(lán)牙V2.0的標(biāo)準(zhǔn)協(xié)議。有四個(gè)重要引腳,分別是電源、地、發(fā)送和接收端。給藍(lán)牙上電后,可通過USBTTL模塊對其進(jìn)行AT模式設(shè)置(慢閃),根據(jù)用戶需要,可對其藍(lán)牙名稱、配對密碼、傳輸波特率等進(jìn)行個(gè)性化設(shè)置。

HC-06需與單片機(jī)相連,RXD與TXD交叉相連,藍(lán)牙模塊就相當(dāng)于一根無形的串口線,波特率默認(rèn)為9600,單片機(jī)串口程序初始化中波特率要設(shè)為一致。

用戶通過手機(jī)藍(lán)牙App,輸入設(shè)置好的密碼,將單片機(jī)的藍(lán)牙與手機(jī)進(jìn)行配對連接,藍(lán)牙接收到手機(jī)端通過App發(fā)送的指令后,將信號(hào)通過串口傳輸給單片機(jī)主控芯片并讓單片機(jī)做出相應(yīng)的處理,手機(jī)與單片機(jī)間的通信便得到實(shí)現(xiàn)。

3 軟件程序設(shè)計(jì)

3.1 單片機(jī)程序設(shè)計(jì)

本次設(shè)計(jì)的單片機(jī)程序是使用Keil的環(huán)境用C51編寫,首先在main()主函數(shù)中初始化各變量、定時(shí)器和串口等,然后進(jìn)入while(1)循環(huán),PC按順序流經(jīng)車位信息提示函數(shù)、車位鎖電機(jī)處理函數(shù)、查詢車位信息函數(shù),三個(gè)函數(shù)包含了所有模塊的程序,在while(1)中往復(fù)循環(huán),并伴隨著串口中斷和定時(shí)器中斷。通過串口中斷接收手機(jī)App的指令,以此完成對車位鎖的相應(yīng)控制。

3.2 手機(jī)藍(lán)牙App程序設(shè)計(jì)

使用Eclipse集成開發(fā)環(huán)境可進(jìn)行安卓程序開發(fā),一個(gè)程序工程包含布局文件和Activity控制文件。布局文件用于構(gòu)建頁面布局,Activity控制文件為整個(gè)程序的入口,后臺(tái)邏輯程序從這里開始執(zhí)行。對于安卓藍(lán)牙軟件的設(shè)計(jì),兩句代碼和用于添加手機(jī)通過軟件連接到藍(lán)牙的權(quán)限。以此為基礎(chǔ)在Activity文件中編寫代碼,設(shè)計(jì)出藍(lán)牙軟件,亦可通過互聯(lián)網(wǎng)直接下載。

4 系統(tǒng)設(shè)計(jì)的實(shí)現(xiàn)

本設(shè)計(jì)是按照上述硬件電路、軟件程序要求模擬出的智能車位鎖系統(tǒng),基本能實(shí)現(xiàn)用戶對車位鎖的智能控制,其中單片機(jī)最小系統(tǒng)使用51單片機(jī)開發(fā)板上的電路(含電機(jī)驅(qū)動(dòng)芯片),再通過杜邦線分別連接上步進(jìn)電機(jī)、藍(lán)牙模塊(已設(shè)置)和超聲波模塊,給單片機(jī)上電后,使用安卓手機(jī)打開“藍(lán)牙串口助手”軟件,輸入配對密碼,連接到車位鎖單片機(jī)藍(lán)牙,通過此軟件,任意發(fā)送單片機(jī)程序設(shè)定好的指令,可實(shí)現(xiàn)控制車位鎖(步進(jìn)電機(jī)等機(jī)械裝置)的升/降、查看車體與車位鎖相對距離、反饋車體入位/出位情況等功能。

參考文獻(xiàn)

[1]盛華,梅斌.單片機(jī)原理與應(yīng)用[M].武漢:華中科技大學(xué)出版社,2014.

篇9

摘要:現(xiàn)在單片機(jī)的程序設(shè)計(jì),C51已經(jīng)得到廣泛的推廣和應(yīng)用,算是單片機(jī)的主流設(shè)計(jì)程序,甚至可以說作為單片機(jī)開發(fā)人員必須要掌握的一門語言了。本文簡要介紹了Franklin C51交叉編譯器的特點(diǎn),較詳細(xì)地討論了C51語言程序設(shè)計(jì)的基本技巧及其與匯編語言程序的混合編程、中斷處理過程等實(shí)際問題。

關(guān)鍵詞:C51;C語言;編程

在研制單片機(jī)應(yīng)用系統(tǒng)時(shí),匯編語言是一種常用的軟件工具。它能直接操作硬件,指令的執(zhí)行速度快。但其指令系統(tǒng)的固有格式受硬件結(jié)構(gòu)的限制很大,且難于編寫與調(diào)試,可移植性也差。隨著單片機(jī)硬件性能的提高,其工作速度越來越快,因此在編寫單片機(jī)應(yīng)用系統(tǒng)程序時(shí),更著重于程序本身的編寫效率。而Franklin C51交叉編譯器是專為80C51系列單片機(jī)設(shè)計(jì)的一種高效的C語言編譯器,使用它可以縮短開發(fā)周期,降低開發(fā)成本,因此目前它已成為開發(fā)80C51系列單片機(jī)的流行工具。

一、C51的編程規(guī)范

(一)注釋

1.開始的注釋:

文件(模塊)注釋內(nèi)容:

公司名稱、版權(quán)、作者名稱、修改時(shí)間、模塊功能、背景介紹等,復(fù)雜的算法需要加上流程說明;

函數(shù)開頭的注釋內(nèi)容:

函數(shù)名稱、功能、說明 輸入、返回、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù)需要加上變量用途說明 ;

2.程序中的注釋內(nèi)容:

修改時(shí)間和作者、方便理解的注釋等。注釋內(nèi)容應(yīng)簡煉、清楚、明了,一目了然的語句不加注釋。

(二)命名:

命名必須具有一定的實(shí)際意義。

1.常量的命名:全部用大寫。

2.變量的命名:

3.結(jié)構(gòu)體命名:

4.函數(shù)的命名:

函數(shù)名首字大寫,若包含有兩個(gè)單詞的每個(gè)單詞首字母大寫。

函數(shù)原型說明包括:引用外來函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來源: 模塊名及文件名, 內(nèi)部函數(shù),只要注釋其定義文件名 ;

1.縮進(jìn):縮進(jìn)以Tab為單位,一個(gè)Tab為四個(gè)空格大小。預(yù)處理語句、全局?jǐn)?shù)據(jù)、函數(shù)原型、標(biāo)題、附加說明、函數(shù)說明、標(biāo)號(hào)等均頂格書寫。語句塊的“{”“}”配對對齊,并與其前一行對齊;

2.空格:數(shù)據(jù)和函數(shù)在其類型,修飾名稱之間適當(dāng)空格并據(jù)情況對齊。關(guān)鍵字原則上空一格,如:

if ( ... ) 等,運(yùn)算符的空格規(guī)定如下:“->”、“[”、“]”、“++”、“--”、“~”、“!”、“+”、“-”(指正負(fù)號(hào)),“&”(取址或引用)、“*”(指使用指針時(shí))等幾個(gè)運(yùn)算符兩邊不空格(其中單目運(yùn)算符系指與操作數(shù)相連的一邊),其它運(yùn)算符(包括大多數(shù)二目運(yùn)算符和三目運(yùn)算符“?:”兩邊均空一格,“(”、“)”運(yùn)算符在其內(nèi)側(cè)空一格,在作函數(shù)定義時(shí)還可據(jù)情況多空或不空格來對齊,但在函數(shù)實(shí)現(xiàn)時(shí)可以不用。

3.空行:程序文件結(jié)構(gòu)各部分之間空兩行,若不必要也可只空一行,各函數(shù)實(shí)現(xiàn)之間一般空兩行

4.修改:版本封存以后的修改一定要將老語句用/* */ 封閉,不能自行刪除或修改,并要在文件及函數(shù)的修改記錄中加以記錄。

二、C51語言程序設(shè)計(jì)的基本技巧

C語言是一種高級(jí)程序設(shè)計(jì)語言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。對于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會(huì)引起整個(gè)程序管理的混亂,還可增強(qiáng)可讀性,移植性也好。

在程序設(shè)計(jì)過程中,要充分利用C51語言的預(yù)處理命令。對于一些常用的常數(shù),如TRUE,F(xiàn)ALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據(jù)外界條件可變的常量,可采用宏定義"#define"或集中起來放在一個(gè)頭文件中進(jìn)行定義,再采用文件包含命令"#include"將其加入到程序中去。這樣當(dāng)需要修改某個(gè)參量時(shí),只須修改相應(yīng)的包含文件或宏定義,而不必對使用它們的每個(gè)程序文件都作修改,從而有利于文件的維護(hù)和更新。

三、C51語言與匯編語言程序的混合編程

C51編譯器能對C語言源程序進(jìn)行高效率的編譯,生成高效簡潔的代碼,在絕大多數(shù)場合采用C語言編程即可完成預(yù)期的目的。但有時(shí)為了編程直觀或某些特殊地址的處理,還須采用一定的匯編語言編程。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯(cuò)。下面就以力源公司的10位串行A/D轉(zhuǎn)換器TLC1549 為例說明C語言程序與匯編語言程序的調(diào)用。

四、C51中斷處理過程

C51編譯器支持在C源程序中直接開發(fā)中斷過程,因此減輕了使用匯編語言的繁瑣工作,提高了開發(fā)效率。中斷服務(wù)函數(shù)的完整語法如下:

void函數(shù)名(void)[模式]

[再入]interrupt n [using r]

其中n(0~31)代表中斷號(hào)。C51編譯器允許32個(gè)中斷,具體使用哪個(gè)中斷由80C51系列的芯片決定。r(0~3)代表第r組寄存器。在調(diào)用中斷函數(shù)時(shí),要求中斷過程調(diào)用的函數(shù)所使用的寄存器組必須與其相同。"再入"用于說明中斷處理函數(shù)有無"再入"能力。C51編譯器及其對C語言的擴(kuò)充允許編程者對中斷所有方面的控制和寄存器組的使用。這種支持能使編程者創(chuàng)建高效的中斷服務(wù)程序,用戶只須在C語言下關(guān)心中斷和必要的寄存器組切換操作。

四、結(jié)語

C51編譯器不但可以縮短單片機(jī)控制系統(tǒng)的開發(fā)周期,而且易于調(diào)試和維護(hù)。此外,C51語言還有許多強(qiáng)大的功能,如提供豐富的庫函數(shù)供用戶直接調(diào)用,完整的編譯控制指令為程序調(diào)試提供必要的符號(hào)信息等等。總之,C51語言是廣大單片機(jī)開發(fā)人員的強(qiáng)有力的工具。

參考文獻(xiàn):

[1]周立功.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程(三)[M].北京:北京航天航空大學(xué)出版社.2006

[2]柴鈺.單片機(jī)原理及應(yīng)用[M].北京:西安電子科技大學(xué)出版社.2009

篇10

關(guān)鍵詞:AT89C51;三線方式;串行接口;I2C

中圖分類號(hào):TP36 文獻(xiàn)標(biāo)識(shí)碼:B

文章編號(hào):1004373X(2008)0310902

Three―line Structure Design for Single Chip Series Periphery Interface Circuit

CAO Junxia1,YUAN Tonglu2

(1.Shaanxi Energy Professional and Technological Institute,Xianyang,712000,China;

2.College of Computer Science,Xi′an Shiyou University,Xi′an,710065,China)

Abstract:The paper introduces characteristics of SPI and I2C general bus protocol and its realization in MCS―51,researches scheme of single chip system,discusses its feasibility.The concrete way of realization is using Protel―99 SE to draw the schematic diagram,build the electric circuit in the experimental board with the assembly language compilation driver.To the process debugging,has realized minimum of that the system successfully.

Keywords:AT89C51;three―line control method;serial interface; I2C

SPI總線接口芯片為完成單片機(jī)的常規(guī)電路擴(kuò)展設(shè)計(jì)帶來了機(jī)遇,可擴(kuò)展的電路包括A/D與D/A轉(zhuǎn)換器、顯示、時(shí)鐘、存儲(chǔ)器、監(jiān)視復(fù)位、I/O、顯示等。本文利用國內(nèi)目前較為流行的I2C,SPI串行通信協(xié)議實(shí)現(xiàn)單片機(jī)電路的A/D轉(zhuǎn)換、 D/A轉(zhuǎn)換、時(shí)鐘、I/O擴(kuò)展、E2PROM以及LED驅(qū)動(dòng)器件的擴(kuò)展功能,實(shí)現(xiàn)了單片機(jī)系統(tǒng)功能模塊化,電路集成化的目的。

1 SPI集成接口芯片功能及應(yīng)用

1.1 A/D轉(zhuǎn)換器

單片機(jī)應(yīng)用系統(tǒng)中典型的應(yīng)用模式是通過傳感器采集現(xiàn)場的微弱信號(hào)參數(shù),經(jīng)過濾波放大處理后再通過A/D模數(shù)轉(zhuǎn)換送至單片機(jī)系統(tǒng)實(shí)現(xiàn)各種工業(yè)調(diào)節(jié)和控制,在此過程中A/D轉(zhuǎn)換電路的設(shè)計(jì)尤其重要。早期的A/D轉(zhuǎn)換器與CPU接口一般采用并行總線方式,新型A/D轉(zhuǎn)換器采用I2C,SPI總線方式可節(jié)省CPU的I/O資源,使產(chǎn)品小型化。本文中選用的A/D轉(zhuǎn)換器為SPI串行總線接口的10位模數(shù)轉(zhuǎn)換器TLC1549。

1.2 D/A轉(zhuǎn)換器

D/A轉(zhuǎn)換器的種類繁多,從接口形式而言,有串口和并口之分。目前新型的D/A轉(zhuǎn)換器大都采用了串行總線協(xié)議。D/A芯片的輸出形式有電流型和電壓型兩種,由于電流輸出形式在實(shí)際電路中必須將輸出轉(zhuǎn)換成電壓輸出。為了簡化電路和提高可靠性,本文選用電壓型的SPI串行總線接口TLC5615 D/A轉(zhuǎn)換器。

1.3 驅(qū)動(dòng)顯示器接口芯片

目前廣泛使用的顯示器件主要有LED(二極管顯示管)、LCD(液晶顯示器)和VFD(真空熒光管)等。LCD和VFD顯示器顯示成本較高,而LED顯示器造價(jià)低廉,與單片機(jī)接口方便靈活,技術(shù)上易于實(shí)現(xiàn),通常用于顯示阿拉伯?dāng)?shù)字和少數(shù)字符。本文選用LED作為顯示器件。串行總線方式的LED顯示器接口芯片與并行方式相比,僅占有CPU的少數(shù)幾根I/O口線便可實(shí)現(xiàn)LED功能,因此本設(shè)計(jì)中采用了SPI串行接口顯示驅(qū)動(dòng)芯片MAX7219。

1.4 看門狗芯片X5045

單片機(jī)應(yīng)用系統(tǒng)(或產(chǎn)品)在運(yùn)行中會(huì)受到各種各樣的干擾,導(dǎo)致系統(tǒng)內(nèi)部數(shù)據(jù)出錯(cuò)或嚴(yán)重影響程序的運(yùn)行。因此,單片機(jī)應(yīng)用系統(tǒng)的開發(fā)要考慮系統(tǒng)的可靠性設(shè)計(jì)?!翱撮T狗”是系統(tǒng)可靠性設(shè)計(jì)中的重要一環(huán)。所謂“看門狗”是指在單片機(jī)程序設(shè)計(jì)中采用的一種程序監(jiān)視技術(shù),當(dāng)單片機(jī)受到干擾失控導(dǎo)致程序跑飛或陷入死循環(huán)時(shí),通過采取一定的軟硬件措施使程序脫離死循環(huán)或重新運(yùn)行。本文中選用多功能芯片X5045。

1.5 I/O擴(kuò)展芯片PCF8574

目前,在單片機(jī)應(yīng)用系統(tǒng)的串行擴(kuò)展接口器件中,除了上述SPI總線以外,還有I2C總線。I2C總線提供了較完善的總線協(xié)議和最簡單的串行連接方式,并提供了總線操作的狀態(tài)處理軟件包。本文在設(shè)計(jì)中加入常用的I2C總線的I/O擴(kuò)展片PCF8574,用他來增加單片機(jī)的I/O口,提高單片機(jī)的外掛器件的能力。PCF8574具有低的電流損耗并有輸出鎖存功能,能輸出大電流,可直接驅(qū)動(dòng)LED發(fā)光管。

2 硬件設(shè)計(jì)

本次設(shè)計(jì)所有的接口芯片均采用串行方式,串行方式通信有單線、兩線、三線等多種方式,其中以兩線、三線最為流行。在本次設(shè)計(jì)中,主要采用三線方式,即SPI(Serial Peripheral Interface,串行接口)。設(shè)計(jì)中所用的接口器件包括A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘、存儲(chǔ)器、看門狗、I/O、LED顯示器。在本次設(shè)計(jì)中采用的是51系列的單片機(jī)作為主CPU,而他不具有SPI接口系統(tǒng),故不可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)的SPI器件直接接口。為了解決這一難題,在本設(shè)計(jì)中使用軟件來模擬SPI系統(tǒng)中的4條線:串行時(shí)鐘總線SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MOSO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線/CS。用P2.1模擬CPU的數(shù)據(jù)輸出端(MOSI),P2.0模擬CPU的數(shù)據(jù)輸入端(MOSO),P2.2 模擬CPU的SCK輸出端。接口芯片公用這三條控制線,但在這種方式下,每次只能驅(qū)動(dòng)執(zhí)行一片芯片。鑒于SPI與I2C總線電路設(shè)計(jì)、時(shí)序和程序設(shè)計(jì)的不同,又在本次設(shè)計(jì)中加入了一片I2C總線接口的I/O擴(kuò)展芯片,用P1.0來模擬SDA,用P1.1來模擬SCL,以便了解兩者的截然不同之處。硬件框圖如圖1所示。

圖1 硬件框圖

3 軟件設(shè)計(jì)

用PCF8574來擴(kuò)展I/O端口,低四位為燈,高四位為

小開關(guān),通過中斷的方法讀入I/O的狀態(tài)。經(jīng)過取高四位,打到低四位,以點(diǎn)亮或熄滅相應(yīng)的指示燈。整個(gè)系統(tǒng)在工作中,只要按下任意一個(gè)鍵都將使PCF8574產(chǎn)生中斷申請信號(hào),使CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,CPU根據(jù)按鍵的狀態(tài)控制程序轉(zhuǎn)移。按下鍵1,調(diào)用A/D轉(zhuǎn)換子程序;按下鍵2,調(diào)用顯示子程序;按下鍵3,調(diào)用D/A轉(zhuǎn)換子程序,用示波器觀察其輸出波形;按下鍵4,調(diào)用看門狗芯片X5045的工作子程序,進(jìn)行單字節(jié)的寫、讀。軟件總體流程框圖見圖2。

圖2 軟件總體流程圖

4 結(jié) 語

目前,單片機(jī)應(yīng)用系統(tǒng)的擴(kuò)展已從并行方式為主過渡到以串行方式為主的時(shí)代。許多新型器件都帶有UART的移位寄存器方式,MOTOROLA公司的SPI、NS公司的Microwire、Dallas公司的1―wire和Philips公司的I2C總線等,他們都提供了較完善的總線協(xié)議,連接方式簡單,在擴(kuò)展器件設(shè)計(jì)中得到廣泛的應(yīng)用。本文通過在設(shè)計(jì)中使用MCS―51的I/O口來模擬總線接口,實(shí)現(xiàn)了單片機(jī)與串行總線接口器件的數(shù)據(jù)傳輸,該方案已通過調(diào)試,整個(gè)單片機(jī)系統(tǒng)運(yùn)行良好。試驗(yàn)表明MCS―51的I/O口來模擬總線接口的方法在設(shè)計(jì)中可行有效。

參考文獻(xiàn)

[1]何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995.

[2]馬忠梅,籍順心,張凱,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1996.

[3]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,2000.

[4]譚浩強(qiáng).C語言程序設(shè)計(jì)教程[M].北京:高等教育出版社,2000.

[5]祝貞鳳,張躍武.TMS320F206電路典型設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,30(11):44―45,48.