單片機c語言范文

時間:2023-03-17 00:51:48

導語:如何才能寫好一篇單片機c語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

單片機c語言

篇1

Abstract: Combining 8051, the paper introduces the advantages of C-language and the programming design of C-language's relization of MCU digital blink. Though 8051 could embed assembly code at C-language programming, the complicity is obviously improved. The practice proves that if we use C-language resonablely, the equal precision with assembler language could be got at practice.

關鍵詞:單片機;C語言;應用

Key words: MCU; C-language; application

中圖分類號:TP31 文獻標識碼:A文章編號:1006-4311(2010)36-0146-01

1問題的提出

將C向MCU(俗稱單片機)8051上的移植始于20世紀80年代的中后期。客觀上講,C向8051 MCU移植的難點不少。經過Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艱若不懈的努力,終于于20世紀90年代開始而趨成熟,成為專業化的MCU高級語言了。過去長期困擾人們的所謂“高級語言產生代碼太長,運行速度太慢,因此不適合單片機使用”的致使缺點已被大幅度地克服。

2單片機C語言的優越性

2.1 不懂得單片機的指令集,也能夠編寫完美的單片機程序;

2.2 無須懂得單片機的具體硬件,也能夠編出符合硬件實際的專業水平的程序;

2.3 不同函數的數據實行覆蓋,有效利用片上有限的RAM空間;

2.4 程序具有堅固性:數據被破壞是導致程序運行異常的重要因素。C語言對數據進行了許多專業性的處理,避免了運行中間非異步的破壞;

2.5 C語言提供復雜的數據類型(數組、結構、聯合、枚舉、指針等),極大地增強了程序處理能力和靈活性;

2.6 提供auto、static、const等存儲類型和專門針對8051單片機的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址;

2.7 提供small、compact、large等編譯模式,以適應片上存儲器的大小;

2.8 中斷服務程序的現場保護和恢復,中斷向量表的填寫,是直接與單片機相關的,都由C編譯器代辦;

2.9 提供常用的標準函數庫,以供用戶直接使用;

2.10 頭文件中定義宏、說明復雜數據類型和函數原型,有利于程序的移植和支持單片機的系列化產品的開發;

2.11 有嚴格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉;

2.12 可方便地接受多種實用程序的服務:如片上資源的初始化有專門的實用程序自動生成。

3應用案例:C語言實現單片機數碼管閃爍

本應用案例中(/*此函數主要是C語言實現單片機數碼管閃爍功能。效果:1――數碼管顯示0123;2――停頓;3――數碼管顯示4567;4――無窮循環1,2,3步。*/),程序為:

#include

#include

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定義數組

int delay(int x)//聲明延遲函數

