亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于KeilC51和Proteus花樣流水燈系統的設計

        2018-01-03 10:37:18譚艷春朱又敏劉目磊
        軟件工程 2018年11期
        關鍵詞:系統設計單片機

        譚艷春 朱又敏 劉目磊

        摘 要:單片機技術日益成熟,已廣泛應用于工業(yè)自動化、交通控制、智能儀表等眾多領域。為了進一步研究并拓展單片機的應用,本文利用80C51單片機、KeilC51和Proteus軟件對花樣流水燈系統進行了完整的軟硬件開發(fā)與設計。Proteus在線仿真驗證了系統設計的穩(wěn)定性和正確性。該系統的框架結構具有良好的可移植性,可根據實際需求生成不同的智能派生產品,具有較強的實際指導意義和應用價值。

        關鍵詞:KeilC51;Proteus;單片機;LED流水燈;系統設計

        中圖分類號:TP399 文獻標識碼:A

        文章編號:2096-1472(2018)-11-14-03

        1 引言(Introduction)

        單片機無論從組成還是邏輯功能上都具有微機系統的特性,是一門實踐性很強的軟硬件結合的技術,且體積小巧,因此可以嵌入到各種應用系統中作為指揮決策中心,實現系統的智能化[1-3]。目前比較流行的單片機仿真軟件和集成開發(fā)軟件分別為Proteus和Keil。

        Proteus不僅具有其他EDA工具軟件的仿真功能,還能仿真單片機及外圍器件,是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。Keil是德國Keil Software公司出品的單片機集成開發(fā)環(huán)境,該軟件支持51單片機的所有兼容機,它包括了C編譯器、宏匯編、連接器、庫管理及一個功能強大的仿真調試器在內的所有開發(fā)模塊[4-7]。

        2 硬件電路設計(Design of hardware circuit)

        該系統的硬件電路主要包括時鐘電路(采用內部時鐘方式,晶振頻率為12MHz)、復位電路、輸入和輸出電路四部分。其中輸入電路是四個按鈕開關K1—K4,并通過四輸入與門74AS21將按鍵信息從外部中斷引腳0(P3.2)讀入系統,以觸發(fā)中斷,讓CPU及時響應按鍵操作。由于80C51單片機P0口的內部電路結構問題,P0口作為I/O時必須接上拉電阻。輸出部分由八個共陽型發(fā)光二極管及限流電阻(200Ω)組成。利用Proteus仿真軟件生成的硬件電路如圖1所示。

        按鈕開關K1—K4對應的功能如下。

        (1)K1:啟動按鈕,當K1按下時,流水燈自上而下,又自下而上輪流被點亮,即D1→D2→D3…D8→D7→D6→D5…D1,反復重復,直到有新的按鍵按下,閃爍間隔是50ms。簡記為模式1方式。

        (2)K2:當K2按下時,流水燈自上而下,又自下而上間隔被點亮,即D1→D3→D5→D7→D8→D6→D4→D2,反復重復,直到有新的按鍵按下,閃爍間隔是50ms。簡記為模式2方式。

        (3)K3:當K3按下時,D1、D3、D5和D7同時被點亮,然后D2、D6、D4、D8同時被點亮,反復重復,直到有新的按鍵按下,間隔是1s。簡記為模式3方式。

        (4)K4:關閉按鈕,當K4按下時,流水燈D1—D8同時被點亮,閃爍三次(間隔為100ms)后,全部熄滅。簡記為模式4方式。

        3 KeilC51環(huán)境下的編程(Programming in the KeilC51)

        3.1 軟件編程要點分析

        (1)通過P0口的低四位引腳將按鍵信息讀取進來,由電路連接方式可知,無按鍵按下時,四個引腳全部為高電平,若有按鍵按下,對應的引腳將由高電平變?yōu)榈碗娖???衫弥噶頟0&0x0f獲取P0口低四位引腳電平的變化信息。

        (2)定義位變量on_off、style1、style2,根據這三個位電平的變化來控制程序的轉移。這里需用到關鍵字bit,而不是sbit,雖然二者都可以進行位定義,區(qū)別在于sbit只能用來對特殊功能寄存器的位進行定義,如以下寫法bit on_off;sbit botton1=P3^2是正確的,而sbit on_off;bit botton1=P3^2是錯誤的。

        (3)P2口接的是共陽極LED發(fā)光二級管,因此只有對應引腳輸出低電平時等才會被點亮,可將D1、D2、D3…D8被點亮時P2口對應的輸出放到一個數組中,即led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。

        (4)該系統可通過查詢法和中斷法兩種思路來實現。與查詢法相比,中斷法具有以下優(yōu)點:首先,只有在按鍵按下時,CPU才執(zhí)行相關的中斷程序,而其他時間是不占用CPU的時間;其次,中斷法可以更及時快速地響應按鍵操作。因此,為了提高CPU的工作效率,本系統采用中斷掃描方式進行設計實現。

        (5)關于中斷方式的幾點說明:(1)要使用外部中斷,必須將中斷允許打開,即對中斷允許寄存器IE進行正確設置。IE的字節(jié)地址為A8H,所以即可以字節(jié)操作,又可以位操作,如要開啟外部中斷0,即可寫IE=0x81H,也可寫EX0=1,EA=1,二者的作用是等同的。(2)外部中斷包括電平觸發(fā)(ITx=0)(外部中斷源接P3.2腳時,x=0;外部中斷源接P3.3腳時,x=1)和邊沿觸發(fā)(ITx=1)兩種觸發(fā)方式。其中邊沿觸發(fā)的外部中斷請求,在CPU響應中斷后,自動由硬件對中斷請求標志位EIx清0,即系統自動撤銷中斷請求;而電平觸發(fā)的外部中斷請求,硬件不能自動對中斷請求標志位EIx清0,必須在撤銷P3.2或P3.3引腳上的低電平后,再利用軟件對中斷請求標志位清0,比較繁瑣。因此本系統采用邊沿觸發(fā)方式。

        3.2 程序流程圖

        該系統的程序流程圖如圖2所示。

        3.3 系統源代碼

        該花樣流水燈系統的完整源代碼如下:

        #include;頭文件reg51.h或reg52.h中包含了對8051型單片機特殊功能寄存器(SFR)名的集中說明。

        Unsigned char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

        void delay(unsigned char time);//延時函數的聲明

        bit on_off=0, style1=0, style2=0;//定義位控制變量

        button() interrupt 0{ //中斷0函數

        switch(P0&0x0f) {

        case 0x0e: on_off=1, style1=1;break; //模式1方式的啟動條件

        case 0x0d: on_off=1, style1=0; style2=1;break; //模式2方式的啟動條件

        case 0x0b: on_off=1, style1=0;style2=0;break; //模式3方式的啟動條件

        case 0x07: on_off=0;break; //模式4方式的啟動條件

        }}

        void main() {

        char i;

        IT0=1;EX0=1;EA=1; //邊沿觸發(fā)、外部中斷0允許、總中斷允許

        while(1) {

        if (on_off)

        if (style1) //模式1運行方式

        for (i=0;i<=7;i++) {

        P2=led[i];

        delay(5);

        }

        for (i=6;i<=0;i--) {

        P2=led[i];

        delay(5);

        }

        else if (style2) //模式2運行方式

        for (i=0;i<=7&i;%2==0;i++) {

        P2=led[i];

        delay(5);

        }

        for (i=7;i<=0&i;%2!=0;i--) {

        P2=led[i];

        delay(5);

        }

        else //模式3運行方式

        P2=0x55;

        delay(100);

        P2=0xaa;

        delay(100);

        else //模式4運行方式

        for (i=3;i<0;i--) {

        P2=0x00;

        delay(10);

        P2=0xff;

        }}}

        void delay(unsigned char time) { //定義延時函數

        unsigned int i;

        for(;time>0;time--)

        for(i=10000;i>0;i--);

        }

        3.4 系統的拓展

        該系統的框架結構具有良好的可移植性,可根據實際需求生成不同的智能派生產品,主要可從流水燈的控制開關、閃爍節(jié)奏、閃爍花樣三個方面進行改變。

        (1)流水燈控制開關的改變

        首先控制開關的數量可以根據實際需要進行增減。80C51一共有四組I/O口P0、P1、P2、P3,它們的地址分別為80H、90H、A0H、B0H,都是8的整數倍,因此這32個引腳全部可以位操作。若是獨立按鍵,最多可以接(32—N)個;若是接行列式鍵盤開關,最多可以擴充為(32—N)2個,其中N為流水燈的數量。

        其次控制開關的作用完全可以通過修改源代碼進行改變,無需進行硬件變動。

        (2)流水燈閃爍節(jié)奏的改變

        基本延時函數delay(unsigned char time)的定時時間為10000*機器周期,若采用12MHz晶振,機器周期則為1us,即delay(1)=10ms,delay(50)=500ms,delay(t)=10*tms。因此通過簡單的調用delay(t)函數并根據需要修改t的取值即可改變流水燈閃爍的快慢。

        (3)流水燈閃爍花樣的改變

        首先流水燈的數量可以根據實際需要進行增減,這點與控制開關相類似,不再累述。其次流水燈的閃爍花樣亦可通過修改源代碼實現。

        4 程序加載及仿真演示(Program loading and simulation demonstration)

        將調試過無語法錯誤的代碼文件*.HEX加載到Proteus原理圖的80C51單片機中,運行后,依次按下K1—K4,可以觀察到與預期一致的流水燈效果。由于文本的限制,無法展示系統運行的動態(tài)過程,故略。

        5 結論(Conclusion)

        本文設計的花樣流水燈系統可以根據輸入信息的不同,按照預先設定的花樣(如燈亮持續(xù)時間、流向等)進行顯示。該流水燈系統可以應用到裝飾、交通等生活中許多領域,并可以根據實際需求進行修改。借助這種通用框架結構,很容易生成不同的智能派生產品,以適應不同的應用場合。因此該系統具有較強的實際指導意義和應用價值。

        參考文獻(References)

        [1] 曾宇,宋永端,王弼堃.基于Proteus和Keil軟件的溫室環(huán)境監(jiān)測系統開發(fā)[J].農業(yè)工程學報,2012,28(14):177-183.

        [2] 單純,荊高鵬,胡昌振,等.基于漏洞知識庫的8031單片機系統軟件漏洞檢測算法[J].北京理工大學學報,2017,37(4):371-375.

        [3] 吳可汗,何怡剛.基于單片機的低功耗電能收集充電器設計[J].電工技術學報,2013,28(S2):185-188.

        [4] 于博,楊曉慶.基于Keil C51與Proteus仿真聯合的單片機應用研究[J].軟件工程師,2015,18(9):51-52.

        [5] 林立等.單片機原理及應用——基于Proteus和Keil C[M].北京:電子工業(yè)出版社,2018.

        [6] 徐磊,申紅軍,蔡亞永.單片機開發(fā)Keil C51與Proteus仿真聯合應用研究[J].電子設計工程,2013(9):178-181.

        [7] 杜樹春.基于Proteus和Keil C51的單片機設計與仿真[M].北京:電子工業(yè)出版社,2012.

        作者簡介:

        譚艷春(1980-),女,碩士,講師.研究領域:系統設計,信號處理.

        朱又敏(1966-),男,碩士,工程師.研究領域:射頻通信.本文通訊作者.

        劉目磊(1980-),男,本科,工程師.研究領域:雷達系統設計及故障分析.

        猜你喜歡
        系統設計單片機
        基于單片機的SPWM控制逆變器的設計與實現
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應用
        電子制作(2018年12期)2018-08-01 00:48:04
        基于單片機的平衡控制系統設計
        電子制作(2017年19期)2017-02-02 07:08:27
        一種基于SATA硬盤陣列的數據存儲與控制系統設計研究
        工業(yè)熱電偶計量檢定系統設計
        基于物聯網的煤礦智能倉儲與物流運輸管理系統設計與應用
        目標特性測量雷達平臺建設構想
        科技視界(2016年22期)2016-10-18 14:34:34
        星級酒店建筑電氣及弱電智能系統設計分析
        精品久久久无码人妻中文字幕豆芽| 日本岛国一区二区三区| 国内偷拍精品一区二区| 秋霞在线视频| 黑人玩弄漂亮少妇高潮大叫| 亚洲AV综合A∨一区二区| 国产精品午夜福利天堂| 26uuu在线亚洲欧美| 无码人妻精品丰满熟妇区| 无码中文av有码中文av| 日本久久黄色高清视频| 久久久久久夜精品精品免费啦| 无码人妻久久一区二区三区不卡 | 97日日碰日日摸日日澡| 在线观看日本一区二区三区| 久久久久高潮综合影院| 品色永久免费| 亚洲精品亚洲人成在线播放| 国产女主播福利在线观看| 欧美老肥妇做爰bbww| 国产成人综合久久精品免费| 极品av在线播放| 日本视频在线观看二区| 屁屁影院ccyy备用地址| 日韩二三区| 中文字幕日本五十路熟女| 免费观看a级毛片| 久久久国产一区二区三区四区小说| 亚洲第一区无码专区| 国内免费自拍9偷1拍| 最近2019年好看中文字幕视频 | 日韩人妻中文字幕一区二区| 国产亚洲av成人噜噜噜他| 日韩国产成人无码av毛片蜜柚| 久久精品国产热| 中文无字幕一本码专区| 亚洲av午夜福利精品一区| 国产人妻黑人一区二区三区| 国产内射视频在线观看| 国产成人av一区二区三区不卡| 性动态图av无码专区|