{

int j=0;

for(j;j

}

main() //主函數

{

int i,j;//定義i,j

unsigned char seg;//定義seg,用于數碼管的初始化

seg= 0xfe ;//定義seg為0xfe,即11111110;使數碼管為第一個顯示

while (1)//無窮循環

{

{ for(j=0;j

{

for(i=0;i

{

P2=seg;//初始化P2

P0=dis_code[i]; //顯示數字

delay(200);//延遲約1ms

seg=_crol_(seg,1);//數碼管右移一位

if (seg==0xef) seg=0xfe; //輸出四個數字之后停止

}

}

P2=0xff;//數碼管全不接通,把0,1,2,3消去

delay(2000000); //延遲

for(j=0;j

{

for(i=4;i

{

P2=seg; //初始化P2

P0=dis_code[i]; //顯示數字

delay(200);//延遲約1ms

seg=_crol_(seg,1);//數碼管右移一位

if (seg==0xef) seg=0xfe;//輸出四個數字之后停止

}

}

}

}

}//函數結束

篇2

關鍵詞:Protues; 密碼鎖; 單片機; C語言

中圖分類號:TN433-34文獻標識碼:A

文章編號:1004-373X(2010)19-0176-03

Design and Simulation of Electronic Code Lock Using STC89C52 MCU Based on C Language

JIN Gui, XIANG Guo-liang

(Department of Physics & Electronic Information Engineering, Xiangnan University, Chenzhou 423000, China)

Abstract: The implementation of an electronic code lock which was successfully simulated by Protues is introduced. It uses high reliable microcontroller STC89C52 to achieve the unlocking and identification of the code, adopts I2C bus-based E2PROM chip to complete the code′s storage, uses LCD1602 to prompt the program′s running state and working procedures, adopts buzzer to imitate the alarm and LED to imitate the switch. It is convenient to modify and add function by using C language program,which is more transplantable and reliable compared to assembly language.

Keywords: Protues; code lock; single chip microcomputer; C language

0 引 言

電子密碼鎖是現代生活中常用的加密工具。它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是微控制器的智能電子密碼鎖,不僅具有電子密碼鎖的功能,還可引入智能化管理功能,從而使密碼鎖具有更高的安全性和可靠性。

電子密碼鎖通常使用ARM和單片機控制[1],單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的密碼鎖常使用匯編語言編寫程序,顯示器多數用數碼管[2-3]。而本文所介紹的電子密碼鎖使用移植性及可讀性強的高級語言C語言編寫,便于修改和增減功能;同時采用顯示清楚,功率消耗小而且壽命長的1602液晶顯示器,顯示更加直觀,使用更加方便。從經濟實用的角度出發, 采用STC89C52[4]單片機設計出一種具有密碼設置、報警和防止多次試探密碼功能的電子密碼鎖,通過Protues軟件成功地進行了仿真。

1 系統工作原理

本系統以STC89C52單片機為核心,使用4×4矩陣鍵盤作為數據輸入方式,驅動1602顯示器提示程序運行過程和開鎖的步驟。本系統的密碼判斷過程如下:

當使用者輸入6位密碼后按下BESURE鍵,單片機通過密碼逐個比較,如果輸入的6位密碼和設定的密碼完全相同,那么能成功驅動開鎖模擬燈將鎖打開。若輸入6位密碼與設定的密碼不相同,按下BESURE鍵后,模擬燈不亮,可以按BACK鍵重新輸入。由于輸入密碼過程中難免輸入失誤,如果密碼輸錯,可直接按下BACK鍵重新輸入,但是系統不允許無限次地按BACK鍵,以免密碼被套用,當3次密碼輸入都錯誤,單片機將驅動蜂鳴器報警[5]。并且本系統輸入密碼還有時間限制,若在規定的時間內沒有將正確密碼輸入也會報警。

修改密碼功能如下:當密碼輸入正確后,按下SET鍵可新設置密碼。每設定一位新密碼,單片機將其送給E2PROM,當6位新密碼都輸入完畢,系統將自動回到程序開始,重新讀取密碼并保存,使用者需輸入新的密碼才能將鎖打開。

2 系統設計

2.1 硬件支持

使用的元器件有:核心芯片STC89C52、存儲芯片AT24C02、液晶顯示1602、矩陣鍵盤、報警蜂鳴器、獨立按鍵(模擬門的開關)、發光二極管(模擬鎖的開關)和┤極管(放大電流)。

2.2 軟件設計

本系統軟件包括主程序模塊、密碼比較判斷模塊、修改密碼模塊、鍵盤掃描模塊、液晶顯示模塊及定時程序等模塊。系統程序流程如圖1所示。

圖1 系統程序流程圖

2.2.1 主程序模塊

主程序主要用于定義全局變量,給全局變量賦初值,初始化E2PROM,啟動定時器以及從AT24C02[6]中讀取密碼,為整個程序提供數據。

2.2.2 密碼比較判斷模塊

該模塊的功能是將鍵盤輸入的密碼利用if語句與設定的密碼進行逐個比較,若密碼完全正確則開鎖;若不正確,則按下BACK鍵,重新輸入密碼,每按下BACK鍵一次,輸入次數將自加1,當3次都出錯則報警。

2.2.3 密碼修改模塊

在密碼輸入正確情況下,可以按下SET對密碼進行重新設置,每設定一位就將密碼送給AT24C02存儲起來,當設置6位密碼完畢后,系統將自動跳到程序開始,調用新設置的密碼。

STC89C52向AT24C02寫入密碼子程序:

void write_byte(uchar date)

{

uchar i,temp;

temp=date;

for(i=0;i

{

temp=temp

scl=0;

delay1();

sda=CY;

delay1();

scl=1;

delay1();

}

scl=0;

delay1( );

sda=1;

delay1( );

}

STC89C52從AT24C02讀取密碼子程序:

uchar read_byte()

{

uchar i,k;

scl=0;

delay1();

sda=1;

delay1();

for(i=0;i

{

scl=1;

delay1();

k=(k

scl=0;

delay1( );

}

return k;

}

2.2.4 鍵盤掃描模塊[7]

該模塊具備功能有:逐列掃描鍵盤確定被按鍵的具置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的鍵是否釋放等功能。

2.2.5 定時模塊[8]

本模塊用于對密碼輸入時間控制。在程序開始運行時首先對定時器進行了初始化,從按下PUT IN鍵開始,系統開始計時,當輸入的時間達到規定的時間將立即報警。

2.2.6 液晶顯示模塊[9]

此模塊包括液晶初始化、命令的輸入、顯示數據的輸入。其中命令是用于控制液晶狀態是否顯示光標,光標是否閃爍,是否清除原來數據以及顯示的具置。數據顯示主要是將要顯示的信息按需要準時顯示出來。

3 系統仿真

為了方便程序調試,本文采用了Proteus仿真[10],仿真圖如圖2所示。

圖2 系統仿真圖

3.1 系統介紹

圖2中U1為STC89C52是整個系統的核心,編寫的程序以二進制的文件導入其中;U2為AT24C02,┑5和第6個引腳分別與單片機的P1.2和P1.3相連;LCD1為1602液晶顯示器,引腳連接如圖2所示;獨立按鍵DOOR,當門關上為鍵按下狀態;D1為模擬開鎖燈,當密碼正確,按下BESURE鍵D1將亮;BUZ1為蜂鳴器報警。當程序編寫好并導入到單片機里后,按下┩2最下面的開始按鈕,1602液晶顯示器將提示密碼鎖的運行狀態,系統開始工作。

3.2 開鎖功能

當電源開啟時,1602液晶顯示Welcome歡迎界面,當按下PUT IN鍵后,顯示器顯示PUT IN CODES提示使用者輸入密碼,如圖3所示。幾秒后液晶顯示器上提示將自動消失。此時可輸入正確密碼,且密碼輸入時顯示*而不會將輸入的數據顯示出來。當輸入密碼完畢后,按下BESURE鍵,如果輸入的密碼正確D1將亮(D1作為開鎖的模擬開關)。若密碼錯誤,可以按下BACK鍵,程序將跳到loop(開始界面),重新輸入密碼,同時輸入次數將增加一次。當3次都輸入錯誤則自動報警,并且輸入密碼的時間必須在規定的時間完成,否則也會報警。

圖3 液晶顯示

3.3 密碼設定

在密碼輸入正確后,按下SET鍵可對密碼進行重新設置,液晶顯示器顯示SET CODS。同樣幾秒后提示信息將自動消失,此時開始重設密碼。在密碼設定過程中會將設定的數字顯示出來,每輸入一位密碼需按下YES鍵確定,當設置的密碼達到6位將自動回到啟動界面。

4 結 論

(1) 成功仿真實現了1602液晶顯示,密碼開鎖,密碼設置,防止多次試探,報警等功能。

(2) 采用C語言編寫程序,具有很強的移植性,為系統增減和修改功能帶來了方便。

參考文獻

[1]郭海英.基于單片機的電子安全密碼鎖的設計[J].現代電子技術,2005,28(13):95-97.

[2]趙益丹,徐曉林,周振峰.電子密碼鎖的系統原理、設計程序及流程圖[J].嘉興學院學報,2003(15):103-105.

[3]曾高榮,胡寧,高揚.一種新型電子安全密碼鎖的設計[J].電子科技,2003(8):44-45.

[4]張天凡.完全手冊51單片機C語言開發詳解[M].北京:電子工業出版社,2008.

[5]周功明.基于AT89C2051單片機的防盜自動報警電子密碼鎖系統的設計[J].綿陽師范學院學報,2007(4):112-115.

[6]劉振棟.EPROM芯片的特殊應用[J].電子工程師,1999(6):26-27.

[7]唐德禮,王襄.單片機學習機及編程器的設計與制作[J].現代電子技術,2005,28(12):117-120.

[8]倪淑艷,李曉波,于涵.單片機C8051F303在數字鎖相式頻率合成器中的應用[J].現代電子技術,2006,29(4):19-21.

篇3

關鍵詞:單片機;溫濕度采集;串行通訊;生態監控

中圖分類號:TP311.1 文獻標識碼:A文章編號:1007-9599 (2010) 09-0000-02

The Research of Flower Automation System Based on AT89C51 SCM

Jiang Chen,Lai Yuanzhi,Xie Heping,Zhu Tianlong

(Harbin Institute of Technology,Harbin150006,China)

Abstract:This thesis is relied on the automation of Single Chip Micyoco and related to the latest communication technology of the network.We construct a close-loop negative feedback system based on the SCM technology and provide a creative and efficient method used for the intelligent mangement of flowers. Besides,in order to attest the function of the system we conduct the experiment under the practical environment and attain the reliable data.We hope that this instrument can bring up some impressive benefits for the intelligent control and mangement of the ecology as well as supply some constructive advice for nourishing the plants

Keywords:SCM;Collection of the temperature and humidity;Serial communication;Ecology control

生態環境是人類賴以生存的根本,它是一個極其復雜的整體,因此研發一套高效、科學、智能的生態管理系統具有深遠意義。同時,現代信息技術和自動控制技術得到了飛速的發展和應用,將網絡通信技術運用到工程控制中也成為一大熱點。本課題正是利用目前計算機自動控制技術以及新興的網絡通信技術,開發一套應用于諸如為花卉生長或儲藏環境的控制及遠程操控系統,實現智能控制和調節環境因素(如溫度、濕度、光照等條件)的功能,以解決目前花卉運輸時限短、成本高的難題。

一、花卉控制系統的總體分析與設計

(一)花卉智能控制系統的總體功能

本系統主要由Atmel公司的AT89C51單片機作為總控下位機,通過其對環境參數的采集以及分析,完成數據處理,數據傳輸,外設控制以及安全報警等功能。系統主要完成以下功能:

采集環境參數:通過傳感器采集周圍環境的溫度濕度,通過光敏電阻以及模數轉換芯片完成對周圍光強的采集。

接收數據:由C51單片機的P0-P3口實時接受采集到的數據,并進行分析,篩選合理數據。

數據傳送:通過RS232協議以及RS232總線與上位計算機進行串口通訊,進行實時數據的保存,方便查閱分析。

數據顯示:將采集到的數據分時顯示在LCD屏幕上。

安全報警:對于超過闕值的環境參數,采取一定的操作進行報警。

(二)花卉智能控制系統的總體分析設計

系統整體框架如圖1-1所示。

二、花卉控制系統實現

(一)程序設計及實現

本系統程序部分采用C51語言,C51源程序結構與一般的C語言基本一致,利用C語言開發單片機程序,具有效率高,可讀性強,可移植性強等特點。編程使用的軟件是Keil u Vision3集成開發環境,它自帶C51優化交叉編譯器。生成可執行代碼快速、緊湊,在運行效率和速度上均可與匯編代碼媲美。

(二)仿真設計及實現

本系統在Proteus7.5環境下進行的仿真,針對51單片機,完成集測溫,測濕,顯示,報警于一體的閉環負反饋系統。系統主要包括一片AT89C51單片機,一個LCD屏(LM016L),兩個數字溫濕度傳感器(SHT10),一條光敏電阻,一片A/D轉換芯片(ADC0808),一片直流電機驅動器(L298),一臺電機(MOTOR),MAX232串口驅動以及若干電阻,電容,門電路,譯碼器等。在實際仿真中由于Proteus器件庫的限制,一些元件被替代為Proteus庫中功能完全相同的元件,程序設計保持不變。

1.溫濕度測量及顯示

單片機P1口連接兩個LCD顯示屏,P2.0,P2.1作為LCD的RS與RW控制信號。兩個LCD的使能端通過一個二四譯碼器控制,使得某一時刻只選通一個LCD屏。P2.5 P2.7分別連接兩個SHT10的SCK與DATA端,SCK端通過三態門控制,使某一時刻只有一個SHT10向單片機發送數據。當片選LCD1生效時,同時選通SHT10 1的SCK,使其工作,LCD2同理,通過分時工作,達到實時顯示兩個傳感器的溫濕度值。

2.光強測量

光強測量這里選用了光敏電阻,在proteus中選擇了元件TORCH_LDR,隨著光源的遠近距離變化,光敏電阻的阻值變化,引起電壓變化,在仿真時可看到volts表數據的變化。同時采用ADC0808模數轉化芯片進行模數轉換,IN0作為模擬量數據輸入,OUT1~OUT8作為數字量輸出,傳送到單片機的P1口進行接收。

3.安全報警電路

如圖2-2所示,D6代表BUZZER,程序中,設置4個標志alarm1,alarm2,alarm3,alarm4。4個標識分別用來標識兩個溫濕度傳感器的溫度和濕度,同時兩個溫度都需要報警時候,D3常亮,當只有一個溫度需要報警時候,D3閃爍,否則D3滅,濕度LED也是同樣原理,當兩個濕度都需要報警,則D4常亮,有且只有一個需要報警時候,D4閃爍,否則D4滅。D5是用來標識光強的LED,當光強過大時候D5亮,BUZZER響。只有當四個標識都不為1時候,BUZZER關,否則BUZZER鳴響。

4.電機控制

此部分電機控制風扇轉動,風扇相應SHT90 2的環境參數。由于單片機輸出電流的驅動力不足,這里采用L298直流電機驅動芯片。L298的ENA,IN1,IN2分別接在單片機的P0.0,P0.1,P0.2,由于P0口是三態口,所以連接上拉電阻以便使其正常工作。程序中通過延時實現定時。當溫度過高時,電機正轉。當濕度過高時,電機反轉。

5.串口調試

使用RS232與計算機串行通信,MAX232串口驅動。MAX232的R1OUT和T1IN分別連接單片機的P3.0/RXD , P3.1/TXD。波特率設置9600bps,單片機晶振選用11.0592MHZ。

6.晶振與復位電路

晶振選擇11.0592MHZ,方便單片機與串口RS232通信。

三、實際環境測試與應用

為了進一步檢測和提升花卉控制系統的穩定性和可靠性,我項目組與北京植物園合作,在仙人掌及多漿植物溫室進行了實地測量和研究。在實地研究中,我們修正了系統所遇到的問題,同時還在對植物的實時培育監控中得到了寶貴的數據。

在此次實地測控中,我們首先分別在溫室的不同位置進行了測量,并且與溫室的原電子溫濕度計進行了比較,驗證了數據的準確性.以下為測量中所得到的數據:

另外在測試過程中還對溫室的特殊環境進行了有針對性的測量,在溫室的風扇,濕簾處以及溫室苗床等等位置記錄了多組數據,與此同時也與原文溫濕度計進行了比較得到了相符合的數據。

在此次測控中發現硬件控制系統與某些溫濕度計存在數據不一致的問題,與所配備的新式設備進行比較后發現是原有溫濕度計存在靈敏度下降,數據有誤的問題。溫室領導隨即利用我系統修正了環境實時參數,保證了植物能夠在適宜環境下成長。

在解決問題后,我們利用本系統對產于肯尼亞,索馬里一帶的隱刺麒麟以及綺麗角兩種世界二級瀕危植物進行實時監控。采取我系統培育之前發現隱刺麒麟已存在一定枝條萎縮的情況,經過分析我們認為是原溫濕度計所測數據有誤導致了溫室環境調控延遲等現象,另外北京遭遇了近十年不遇的炎熱天氣,使得枝條萎縮情況加劇。在接下來的時間里,我們利用花卉溫室控制系統進行嚴密監控,利用所得數據,實時對溫室環境進行調整,隱刺麒麟枝條逐漸變粗,生長狀況有所改善。

結論:

本文通過對單片機技術,傳感技術以及通信技術的利用,整合信息采集模塊、控制模塊、LCD顯示模塊、安全報警模塊,完成基于單片機的集測溫,測濕,顯示,報警于一體的閉環負反饋系統。

系統在實時環境下靈敏度高,可靠性強,測量準確,適合于花卉培育等對環境條件要求較高的場合。在實際環鏡下監控植物生長,給出合理的培育調整方案,并取得了良好的結果。系統一些擴展功能還可需進一步提升,應嘗試掛接的一些更復雜的外設。如果進行功能上的完善和細化,可以運用到生態管理以及工業生產中。

參考文獻:

[1]梁凱琳.單片機技術的發展及應用[M].中小企業管理與科技,2009年12期

[2]劉攀.俞杰.張海明.基于單片機的溫度測控系統 [J].蘭州交通大學學報,2005年

篇4

關鍵詞:超聲波 測距儀 單片機

0 引言

超聲波檢測速度快、方便、計算簡單、易于實時控制,測量精度高;結合單片機及電路,通過超聲換能器,設計了具有較高重復頻率,精度高的超聲測距儀的軟硬件系統。并通過RS232串行通訊將報告測距結果傳送給計算機顯示。

1 硬件設計

MCS-51系列單片機屬于8位單片計算機,因其品種齊全,兼容性強,軟硬件資源豐富等特點,而成為8為位單片機中的主流。在此選用了MCS8751單片機。

8155芯片介紹 8155H芯片內包含有256個字節的RAM存儲器,兩個可編程的8位并行口PA和PB,一個可編程的6位并行口PC,以及一個14位減法定時器/計數器。PA口和PB口可工作于基本輸入輸出方式或選通輸入輸出方式。

數碼顯示電路 LED顯示器分為:共陰極LED顯示器的發光二極管陰極相連并接地;共陽極LED顯示器的發光二極管的陽極相連接正電壓,當某發光二極管的陰極接低電平時,二極管被點亮,顯示相應字段。

點亮顯示器有靜態和動態兩種。靜態顯示是指顯示器顯示某一字符時,相應的發光二極管恒定導通或截止;動態顯示就是一位一位地輪流點亮顯示器各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。

若顯示器的位數不大于八位,顯示器公共極電位只需一個I/O口稱為掃描口,顯示器各位所顯示的字型也需要一個八位口稱為段數據口。4位共陰極顯示器與8155的A口相連作為掃描口,經反向驅動器75452接顯示器公共極,B口作為段數據口,經同向驅動器7407接顯示器的各個極。

RS232接口電路在PC機中一般有兩個標準RS-232C串行接口COM1和COM2.MCS8751單片機片內含一個全雙工的串行接口,通過編程即可實現串行通信。然而PC機的RS-232C標準的電平采用負邏輯,規定+3V~+15V之間的任意電平為邏輯“0”,-3V~-15V之間的任意電平為邏輯“1”,計算機接口芯片大都為TTL或CMOS電平,在通信時,須進行電平轉換,以便與RS-232C標準的電平匹配。選用了MAX232芯片完成電平轉換工作。

超聲波換能器 壓電式超聲波發生器實際上是利用壓電晶體的諧振來工作的,內部有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生共振,并帶動共振板振動,產生超聲波。

超聲波傳感器采用UCM40的壓電陶瓷傳感器,它的工作電壓是40kHz的脈沖信號,發射頭為UCM40T和接收頭UCM40R配套使用。單片機在P1.0端口輸出一個40kHz的脈沖信號,經過三極管T放大,驅動超聲波發射頭UCM40T,發出40kHz的脈沖超聲波,且持續發射200ms。接收頭UCM40R,將超聲波調制脈沖變為交變電壓信號,經放大整形后加至單片機中斷入口,當信號電平由高電平躍變為低電平,作為中斷請求信號,送至單片機處理。

硬件電路 MCS8751單片機接6M晶振,同時具有上電復位和手動復位功能,P1.0口作為輸出口,輸出40KHz方波。方波信號經晶體管T放大后,送給超聲波發射頭UCM40T,驅動UCM40T發出40KHz超聲波。超聲波反射回來后,被超聲波接收頭UCM40R接收。UCM40R將超聲波信號轉換為交變電壓信號,信號由差動放大器兩級放大后送給音頻譯碼器LM567,經LM567分頻后,40KHz方波信號被選出來,此信號作為中斷輸入信號接到單片機的外部中斷入口INT0。

為了接四位LED數碼顯示,單片機需外擴一片I/O接口芯片8155。8155加上電復位電路,數據口接單片機P0口,單片機P2.0,P2.7分別接8155的CE和IO/M端。8155的PA口作為輸出口,掃描四位LED顯示器。PB口作為顯示器的段數據口。同時PA口和PB口分別加反向驅動器75452和同向驅動器7407。LED顯示器接為共陰極型。

2 軟件設計

方波發生 MCS-51單片機內有兩個可編程的定時器/計數器,具有計數器、定時器兩種工作模式及4種工作方式通過對特殊功能寄存器TCON的編程,可選擇適當的工作模式和工作方式。特殊功能寄存器用于控制T0,T1的啟動和停止計數,同時包含了T0,T1的狀態。TMOD,TCON這兩個寄存器的內容由軟件設置。

在本設計中,時鐘頻率采用6MHZ,要在P1.0上輸出一個周期為2ms的方波,方波的周期用定時器T0來確定,采用中斷的方法來實現。首先確定定時常數,根據13位定時器特性,初值應為:TH0=0F0H TL0=OCH;其次對IP,IE,TCON,TMOD的相應位進行初始化設置,并將時間常數送入定時器中。

計時程序 當M1,M0為10時,定時器/計數器工作于方式2,方式2為自動恢復初值(常數重裝入)的8位定時器/計數器,TLX作為常數緩沖器,當TLX計數溢出時,在置1溢出標志TFX的同時,還自動的將THX中的常數送至TLX,使TLX從初值開始重新計數。將T1定義方式2計數,計數初值為00H,計數從0開始。把T0(P3.4),作為外部中斷請求輸入線,即T0引腳發生負跳變時,向CPU請求中斷。

3 結論

基于MCS8751單片機利用超聲波原理設計的測距儀能完成遠距離的測量,滿足測量精度的要求,在數據通信方面還有待改進和提高,尤其是遠距離通信方面。

參考文獻:

[1]童峰,許天增.一種用于移動機器人導航的全向高精度超聲測距處理方法[J].中南工業大學學報,2000.

[2]楊勁松,王敏,黃心漢.超聲波可變閾值測距裝置[J].電子技術應用,1998(7):7-9.

篇5

關鍵詞:AT89C52;LCD顯示終端;工業控制現場

中圖分類號:TP39 文獻標識碼:A 文章編號:1674-7712 (2013) 02-0007-02

隨著工業應用環境的變化,在工業生產中應用LCD顯示技術得到了廣泛的關注。通過LCD顯示終端,可以將遠程指令進行編碼轉換,以漢字或者ASCII碼的方式顯示出來。該系統的實現需要綜合利用單片機控制系統以及相關連接器件或者芯片來完成。

一、LCD顯示終端的功能分析

為滿足工業控制和應用中的需求,通常LCD顯示終端需要具有如下幾個功能。

(1)LCD終端可以與控制部分組成一個完整系統,控制部分主要通過單片機實現。LCD終端與控制系統通過RS-485芯片實現與遠程控制主機的通信與指令接收發送。為保證工業使用需求,顯示模塊可采用單色可顯示漢字屏。

(2)LCD終端應該具有對1,2級漢字字庫和任意ASCII碼的顯示功能,為滿足該需求,終端應該具有外接圖形點陣信息存儲芯片。

(3)LCD終端應該具有緩沖區,以便于對遠程控制指令進行及時有效的更新和執行。同時,遠程指令存在不確定性,設置緩沖區可以有效預防大量信息同時涌入時所帶來的影響。

(4)為有效應對多指令同時執行需求或者分模塊控制功能,可以再終端的設計方案中引入多任務處理機制,此功能還可以很好的解決多模塊的獨立開發與調試需求。

二、LCD顯示終端的硬件設計

按照設計需求,顯示終端的硬件結構圖如下:

其中,核心部件為單片機,本系統采用AT89C52單片機,該型號單片機內置了8KB的ROM空間、256B的RAM空間,基本可以滿足功能需求。

對于譯碼器部分的硬件選擇為GAL16V8D,該邏輯編程器件可以在RTX51實時操作系統中工作,對地址進行譯碼。

工業應用中的信息顯示相對較為簡單,一塊單色320×240分辨率的LCD模塊已經可以滿足顯示需求,該模塊與單片機之間的數據和指令傳輸主要通過SED1335芯片實現。

字庫則使用27C020 OTP存儲芯片,該芯片最大存儲量為256KB,可以存儲全部系統所使用的點陣漢字庫。但是需要注意的是,該芯片的存儲容量超出了單片機的直接尋址范圍,為保證全部字庫的正常訪問,在硬件部分還要由單片機進行芯片地址線模擬擴展,具體實現方式可以使用單片機的一個I/O端口的低4位控制4-16位轉換器進行地址轉換器。

緩沖區需要采用靜態隨機存儲RAM,可使用HD62256實現。

通信電路主要用于與遠程控制端進行通信,發送當前工作狀態,接收遠程控制指令。但是單片機無法直接與計算機連接,需要使用一片RS-485芯片進行電平轉換。

蜂鳴器主要用于設定情況下的蜂鳴。

復位及看門口部分硬件電路主要是在系統出現死機或者故障時起作用。本系統使用看門狗芯片為MAX813L,可實現上電復位、手動復位、看門狗、掉電報警等功能。

三、系統的軟件實現

本功能實現使用RTX51實時操作系統,該操作系統對于按照MCS0851標準開發的單片機都可以實現有效控制,同時該系統屬于實時多任務操作系統。按照功能實現對軟件設計進行任務分解。系統任務流程如圖2所示。

(1)按照RTX51系統的使用規則,軟件任務的執行需要從0號任務開始,因此將0號任務設定為系統初始化。鑒于多任務執行時對RAM的需求較高,而0號任務執行完畢后系統處于空閑狀態,故可以將看門狗的電路控制功能添加到0號任務中。宏定義0號任務為:#define TASK_ID_INIT 0。

任務主要內容為硬件初始化,檢查62256存儲芯片是否連接,設置SED1335的工作模式。

(2)在0號任務執行完畢后開始執行系統任務即LCD顯示任務,該任務為系統運行的核心任務,故設定為任務1。該任務在執行時,LCD顯示內容和顯示時間均需由遠程控制端決定,因而該任務在實際執行時存在諸多不確定性,單獨設定該任務可以及時有效完成對顯示控制命令的解釋與執行,LCD屏幕繪制等功能。宏定義1號任務為#define TASK_DISPLAY 1

(3)系統默認提供蜂鳴報警功能。此時多任務操作系統的優勢就體現出來了,在系統中建立一個單獨的發生任務,該任務不按照單任務操作模式進行順序執行,而是可以被隨時調用相應,實現連續蜂鳴報警的目的。宏定義任務為#define TASK_ID_INIT 2。

(4)通信任務則是由遠程控制端控制的,不屬于LCD終端系統,該任務通過中斷的方式更改LCD顯示終端系統的任務屬性。

由圖2可知,系統運行時首先需要對硬件進行初始化,對各硬件進行檢查和配置,該過程完畢后系統開始建立上文所述任務,任務建立完畢后系統進入等待狀態。若遠程控制終端發來顯示控制指令,則該指令通過單片機的中斷服務程序進入系統內核。系統內核根據指令進行任務分配,同時檢測是否需要執行看門狗。各任務接到控制指令后進入執行階段,例如出現顯示任務時,系統首先從緩存區讀取顯示指令,根據指令從字庫中選取相應的顯示信息,該信息經過譯碼后傳遞給LCD顯示屏進行顯示。任務執行完畢后系統重新進入等待。

四、總結

基于單片機的LCD顯示終端可以將遠程控制端傳遞到工業現場的信息進行編譯和顯示,以便于工作人員了解當前工作狀態或者執行其他任務。該終端成本較低,穩定性和可靠性較高,可滿足一般的工業現場顯示需求,具有廣泛的應用環境。

參考文獻:

[1]李佳立.單片機的LCD顯示終端沒計分析[J].華人時刊(中旬刊),2012,2.

[2]陳京培,徐永梅.基于AT89S52單片機的液晶顯示控制電路設計[J].現代電子技術,2008,31(22).

[3]胡曉穎.基于單片機的LCD的滾動顯示[J].硅谷,2012,3.

篇6

關鍵詞:RFID 單片機 超高頻

【分類號】:TP391.44

1 引言

RFID無線射頻識別系統是一種非接觸自動識別技術,其基本原理是利用射頻信號的空間耦合的傳輸特性,實現對識別物體所帶信息的自動化讀取和識別。本文從硬件電路設計和軟件設計方面介紹了一種RFID系統中讀寫器(Reader)的實現方案,該方案以AS399x射頻芯片為核心,輔以C8051F340單片機和其他相關模塊實現。由于AS399x射頻芯片的集成資源豐富,使得外置芯片減少,電路簡單。

2 系統總體方案

2.1 RFID系統

RFID系統主要由三部分組成:

電子標簽:由天線、耦合元件及芯片組成,作為物體所帶信息的識別編碼,一般附著在目標對象上。

讀寫器:由天線、射頻電路、基帶處理電路、電源模塊以及必要的接口電路組成,對電子標簽內的信息進行采集并傳給上位機進行處理。

應用系統軟件:作為應用層軟件,對讀寫器收集來的數據進行存儲和處理。

讀寫器與電子標簽之間通過詢問、應答的方式進行雙向數據通信,讀寫器發出詢問信號,附著電子標簽的物體進入到讀寫器的工作距離范圍內后對讀寫器進行應答。讀寫通過天線接收電子便簽存儲的物體信息并上傳給上位機應用軟件進行信息存儲和處理,然后上位機把處理結果或者相關控制命令通過讀寫器和天線發回給電子標簽。

2.2 RFID讀寫器

RFID讀寫器作為中間媒介,實現電子標簽與上位機應用軟件之間的信息交流。

振蕩器:振蕩器電路產生符合RFID系統要求的射頻振蕩頻率,一路經過時鐘電路產生MCU所需要的時鐘信號,另外一路經過載波形成電路產生讀寫器工作的載波信號。

發送通道:發送通道包括編碼、調制和功率放大電路,用于向電子標簽傳送命令和寫數據。

接收通道:接收通道包括解調、解碼電路,用于接收電子標簽返回的應答信息和數據。同時還應該考慮防碰撞電路的設計。微控制器(MCU):MCU是讀寫器工作的核心,完成收發控制、向標簽發送命令和寫數據、標簽數據讀取和處理、與應用系統的高層進行通信等任務。

3 硬件電路組成

3.1射頻收發模塊

射頻收發部分是讀寫器很重要的部分,負責接收上位機系統發送到主控芯片的命令,讀寫器根據命令對數據信息進行編碼和調制,發送到電子標簽中以實現數據通信。同時,讀寫器接收來自電子標簽的信號并進行解調和解碼,再根據上位機的命令對接收的數據進行處理。

在發射電路端,集成了功率放大器(PA)、鎖相環(PLL)、壓控振蕩器(VCO)、頻率合成器、調制器等模塊;在接收電路端集成了低噪聲放大器(LNA)、混頻器(Mixer)、中頻放大器、解調器等模塊。同時還集成了電源電壓管理、協議控制等工作模塊,從而使芯片電路大大簡化。芯片控制通過32個寄存器的設置來實現全部RF、濾波及協議控制功能。收發模塊支持自動生成幀頭和CRC校驗碼,組裝成幀的數據塊通過片上的24字節FIFO寄存器傳輸到上位機系統中。電源管理模塊可以對片外MCU以及其他芯片供1.5~3.3伏電壓以及提供時鐘輸出。

片上的功率放大器(PA)具有高達20dBm的輸出功率,片上VCO和PLL可產生840MHz-960MHz的振蕩頻率。

3.2主控制器

RFID讀寫器一般使用單片機作為主控制器,主要功能是與應用系統軟件進行通信;執行從應用系統軟件發來的動作命令;控制射頻模塊與標簽的通信過程;基帶信號的編碼和解碼;執行防沖突算法:對讀寫器和標簽之間傳輸的數據進行加密和解密;進行讀寫器和標簽之間的身份認證等等。本方案中采用的是Silicon Labs公司推出的C8051F系列單片機。

C8051F340單芯片集成度十分高,片上集成了晶振電路、復位電路以及電路等豐富的模擬和數字資源。同時,C8051F340單片機內集成了電源管理模塊、USB管理模塊、JTAG接口、SPI以及UART串行接口。具有與8051兼容的高速CIP-51內核,單片機處理速度和性能都有很大的提升。高集成度使得系統所需要的芯片以及電路得到減少和簡化,從而有效降低系統功耗和成本。

3.3 其他電路

為了實現讀寫器與上位機之間通信以及擴展應用,本方案采用USB接口,并且引出TTL/UART 接口和與AS3991相連的MCU I/O口,電源3.3V、5V、GND。

此外,由AS3991射頻芯片引腳輸出的差分數據,需要轉化為單端信號并且濾波后才能通過耦合器發送出去。本方案中采用的是Balum平衡變壓器用于將雙端差分輸出轉化為單端輸出,然后經過LFCN1000 LC低通濾波器濾除噪聲,最后通過定向耦合器RCP890A05發送出去。

4 工作程序設計

4.1總體程序結構

射頻識別系統是一種實時系統。在軟件結構上,可以分成兩部分:主程序和中斷程序。主程序的主要任務是不斷進行系統自檢,和等待上位機發送信息包,若UART或USB收到正確的數據包,則發送中斷標志,處理上位機發送過來的指令,一般為啟動RFID操作標簽流程。若UART或USB沒有接收到有效的命令,則繼續循環等待。

本系統RFID讀寫器程序結構如圖5所示。系統應用層運行相關應用程序,在本設計中,集中表現為UART串口通信程序。協議層初始化讀寫器通信協議,包括IS018000 6B和EPC Gen2,確定調制編碼方式和數據格式。AS399x驅動包括初始化32個芯片寄存器和包括內部VCO和PLL、內部PA等在內的所有工作模塊。硬件底層驅動包括初始化串口和USB口,以及相關底層硬件。

4.2 程序設計

底層軟件主要是PC機通過USB接口、串口等接口與上位機進行數據交換,對讀寫器進行讀標簽信息、讀標簽或寄存器數據、寫標簽或寄存器數據、上鎖/解鎖、滅活標簽等操作。

單片機控制讀寫器持續對有效范圍進行掃描,直到出現有標簽的信息傳回,暫時停止掃描,對傳回的信息進行處理。若標簽能與讀寫器能進行匹配,則繼續對標簽的操作,包括對標簽工作狀態的轉變和數據的讀取、寫入。處理完畢后,讀寫器繼續進行掃描,重復上述步驟。則基本軟件部分應要有主控制程序控制硬件電路進行掃描,還要有中斷程序控制讀寫器對標簽的處理,另外就是通信協議部分和防碰撞算法。

5 結束語

隨著物聯網的發展,RFID技術將會有越來越大的應用空間。本文介紹了以AS399x射頻芯片為核心,配合C8051F340單片機輔以其他電路的讀寫器實現方案,由于這兩款芯片具有較高的集成度,使得系統所需要的芯片以及電路得到減少和簡化,從而有效降低系統的功耗和成本。由于一個完整的RFID系統涉及多學科交叉,如電磁場學,集成電路,高頻電路等,要完成一個完整的RFID系統,并且做到高性能指標是有很大難度的,需要大量的時間學習、實踐和改進。

參考文獻

篇7

【關鍵詞】單片機 理論與實驗 課程設計 協同教學

【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2016)31-0243-01

引言

單片機理論、實驗和課程設計相關課程體系是各高等院校電子電氣信息類工科專業基礎專業課程設置的重要組成部分,為大學生深入學習掌握單片機的基本原理,設計方法,實踐應用等打下基礎。大多數理工科高校開設這些課程,對學生進行綜合培養。對于單片機的理論與實踐教學,既可以選擇匯編語言,也可以選擇C語言進行。在高校的實際教學工作中,大多數老師是選擇匯編語言進行教學的,因為從匯編語言入手能更好的掌握單片機的硬件資源使用原理等,也有部分老師是直接使用C語言進行教學,認為匯編語言編程過于繁瑣,而C語言編程能夠在將來的實踐工作中得到更好的應用。本文通過總結作者多年來在單片機相關課程教學積累的經驗和教學研究心得,以51單片機理論、實驗和課程設計教學為例,對如何在使用不同編程語言進行繁瑣和復雜的教學中使學生更好地掌握單片機知識體系進行了探討。

1.單片機理論教學

1.1 匯編語言理論教學

單片機是一個把中央處理器CPU、數據存儲器RAM、程序存儲器ROM、并行IO接口、串行IO接口、定時器計數器、時鐘振蕩電路等集成在一起的控制芯片,硬件資源簡單且豐富,也易于擴展電路,所以單片機的學習側重點首先在于掌握硬件資源使用方法。因為匯編語言實際上是CPU能夠識別的機器碼的助記符,從匯編語言入手開始教學,能夠使學生更好地掌握單片機的硬件資源使用原理。使用匯編語言編程可以很方便地對單片機存儲器地址直接進行存取操作,也能很方便地對存儲器地址進行整體安排分配,前提是對單片機硬件資源非常熟悉,能夠靈活調用。比如指令MOV、MOVC和MOVX可以分別訪問單片機內部的數據存儲器、程序存儲器和外部擴展的數據存儲器。匯編編程的缺點在于進行算術運算和邏輯判斷跳轉等比較繁瑣。

1.2 C語言理論教學

國內的單片機C語言程序設計教程多數的編排都會在前面開始的章節介紹單片機硬件資源以及匯編語言指令系統,然后以更大篇幅講述C語言程序設計語法和針對硬件資源的編程。針對單片機的C語言程序設計語法與計算機C語言高級程序設計編程語法基本一致,而針對硬件資源的指令又類似于匯編語言指令系統,所以應該可以說單片機C語言程序設計是計算機C語言高級程序設計和匯編語言指令結合體。要掌握好C語言編程依然要對于單片機的硬件資源理解透徹并能靈活調用。但是C語言針對硬件資源的指令與匯編語言指令比較起來卻不如匯編那么直觀,也不如匯編指令那樣更加有助于單片機硬件體系結構的理解。

為了使初學者能夠更好地理解單片機硬件體系結構,掌握硬件資源的調用,選擇匯編語言進行教學顯然是更加合適的。

2.單片機實驗教學

單片機作為電子電氣信息類專業的一門專業基礎核心課程,比某些專業基礎課程如電路原理、數字電子技術、模擬電子技術等更加注重編程實踐的練習。單片機實驗課程一般都是配套安排在單片機理論課程的下半學期,這樣能夠更加有助于理論的理解和掌握。作為理論課程的配套課程,單片機實驗課程在教學上必須與理論課程保持一致性,選擇匯編語言進行實驗教學就是必然和最好的選擇。

在實驗設備的選擇上,學院實驗室早期購置過星研單片機Star ES51實驗箱,后來又購置了大批光佑STC開發板,可以兩者選其一。

早期的單片機實驗都是集中在實驗室進行,兩人共用一臺實驗箱,通過連線和讀寫配套程序仿真運行來進行實驗。這樣的實驗有一些明顯的不足,比如配套程序調用了很多鍵盤顯示的子程序,而這些子程序沒有直接給出來,實驗箱的很多硬件電路連接也沒有給出詳細原理圖,所以造成了實驗結束后多數學生也是對實驗原理和編程似懂非懂的結果。

有了STC開發板后,每個學生可以分配一塊開發板,各自進行單片機的編程仿真實驗,還可以將開發板帶回宿舍課后繼續練習,實驗可以更方便地進行。實驗開發板的原理圖清晰,例子程序豐富,通過讀寫配套例程可以較好的掌握單片機的基本原理。

顯然使用匯編語言選擇STC開發板進行單片機實驗是實驗教學的最好安排。實驗課程的要求注重于單片機基礎知識的掌握和硬件資源的調用。

3.單片機課程設計教學

單片機課程設計的安排是為了進一步提高學生的實踐能力,所以課程設計的教學就不再局限于基本原理的掌握,而是必須達到更高程度的實踐效果。匯編語言編程有利于對基礎知識的理解和單片機硬件資源的掌握,卻不利于復雜邏輯的處理。所以在學生已經基本掌握了基礎理論的情況下,課程設計選擇C語言編程,可以讓學生更加方便的進行復雜程序的編寫。

單片機課程設計實踐項目內容的安排上,必須注重單片機內部和外部硬件資源的綜合調用,以便完成具有實際意義的綜合程序的編寫。課程設計實踐項目安排了可以綜合調用單片機I/O口資源進行鍵盤掃描數碼管顯示以及中斷處理的實現計算器功能的程序編寫,和能夠使用I2C總線進行通訊的AD/DA處理的程序編寫。這兩種程序的綜合度和復雜度都遠遠大于單片機實驗題目的要求。從實踐結果來看,通過這種綜合性復雜程序的編寫練習,能夠大大提高學生的開發設計實際項目的動手實踐能力。

結束語

在我國大力實行人才戰略強調人才培養的大環境下,本文作者所在高校也響應國家號召加強本科生培養,實施卓越工程教育,取得了積極可喜的成績。本文積極探索和提高單片機理論實驗課程設計協同教學的方法,取得了長足的進步和發展,也得到了學生的高度認同。以此方法培養出來的本科生在參加全國大學生電子設計競賽的過程中也取得了驕人的成績。本文作者經驗和方法也可以為兄弟院校相關專業的教學提供參考和借鑒。

參考文獻:

[1]李朝青.單片機原理及接口技術(第4版),北京航空航天大學出版社,2013.7

[2]郭天祥.新概念51單片機C語言教程――入門、提高、開發、拓展, 電子工業出版社,2009.1

[3]彭偉.單片機C語言程序設計實訓100例――基于8051+Proteus仿真(第2版), 電子工業出版社,2012.10

篇8

關鍵詞:單片機技術;教學改革;培養興趣;教學手段;實踐應用

【中圖分類號】TP368.1-4

1引言

“單片機技術及應用”是大學計算機科學與技術專業的一門專業必修課程,對于高校學生來說,學習該課程是初步認識單片機的整體設計過程,為將來從事信息系統工作及電子產品的設計、檢測和維修奠定堅實的基礎,具有不可替代的作用和意義。

2培養學習興趣

單片機技術與應用課程是大四學生需要學習的一門專業課程,因此在課堂教學過程中,教師要結合學生的培養目標、就業方向,從實際出發,注重理論基礎與實際應用的結合,多給學生展示單片機廣闊的應用前景和具體產品,使他們體會到單片機技術在以后的工作生活中都具有很強的實用性,認識到單片機技術強大的潛能和發展空間,從而激發他們學習的興趣和求知欲。

2.1 聯系實際

為使學生更好的接受抽象的知識,在講述具體內容之前,可以列舉大量單片機的應用實例。如在日常生活中常見的洗衣機、冰箱、熱水器和空調等家用電器的智能化控制[1],這些都離不開單片機。抽象的教學內容與身邊活生生的應用實例相結合,給學生一個看得到、聽得見、摸得著的學習目標,大大提高了學生學習單片機的興趣。

2.2 組織競賽

學以致用是教學的根本目標,結合新形勢下教育目標模式轉型,對學生的培B重在能力的培養,這就需要給學生一個平臺,讓學生自己去動手、去實踐。單片機課程為學生安排了對應的實驗課程,但這在實際應用中是遠遠不夠的,因此可以組織一些電子設計大賽,讓學生積極的參與其中,為其學習興趣的培養提供一個積極的推進作用,大大激發學生的學習主動性。

3優化教學內容

3.1 緊跟時代步伐

在課堂教學中,教師應選用應用廣泛、實用性好、易學易懂易掌握的優秀教材。但教材往往是落后于科技發展的,所以教師還要了解單片機技術的發展現狀以及前沿技術,根據實際需要,在課堂上適時適當地向學生補充當前使用比較熱門的硬件接口和軟件編程技術,了解當前有關單片機的新信息、新技術和新發展,來拓寬學生的知識面,延伸和補充課堂之外的教學內容,讓學生緊跟時代步伐。

3.2 選取合適的編程語言

單片機課堂教學注重的不只是基本原理的講解,更多的是應用設計。單片機教學通常采用純匯編語言教學,這需要有前導課程“微機原理及應用”所學習的匯編語言作支撐,而在教學過程中,學生普遍認為匯編語言不易掌握,并且目前在實際的單片機應用項目開發中,使用較多的開發語言并不是匯編語言,而是單片機C51語言。單片機C51語言是由C語言繼承而來的。因此,可以將“微機原理及應用”與“單片機技術及應用”進行整合,在單片機編程設計上以C51語言為主,特別注意C51與C語言的區別,以匯編語言為輔的形式進行講解,降低由語言選擇帶來的編程難度,提高教學質量。

3.3 選取適合的軟件平臺

與C語言不同的是,C51語言運行于單片機平臺,而C語言則運行于普通的桌面平臺。因此,可以采用專門針對MSC-51系列單片機的軟件開發平臺Keil C51,以加強培養學生對C51的編程能力。在選用實驗箱時,還要考慮到培養學生的創新能力要求,盡量使用具有現在先進技術接口的實驗箱,通過課程設計或畢業設計積極引導學生使用C51開發語言進行相關軟件設計,設計難度明顯減小,程序也更加簡潔清晰[2]。

4豐富教學手段

新型人才的培養最重要的是能力的培養。知識轉化為能力必須通過實踐,實踐性教學結合理論與實際、綜合思維和感官、提高個性與社會化水平,是培養學生創新意識和創新能力的重要途徑。因此,在高校單片機的課程教學中,一定要從實際需要出發。

4.1 借助多媒體教學手段

單片機課程內容抽象,要在有限的課時內講深懂、講透課程內容,依靠傳統的教學手段很難實現,這就需要教師精心設計講解內容,制作生動形象的多媒體課件,將抽象難懂的概念具體化、形象化,單調枯燥的理論多樣化、生動化,將重難點知識內容通過多媒體進行演示,可以加深理解,便于記憶。

4.2 利用仿真軟件演示

在單片機應用開發過程中,更側重于硬件設計。而在單片機教學過程中,由于硬件條件或時間條件的限制,教師在課堂上很難向學生直接具體的展示硬件設計的整個過程。而在實踐教學過程中,可以有效利用仿真軟件來達到更好的教學效果。Keil-C51和Proteus professional的出現可以滿足對單片機進行隨堂編程和電路仿真的需求。Keil軟件為項目的開發制定了一套完整的方案,學生在使用時可以直接進行編程,編譯和仿真方面的練習;Proteus是集電路分析和硬件電路仿真于一體的軟件,可以很好的實現一個完整的電路設計系統。

5 提高教師的業務能力

5.1 及時補充新知識

要培養高素質的學生,必須要有高素質的教師隊伍,授課教師應緊跟軟硬件技術的發展動態,不斷學習充實自己,才能夠勝任工作的需要,才能跟上時代的步伐。單片機的發展速度較快,利用單片機技術來進行產品開發、控制系統設計的過程中,需要用的知識較多,這就需要教師具有電子產品研發和工程實踐的經驗,否則就無法使學生對該課程產生深刻的理解。

5.2 提高科研能力

教師在課堂上的旁征博引,大都以科研經驗為背景,正所謂見多識廣,見得多用得多,自然能夠講的深入淺出、得心應手。教學和科研是相輔相成的,教學是科研的基礎,科研是教學的提高,教學與科研的這種關系,反映了教學與科研的內在聯系,決定了高校離不開科研的職能。用科研實例的形式來調動學生學習的積極性、主動性,培養學生的創新能力。

6 總結

“單片機技術及應用”是一門應用性極強的課程,隨著單片機新技術的飛速發展,給單片機課程內容本身增了很多新的元素。而對于高校來說,教育的基本任務是從學生原有基礎和身心發展特點出發,使他們的素質獲得發展,逐步適應社會建設和發展的客觀需要。因此高校教師在教學過程中,要不斷探索研究行之有效的方法措施,緊緊抓住“應用”這個綱領,注重學生實際設計能力的培養,實現教與學的最佳統一。

參考文獻:

篇9

關鍵詞:單片機 教學改革 單片機開發板 單片機課程設計

0 引言

單片機因體積小、功能強、可靠性高和價格低廉等一系列優點,已滲入到人們工作和生活的各個角落,應用前景廣闊[1]。目前多數高職院校的機械專業都開設了單片機課程,但大多院校的教學思路仍然借鑒本科先基礎后應用的常規教學模式,理論教學與實際應用結合較少。對于高職學生,課程入門比較困難,知識不易掌握,實際應用較少,學習興趣不高,該課程的實際教學效果并不理想。因此,單片機的教學模式亟需改革,改變原來以知識傳授為目標的教學方式,要理論與實踐并重,以實踐入門來吸引學生學習的興趣,提高教學質量。

1 高職機械專業單片機教學現存的難點

單片機是一門理論性很強的專業基礎課程,同時也是一門實踐性和技術性很強的學科。要求學生掌握一定的電子電路知識,還要熟練掌握計算機的相關知識,掌握編程的思維和方法。高職學生的基礎知識相對薄弱,對于單片機的學習有一定的困難。

1.1 對于單片機中的專業術語和電路很難理解

學習單片機要以電路原理、模擬電子技術、數字電子技術、計算機基礎知識等相關課程的理論知識為基礎。與電子專業學生不同的是,我校機械專業學生只開設一門電工電子課程,所有的電路、模電和數電的相關知識都集中在一門課程中講授,知識點多且課時量偏少,知識點講授較為粗淺,不能深入展開。因此,學生對于單片機中遇到的一些專業術語和電路,如集電極開路、上拉電阻、存儲器地址、D觸發器、555振蕩電路等,很難理解。這些知識都需要重新講授,且講授效果不佳。學生往往在學到單片機的硬件電路部分時,突然間覺得很難,學習的積極性下降,甚至有了厭學的情緒。

1.2 對于匯編指令不易理解

像所有其他的指令一樣,匯編指令也是英文的,我校機械專業大部分學生的英語能力比較差,遇到有英文的地方,本能地會回避,更不要說進行深入的研究。單片機中要求他們短時間記憶和理解數十條甚至上百條指令的格式和功能,他們覺得比較有壓力,很多學生達不到這個目標。

匯編語言是一種低級語言,每一條匯編指令都與機器的硬件結構密切相關,

如果學生對于硬件結構沒有掌握好,那么對于匯編語言的指令也很難完全理解。即使學生勉強知道每條指令的大概意思,但由于沒有充分理解其內涵,不能做到融會貫通,常常錯誤地運用指令,即使在一個程序里運用正確,可能題型改變,就做不出來了。

1.3 對于單片機的應用比較陌生

我們在學校的教學中,受制于課時量的不足和傳統教學思維和方法的限制,通常都以傳授理論知識為主,實際應用提到的比較少。因此,出現一些學生直到學完這門課程,都不知道單片機能干什么。有些學生告訴老師,以前我們學過的課程,如機械制圖,很有實用性,單片機講的這么多、這么復雜,到底有什么用,我們機械專業為什么要學這一門課程。學生不能深入理解該門課程的實際應用,認為學了無用知識。

2 高職機械專業單片機教學改革的具體措施

學習單片機的最終目標是能運用單片機進行一些項目的開發,解決生產和生活中遇到的實際問題。人才市場需要的不是只懂理論、不懂實踐的研究型人才,而是既懂理論,又能實踐的應用型人才。因此,單片機的改革也要以就業市場為導向,結合高職機械類學生的特點,做一些針對性的調整,使學生既能學好,又能快速地適應社會的需求。本文針對單片機課程在教學方面現有的種種弊端,提出了單片機課程教學改革實施的一些具體措施。

2.1 實施“項目任務驅動法”,理論教學緊扣實踐應用

單片機教學應該采用工程實際應用課題或實踐案例進行教學的方法,實施“項目任務驅動法”,即課程教學以單片機應用技術的典型實用案例進行分析講授的一種教學方法。授課時以單片機技術“案例”演示作為引入,以實現“案例”為主線講述各相關理論知識。為鞏固理論知識的學習和培養學生實際動手的能力,理論教學應與實際“案例”實驗教學穿行,以實驗教學充實理論內容,使兩者融會貫通。整個教學過程的思路設計如下:

例如,在第一次上單片機的課時,就應該給學生演示單片機的用途,如單片機驅動流水燈、驅動數碼管顯示數字,驅動16×16點陣顯示漢字,驅動蜂鳴器演奏一段鈴聲等,讓學生了解單片機的應用,領略單片機的妙處,激發學生學習的興趣。興趣對一個學生學習一門課程很重要,如果學生對某門課程失去興趣,即使再好的老師也教不好。第二次上課可以選擇一個簡單的應用,如單片機驅動一個LED的亮滅,通過仿真軟件,當堂給學生畫電路圖,編寫軟件,使學生感到單片機并不是很難,自己也可以學會,打消他學不好的顧慮。后面每次課都以項目任務為導向,每次課時可以先將我們要實現的功能給學生演示一遍,然后告訴學生我們實現這個功能的思路是什么,我們要實現這個功能,需要學習哪些基礎知識,讓學生有一個清晰的概況和熱切學習的期盼。下表為四個常用的典型項目的實驗任務設置:

每個項目的設計都要以實踐應用為導向,讓學生感覺到能學以致用。任務的設計應遵循由淺到深、循序漸進的手法,與理論章節知識的進度遙相呼應,使學生能夠逐步接受并加深理解。同一個知識點,可以舉不同項目中的相近任務反復講解,使學生對所學知識點理解透徹,達到舉一反三的目的。

2.2 以C語言為主,匯編語言為輔,講授單片機的指令系統

目前單片機的實際項目開發多采用C語言程序編寫,傳統的單片機教材和教學,大多采用匯編語言講授單片機的指令系統[2]。為了改變傳統所學與實際所用的差別,單片機指令系統的教學,應在匯編語言的基礎上,增加單片機C語言程序設計內容,采用以C語言為主,匯編語言為輔的編程方式。這樣可以使學生盡快與實踐接軌,提高單片機的開發效率,使學生畢業后更快更好地適應工作環境。例如:在采用案例教學過程中,同一程序分別用匯編語言和C語言編寫,通過比較二者的優缺點,可以真正理解兩種語言在實際應用中的效果。Keil C51程序編譯工具,既可以實現匯編語言的編程,又可以實現C語言的編程。因此,在我們實際教學工作中,完全可以用Keil C51軟件實現了單片機軟件開發和應用案例的日常教學,簡化理論課學習的內容,降低學習難度,使學生能盡快上手單片機,這樣就提高了同學們學習單片機的熱情,同時也非常適合實踐應用的需求,為將來工作中單片機的開發應用奠定了良好的軟件基礎。

2.3 單片機仿真軟件和實驗開發板并重的雙重實驗教學模式

實驗教學中應實施單片機仿真軟件和實驗開發板并重的雙重實驗教學模式。開發板是在一塊電路板上集成了單片機常用功能模塊,雖然體積小,但涵蓋了絕大多數單片機常用的實驗,并可以根據教學需求,開發擴展相關功能模塊[3]。課堂教學結束后,學生可將開發板帶回宿舍,只需要一臺電腦、一根USB下載線,就可在開發板上自學單片機或是做一些小項目鍛煉實際動手能力,充分調動學生學習單片機的積極性。開發板價格便宜,現在市面上簡單通用的單片機開發板(適用入門者學習),每套均價不到200元,完全滿足初學者做一些常用的開發應用。實驗教學中,可先讓學生在Keil C51和Proteus軟件中編寫和仿真單片機案例程序,程序仿真正確無誤后,將程序下載到單片機開發板中,在開發板上實現實際電路功能的運行,強化對實際電路的認識和理解。

2.4 增添單片機課程設計專項實訓,實施理論與實踐并重的考核方案

在單片機課程結束前,可在臨近期末設置3周的單片機課程設計專項實訓,一周調研選題,一周設計軟硬件、一周焊接電路板,完成作品。具體實施的方法是讓學生獨立在單片機開發板上完成自選項目的設計與實現,如“數字鐘”、“LED顯示器”、“數字溫度顯示計”等智能化小產品。3-4人一組,查閱資料,自選題目,自行設計電路圖、編輯程序,然后選擇并購買相應的元器件,親自焊接并完成電路,提交課題設計報告。該課程設計的開展,可以使學生了解市場行情,培養學生開發項目的能力,團隊合作能力等,同時也可以作為學生期末考試實踐環節的考核成績。

為防止學生原搬照抄網上和有關資料的單片機實驗設計,達不到課程考核的初衷,單片機的考核還應保留原有的理論考試。應將傳統的以理論考核為主的期末閉卷考試與以實踐開發應用為主的單片機課程設計考核相結合,將二者的成績共同作為單片機課程的最終考核成績。這樣,能同時對學生的理論基礎知識和實踐動手開發能力做出合理的考核評價。

3 結語

單片機是高職機械專業學生的重要基礎課程,目前教學效果普遍不佳。在分析高職機械專業學生單片機教學難點的基礎上,針對傳統教學模式的弊端,提出了該課程教學改革的具體實施措施。在教學方法上,實施了“項目任務驅動法”,較好地融合了理論與實踐教學;在教學內容上,緊貼能實際運用的教學理論與技術,如以C語言為主,匯編語言為輔的單片機編程語言;在教學手段上,實行單片機仿真軟件和實驗開發板并重的雙重實驗教學模式;在考核方式上,采用理論與實踐并重的考核方案。實踐教學結果表明,改進后的教學模式要優于過去傳統教學模式的教學效果,達到了單片機課程教學改革的預期目標。

參考文獻:

[1]王效華,張詠梅.單片機原理與應用[M].北京:北京交通大學出版社,2007:5.

[2]謝維成.單片機原理及應用C51程序設計[M].北京:清華大學出版社,2008.

[3]周潤景,張麗娜.基于Proteus的電路及單片機系統的設計與仿真[M].北京:北京航空航天大學出版社,2006.

篇10

關鍵詞:C+PROTEUS;科技創新;單片機綜合設計

中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2015)30-0094-02

《單片機應用技術》課程是一門理論與實踐性均很強的學科,是工科電類專業一門很重要的專業基礎課,它將數字電路和模擬電路的基礎知識、匯編語言及C語言編程技術、通信原理和微處理器知識等綜合在一起,屬于技術性、工程性、實踐性很強的一門課程。

《單片機原理及應用》課程的特點是涉及硬件結構復雜,涉及知識面較廣,經常涉及到電子技術基礎、電路原理及編程C語言等知識,因此,要想將課堂所學的單片機系統結構及應用技術與所學知識有機融合,能夠在實踐中游刃有余地應用,還需要反復的實際設計與實踐。針對《單片機原理及應用》課程抽象難學,尤其難于應用于實踐開發的現狀,我們在教學中注意做到理論聯系實際,將課堂教學與科研開發和科技創新緊密結合。

在課堂教學中,初期階段,采用C+PROTEUS的教學模式,引導學生應用C語言編寫應用驅動程序,然后在PROTEUS環境下仿真運行,逐步理解和領會單片機的設計思路。在綜合應用階段,通過引入實際工程應用實例,接觸實際科研項目中設計開發產品,使學生了解所學知識的應用價值,激發學生的學習興趣,深化學生對知識點的理解。

在實踐環節,由專業課教師指導,學生設計為主,帶動學生自己設計單片機課程的實驗開發平臺,并在所設計的開發系統基礎上,增設大量綜合性、設計性實驗,啟發學生的思維,以提高學生綜合分析問題和解決問題的能力。同時,在大學生科技創新和各類電子設計競賽活動中,積極引導學生應用所學單片機技術進行開發設計,進而培養學生實踐能力、創新能力。

通過上述各個環節,分層次、分階段,層層深入,真正在單片機課程教學中做到理論與實踐緊密結合,真正實現提高學生應用單片機技術解決實際問題能力,進而探索一條在課程教學中如何提高大學生科技創新能力的可行之路。

一、改革教學環節

1.初期的課堂教學中,將C語言與PROTEUS軟件有機結合,提高學生對單片機的實際應用能力。從目前單片機技術應用層面上看,對單片機系統的開發一般采用C語言完成,因此,在課堂教學中強化推廣采用C語言進行編程設計的技術,并逐步取代原來采用匯編語言進行設計的模式。從而,提高學生對單片機技術的實際應用水平。PROTEUS軟件是一種近年來逐漸流行的單片機系統設計的專業仿真軟件,可以仿真51系列、AVR、PIC等常用的MCU,并提供周邊設備的仿真,例如373、led、示波器等。Proteus提供了大量的元件庫,有RAM、ROM、鍵盤、馬達、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,編譯方面支持Keil和MPLAB等編譯器。在單片機教學初期,采用C語言+PROTEUS仿真的教學模式,引導學生應用C語言編寫應用驅動程序,然后在PROTEUS環境下,繪制原理圖并仿真運行,觀察設計效果是否正確,發現問題在修正編寫的C語言程序,如此反復,逐步提高學生控制單片機和設計單片機系統的能力。

2.綜合應用階段,通過工程設計實例,深化學生對知識點的理解。作為多年從事單片機課程教學的教師,具備多年來單片機開發與實踐的工作經驗,在應用單片機技術進行智能儀器儀表開發上有許多成功的設計項目,如基于單片機系統設計的大慶油田的井地電位成像監測系統、開關磁阻電機設計、過套管電阻率測量儀開發設計等等,都是應用單片機處理器進行設計的,在課堂教學中,結合上述實際開發項目,講述單片機的設計及應用技術,使學生直接接觸實際科研項目中設計開發產品,深化學生對知識點的理解,認識到所學知識的應用價值,從而,激發學生的學習興趣,啟發學生思維。以單片機中應用IO端口控制數據采集芯片為例:模數轉換器是實際工程應用中較為常用的一種數據采集芯片,目前,主流的控制數據采集芯片的技術是通過單片機IO引腳控制方式實現,通過單片機的引腳模擬數據采集芯片的工作時序,再通過C語言編程,完成對數據采集芯片的控制。在學習中,學生對于模數轉換芯片的工作時序圖始終感到很抽象,因此,在編程設計上往往不知從何入手。我們在教學中,結合橫向科研項目“過套管數據采集”中數據采集,通過實物演示、數據讀取實際設計案例講解,從工程數據采集需求,到硬件電路設計原理,以及最終程序上的編程實現,在講解中,學生不僅了解了數據采集芯片的工作時序邏輯,而且也能夠獨立應用單片機IO端口進行數據采集接口的設計。

二、改革實踐環節

1.在單片機課程實驗內容上更多增設綜合性、設計性實驗,提高系統設計能力。由專業課教師指導,學生設計為主,更多增設綜合性、設計性實驗,以提高學生的系統設計能力。預計增加設計性、綜合性實驗:8_8LED點陣掃描輸出實驗、直流電機正反轉調速實驗、基于I2C通信接口的數據采集顯示實驗和基于串行通信接口的智能遠程數字鐘實驗等。通過大量綜合性設計性實驗,要求學生自行設計電路,編寫驅動控制程序,不僅可以幫助學生加深對單片機知識結構的理解,而且可以提高基于單片機處理器的系統設計能力,培養學生的實際動手能力、學習興趣和創新精神。

2.強化單片機綜合課程設計環節,提高應用單片機綜合設計能力。在完成單片機基本課程及實踐基礎上,對機電、自動化、儀器類專業應強化安排綜合課程設計,以課題項目的形式要求學生組隊共同完成,采取開放式管理的模式,在2~4周內,首先運用所學電子技術基礎知識,查閱相關文獻資料、電子線路參考設計手冊、電子元器件手冊,進行電路設計、程序編制,在設計過程中,鍛煉自己熟練掌握和使用先進的計算機電路仿真軟件工具,提高設計效率;其次進行電子市場調研、購買相應元器件,完成電路設計制作、功能調試、參數測定、寫出設計總結報告;最后由教師組織全班進行設計交流、現場功能演示和提問答辯,同時教師完成每組的成績評定和設計總結,為下次的課程設計提出合理化建議。在課程設計的選題上,發揮廣大教師的積極參與,不斷對課程設計的題目進行更新,修改課程設計的內容,增加設計性、綜合性設計內容。目前,開設的新增加的課程設計題目包括:模擬交通信號燈控制系統;基于P89C51RD2單片機數據采集板卡設計實現;基于凌陽單片機的音樂播放器設計開發實例;公交語音報站播放器設計;簡單計算器設計實現;通過大量新穎的具有高技術含量的綜合設計,充分調動學生的熱情,讓學生從實驗中既學到知識,由學會探索問題進而解決問題,發揮潛能,提高創造能力。

3.積極引導學生將所學單片機技術應用于大學生科技創新和各類電子設計競賽活動。單片機技術是現代電子系統設計開發的主流技術,在科技創新和電子設計競賽中應用這些技術,往往有事半功倍的效果。鼓勵單片機課程學習好的同學積極參與科技創新和電子競賽,應用單片機技術進行相關項目和題目的設計,以2013年為例,我校學生參加北京市電子設計競賽,設計中采用單片機技術進行設計開發,獲得二等獎2項、三等獎3項,為學校爭光。通過學生間影響,激發學生學習單片機技術的熱情,形成一個較好的學習氛圍。

三、結束語

單片機原理及應用課程是一門應用性和實踐性很強的專業課,把握課程特點,了解學生理解上的薄弱環節,通過課堂教學和實驗環節的改革與創新,各個環節,分層次、分階段,層層深入,真正在單片機課程教學中做到理論與實踐緊密結合,激發學生學習的興趣,啟發學生的創造力,將單片機課程教學中所亟待解決的提高學生應用單片機技術解決實際問題能力落到實處,進而,使學生創新能力和綜合實踐能力得到提高。

參考文獻:

[1]潘言全.單片機教學改革的思考[J].湖南師范學院學報:自然科學版,2007,(27).

[2]張琪,李菲,柴新.構建高職院校開放式電子實驗室的研究[J].科技信息,2009,(10):18-21.

[3]王英紅.淺析開放式電工電子實驗室的建設[J].電氣電子教學學報,2012,(8):24-27.

[4]江錦花,大學生科技創新與開放實驗室管理模式[J].實驗室研究與探索,2009,(12):32-48.

[5]李麗宏.《單片機原理及應用》課程教學改革嘗試[J].太原理工大學學報:社會科學版,2001,(02).

[6]覃金昌,王為慶.機械類單片機應用實踐能力培養體系的構建[J].考試周刊,2010,(47).

[7]曹建樹,薛龍,蔣力培,焦向東,俞建榮,黃愛峰.單片機創新實踐教學改革與實驗室建設[J].實驗室研究與探索,2005,(09).