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

        ?

        基于Keil時序邏輯和Proteus的電路仿真

        2017-04-10 12:05:43
        實驗室研究與探索 2017年1期
        關(guān)鍵詞:電路仿真電平時序

        鄧 力

        (桂林理工大學(xué)南寧分校, 南寧 530001)

        基于Keil時序邏輯和Proteus的電路仿真

        鄧 力

        (桂林理工大學(xué)南寧分校, 南寧 530001)

        針對Proteus仿真液晶LCD1602出現(xiàn)的問題,對LCD1602技術(shù)手冊中的讀寫操作時序圖進(jìn)行LCD1602相關(guān)引腳時序邏輯電平分析,通過Keil4的邏輯分析儀對程序中LCD1602的讀寫時序進(jìn)行查看,根據(jù)邏輯分析儀的時序波型對液晶顯示程序代碼進(jìn)行修改使程序符合LCD1602的讀寫時序要求,并使用Proteus的圖表分析對電路程序代碼執(zhí)行時的電平進(jìn)行查看,直觀顯示了程序在電路執(zhí)行的過程。在嵌入式系統(tǒng)開發(fā)中使用Keil4時序邏輯及Proteus圖表仿真,可以對軟件及電路中出現(xiàn)的問題有針對性的分析,探索了使用Keil4的邏輯分析儀和Proteus的圖表分析對程序執(zhí)行時序進(jìn)行分析的新方法。

        Keil邏輯分析儀; 電路仿真; 圖表分析

        0 引 言

        Keil4是Keil公司開發(fā)的一個IDE開發(fā)環(huán)境,Realview MDK是Keil公司推出的ARM開發(fā)工具,采用uVision3開發(fā)環(huán)境,結(jié)合RealView編譯器,支持ARM7、ARM9、Cortex-M3/M1的開發(fā)工具[1]。

        在Keil MDK中軟件邏輯分析儀有很強(qiáng)的功能,可以分析數(shù)字、模擬信號、CPU總線(UART、IIC等一切有輸出的管腳),提供調(diào)試函數(shù)機(jī)制,用于產(chǎn)生自定義的信號,如Sin、三角波、噪聲信號等[2]。

        Proteus是一個基于ProSPICE混合模型仿真器的、完整的嵌入式系統(tǒng)軟、硬件設(shè)計仿真平臺。Proteus提供了一個圖表仿真功能,可以將線路上變化的信號,以圖表的方式地顯示出來,其作用與示波器相似,但功能更多[3-9]。

        筆者在教學(xué)和實驗實訓(xùn)中,使用Proteus仿真LCD1602液晶顯示的Keil4程序曾出現(xiàn)如下的問題:將C51程序移植到Keil4后,1602液晶Proteus仿真在設(shè)定LPC21xx主頻12Mb時不顯示,將Proteus仿真電路中CPU頻率降低后能顯示。

        1 Proteus仿真液晶電路問題的分析

        1.1 仿真電路元件

        LCD1602是一種專門用于顯示字母、數(shù)字、符號等字符型液晶,可以顯示2行,每行16個ASCII字符[10-12]。LPC2106是基于一個支持實時仿真和跟蹤的ARM7TDMI-S CPU,并帶有128 Kb嵌入的高速Flash存儲器,片內(nèi)多達(dá)64 Kb的SRAM,32個GPIO[13-15]。

        LPC2106的P0.8~P0.10分別連接LCD1602的E、RW、RS,P0.0~P0.7分別連接D0~D7。

        根據(jù)液晶連接的I/O口,編寫液晶顯示程序:

        int main(void)

        { //寫指令時序測試

        IO0CLR=rs; //全部清零

        IO0CLR=rw;

        IO0CLR=0xff; //先清零

        IO0SET=0x08; //再送數(shù)

        IO0SET=en;

        IO0CLR=en;

        lcd_init();

        IO0DIR=0x7ff; //設(shè)置為輸出

        IO0CLR=0x7ff;

        WrOp(0xc1);

        WrDat('a');

        while(1);

        }

        1.2 Keil4邏輯分析儀對LCD1602指令及機(jī)器時鐘的仿真、分析

        針對Proteus仿真出現(xiàn)的問題,首先通過Keil4的邏輯分析儀對程序中LCD1602的讀寫時序進(jìn)行時序分析(此時由于使用Proteus進(jìn)行電路仿真時液晶顯示不出結(jié)果,Proteus圖表仿真還不能顯示出波形,因此通過Keil4的邏輯分析儀查看波形)。

        設(shè)置邏輯仿真儀,通過查看I0CLR和I0SET寄存器中的0X7FF值來查看輸出的P0~P10各I/O口引腳的電平。

        圖1所示為邏輯分析儀中與I0CLR=RS;I0CLR=RW兩條指令相對應(yīng)的時刻分別為21.733 44 μs,21.680 46 μs,相差的時間為5.298 ns,約為53 ns。

        對邏輯分析儀中I0CLR=RS;I0CLR=RW指令時序的分析:

        Keil4項目設(shè)定的Target中頻率為12 MHz,項目啟動代碼文件Sartup.s中定義為4:

        圖1 時序邏輯圖中各寄存器值及相對應(yīng)的時間

        PLLCFG_OFS EQU 0x04 ; PLL Configuration Offset

        一般把振蕩器頻率稱為Fosc[16],ARM處理器時鐘頻率稱為cclk。

        由于PLL定義為0x04,因此,CPU的時鐘頻率為:12×(4+1)=60 MHz

        在調(diào)試中查看對應(yīng)的匯編代碼如下:

        136:

        137: int main(void)

        138: {

        139: //寫指令時序測試

        0x00000390 E8BD4070 LDMIA R13!,{R4-R6,R14}

        0x00000394 E12FFF1E BX R14

        140: IO0CLR=rs; //全部清零

        0x00000398 E3A00C01 MOV R0,#0x00000100

        0x0000039C E59F102C LDR R1,[PC,#0x002C]

        0x000003A0 E581000C STR R0,[R1,#0x000C]

        141: IO0CLR=rw;

        0x000003A4 E3A00C02 MOV R0,#0x00000200

        0x000003A8 E581000C STR R0,[R1,#0x000C]

        142: IO0CLR=0xff; //先清零

        0x000003AC E3A000FF MOV R0,#0x000000FF

        0x000003B0 E581000C STR R0,[R1,#0x000C]

        143: IO0SET=0x08; //再送數(shù)

        0x000003B4 E3A00008 MOV R0,#0x00000008

        0x000003B8 E5810004 STR R0,[R1,#0x0004]

        144: IO0SET=en;

        145: // nop();

        146: // nop();

        0x000003BC E3A00B01 MOV R0,#0x00000400

        0x000003C0 E5810004 STR R0,[R1,#0x0004]

        147: IO0CLR=en;

        由C語言語句I0CLR=RS;對應(yīng)的匯編代碼為:

        0x00000398 E3A00C01 MOV R0,#0x00000100

        0x0000039C E59F102C LDR R1,[PC,#0x002C]

        0x000003A0 E581000C STR R0,[R1,#0x000C]

        與C語言相對應(yīng)的總共為3條匯編指令,CPU的時鐘頻率為:12×(4+1)=60 MHz,ARM是RISC結(jié)構(gòu),一個指令周期就是一個時鐘周期,指令周期為1/60=16.7 ns,3個指令時鐘的時間:16.7 ns×3=51 ns,與邏輯分析儀中與IO0CLR=rs;IO0CLR=RW;2條指令相對應(yīng)的時刻基本相符。

        由IO0SET=0x08;IO0SET=en;查看邏輯仿真儀中IOSET的值可知:IOSET由0變?yōu)?x08然后變?yōu)?x408,en保持為高電平的時間為值為Ox408的時段,時間為:21.916 25 μs-21.883 2 μs=0.033 32 μs=33 ns,達(dá)不到LCD1602引腳E脈沖寬度的最小時間:150 ns。

        由C語言語句I0SET=en對應(yīng)的匯編指令為兩條匯編指令,可以認(rèn)為I0SET=en;IO0CLR=en;執(zhí)行的過程中,IO0SET=en;執(zhí)行兩個時鐘周期:16.7×2=33 ns,與邏輯仿真儀所得的時間相符。

        144: IO0SET=en;

        0x000003BC E3A00B01 MOV R0,#0x00000400

        0x000003C0 E5810004 STR R0,[R1,#0x0004]

        由于電路的晶振為12 MHz時EN的高電平維持時間達(dá)不到LCD1602中EN高電平所需的最小時間,Proteus電路仿真時,LCD無法顯示出字符,但當(dāng)電路晶振降低后,指令執(zhí)行的時間增大,IO0SET=en指令中EN高電平的時間增加,符合LCD1602中EN高電平所需的最小時間,Proteus電路仿真時,LCD就可以顯示出字符,這就是相同的程序和電路,當(dāng)晶振頻率n降低到一定程度時,Proteus電路仿真電路正常而當(dāng)晶振頻率為12 MHz時,Proteus電路仿真電路不正常的原因。

        1.3 Keil4液晶顯示程序的修改及時序邏輯分析

        根據(jù)LCD1602技術(shù)手冊中的時序參數(shù),對Keil4的LCD1602液晶讀寫操作程序進(jìn)行修改。

        LCD1602讀寫時序的要求如表1所示。

        表1 LCD1602時序參數(shù) ns

        由表1可知,LCD 1602讀寫控制信號中E脈沖寬度周期最小值為150 ns,為了使EN的電平能保持時間符合LCD1602的要求,可在IO0SET=en;后加入延

        時,為了能用C語言實再現(xiàn)較精確的延時,可采用空指令函數(shù):

        //空函數(shù)

        __asm void nop(void)

        {

        NOP

        }

        在IO0SET=en;指令后增加相應(yīng)的空指令函數(shù):nop();忽略進(jìn)出函數(shù)的時間,空指令nop();執(zhí)行的時間為一個指令的時間:16.7 ns,加入兩個空指令函數(shù)后,EN高電平的時間變?yōu)椋?2.7 μs-21.933 μs=76.7 ns,大約增加了兩個指令周期的時間(76.7-33=43 ns,約等于16.7×2=33 ns.),在LCD 1602液晶顯示程序中,通過多個空指令函數(shù)的調(diào)用可實現(xiàn)對EN信號的脈沖寬度時度精確控制。

        通過Proteus的圖表仿真功能查看液晶顯示時對應(yīng)的邏輯電平時序:

        Proteus電路仿真成功后(能在指定的位置正常顯示出字符‘a(chǎn)’),可以使用Proteus圖表仿真查看LCD1602的時序:

        主程序最后執(zhí)行:WrDat('a');

        字符a的ASCII碼為:097,轉(zhuǎn)為16進(jìn)制數(shù)為:0x61,二進(jìn)制數(shù)為0110,0001。查看圖表仿真最后輸?shù)牡牟ㄐ危篋7D6D5D4D3D2D1D0對應(yīng)的電平為:LHHL,LLLH(對應(yīng)圖2中D7~D0),按數(shù)字電路的高低電平轉(zhuǎn)化為數(shù)字為:0110,0001,與字符a的ASCII碼相符。

        圖2 WrDat(′a′)函數(shù)顯示字符“a”時D0~D7的電平

        WrDat('a');為寫數(shù)據(jù)函數(shù),對應(yīng)LCD的操作為:

        寫數(shù)據(jù),輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖

        前面查看的D0~D7與輸入的數(shù)據(jù)相符,查看數(shù)據(jù)輸出前的RS,RW,E的高平分別為:H,L,H,并且E在數(shù)據(jù)D0~D7輸出一段時間后變?yōu)榈碗娖?圖3中RS,RW,E對應(yīng)的仿真波形),符合E=高脈沖的要求。

        在寫數(shù)據(jù)前的寫指令函數(shù)為:WrOp(0xc1),在圖表仿真中該函數(shù)對應(yīng)的波形如圖4所示。

        圖3 WrDat(′a′)函數(shù)時RS、RW、E的電平

        圖4 寫指令函數(shù):WrOp(0xc1)時各引腳對應(yīng)的電平

        可見RS、RW、E、D0~D7都符合函數(shù)的定義:

        寫指令,輸入:RS=L,RW=L,D0~D7=指令,E=高脈沖。輸出:RS=L,RW=L,E=高脈沖(圖4中RS,RW,E對應(yīng)的仿真波形),D7~D0:1100,0001,16進(jìn)制為何0xC1,正是寫指令函數(shù)輸出的指令碼。

        2 結(jié) 論

        在使用Keil 4開發(fā)嵌入式系統(tǒng)時,通過Keil 4的時序邏輯仿真可以查看程序代碼執(zhí)行時的邏輯及前后時序,可以用來驗證程序運(yùn)行的邏輯對應(yīng)關(guān)系,而使用Proteus的圖表仿真,可以查看程序在電路中的運(yùn)行時序,可以直觀的顯示程序在電路執(zhí)行的過程。在嵌入式系統(tǒng)開發(fā)中使用Keil 4時序邏輯及Proteus圖表仿真,可以對軟件及電路中出現(xiàn)的問題有針對性的分析,提高代碼的調(diào)試速度并增加系統(tǒng)的穩(wěn)定。

        國內(nèi)外對Keil 4邏輯仿真儀和Prouteus圖表仿真研究的相關(guān)文章較少,在嵌入式開發(fā)中將Keil4邏輯仿真儀和Prouteus圖表仿真結(jié)合綜合應(yīng)用的研究,經(jīng)檢索,國內(nèi)外還未有相關(guān)的研究,因此進(jìn)行相關(guān)的研究探索具有較高的意義。

        [1] 黎雪芬.Keil及Proteus軟件在單片機(jī)仿真教學(xué)中的應(yīng)用[J].裝備制造技術(shù),2012(3):49-50.

        [2] 王海燕,楊艷華.Proteus和Keil軟件在單片機(jī)實驗教學(xué)中的應(yīng)用[J].實驗室研究與探索,2012,31(5):88-91.

        [3] 劉昆磊,馬 超. Proteus仿真圖表在單片機(jī)教學(xué)過程中的應(yīng)用[J]. 內(nèi)江科技, 2010(8):139.

        [4] 趙金龍,趙 博,李 蕊. DS18B20測溫元件基于Proteus的仿真應(yīng)用[J]. 科技信息, 2009(28):307-308.

        [5] 于志贛,劉國平,張旭斌. 液顯LCD1602模塊的應(yīng)用[J]. 機(jī)電技術(shù), 2009(3):21.

        [6] 周靈彬,任開杰.基于Proteus的電路與PCB設(shè)計[M].北京:電子工業(yè)出版社,2010.

        [7] 吳小花,吳先球.Proteus電路設(shè)計與仿真在教學(xué)中的實踐[J].計算機(jī)系統(tǒng)應(yīng)用,2010,19(2):201-204.

        [8] 毛玉蓉. Proteus在單片機(jī)原理及應(yīng)用教學(xué)中的應(yīng)用[J]. 實驗科學(xué)與技術(shù), 2009(8):48.

        [9] 鄧 力. 使用Proteus仿真圖表對單片機(jī)指令時序仿真[J].科技通報,2013(5):130-133.

        [10] 王 娟.Proteus軟件在單片機(jī)專題實訓(xùn)中的應(yīng)用[J].實驗室研究與探索,2012,31(8):73-74.

        [11] 孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機(jī)實驗開發(fā)中的應(yīng)用[J].實驗室研究與探索,2008,27(4):59-61.

        [12] 鐘良驥. 基于PROTEUS軟件展開的單片機(jī)教學(xué)與科研[J]. 科技咨詢導(dǎo)報, 2007(26):243-244.

        [13] 劉文光,張銘銘.Proteu仿真在單片機(jī)課程項目式教學(xué)中的應(yīng)用[J].信息技術(shù)與信息化,2012(2):31-33.

        [14] 江 維,桑 楠.面向高等教育的嵌入式系統(tǒng)教學(xué)改革[J]. 計算機(jī)教育,2011(16):33-35.

        [15] 權(quán)寧一,權(quán)曉林.嵌入式系統(tǒng) 專業(yè)實驗教學(xué) 改革的探索與實踐[J].實驗技術(shù)與管理,2011(3):146-147.

        [16] 胡小玲. 一種超低功耗單片機(jī)MSP430F6736實驗裝置研制[J].實驗室研究與探索,2014,33(1): 69-72.

        Circuit Simulation Based on Keil Time Sequence Logic and Proteus

        DENGLi

        (Guilin University of Technology at Nanning, Nanning 530001, China)

        This paper introduces the functions and application fields of Keil and Proteus two software, introduces the situation of embedded simulation at home and abroad. In view of the problems in the Proteus simulation of LCD LCD1602, technical manual on the LCD1602 read write operation timing diagram LCD1602 pin temporal logic level is analyzed. Through Keil4 logic analyzer on procedures LCD1602 read and write timing view. According to a level of temporal logic analyzer wave type, liquid crystal display program code is amended to make the program in line with the LCD1602 read and write timing requirements. The Proteus chart analysis of the circuit program code is used to be executed when the view. It intuitively shows program in the executive circuit. In the embedded system development, by using Keil 4 temporal logic and Proteus simulation graph, the problem of the software and the circuit is analyzed. The paper also explores a new method of program execution timing by using Keil4 logic analyzer and Proteus chart analysis.

        Keil logic analyzer; circuit simulation; chart analysis

        2016-05-06

        廣西高等學(xué)校優(yōu)秀中青年骨干培養(yǎng)工程第一期(桂教人[2013] 16號);南寧市科學(xué)研究與技術(shù)開發(fā)計劃項目(科技攻關(guān)計劃20151038)

        鄧 力(1971-),男,瑤族,廣西梧州人,碩士,教授,研究方向為嵌入式系統(tǒng)、EDA技術(shù)。

        Tel.:13367815798;E-mail:dldl021@163.com

        TP 311

        A

        1006-7167(2017)01-0080-04

        猜你喜歡
        電路仿真電平時序
        時序坐標(biāo)
        基于Sentinel-2時序NDVI的麥冬識別研究
        基于Multisim的集成運(yùn)放應(yīng)用電路仿真分析
        電子制作(2018年19期)2018-11-14 02:37:02
        基于Multisim的功率放大電路仿真分析
        基于集成運(yùn)放的壓控振蕩電路仿真研究
        電子制作(2017年19期)2017-02-02 07:08:26
        一個新型對數(shù)混沌系統(tǒng)及其電路仿真
        電子制作(2016年15期)2017-01-15 13:39:42
        一種毫米波放大器時序直流電源的設(shè)計
        電子制作(2016年15期)2017-01-15 13:39:08
        NPC五電平Z源逆變器的設(shè)計研究
        基于三電平光伏并網(wǎng)逆變器控制系統(tǒng)的研究與實踐
        基于NPC三電平變換器的STATCOM研究
        電測與儀表(2015年2期)2015-04-09 11:28:58
        在线人妻va中文字幕 | 精品人妻无码视频中文字幕一区二区三区 | 欧美大屁股xxxx高潮喷水| 欧美黑人群一交| 亚洲最大中文字幕无码网站| 无码视频一区二区三区在线播放| 手机av男人天堂免费网址| 亚洲精品中文字幕乱码| 免费观看一区二区| 熟女系列丰满熟妇av| 亚洲免费精品一区二区| 人成综合视频在线播放| 九九久久自然熟的香蕉图片| 国产成人免费一区二区三区 | 欧美丰满大乳高跟鞋| 久久久久亚洲av无码a片软件 | 摸丰满大乳奶水www免费| 影音先锋女人av鲁色资源网久久| 亚洲成av人片在线观看麦芽| 乱中年女人伦av| 一区二区三区四区亚洲综合| 久久精品国产亚洲av网站| 国产av剧情久久精品久久| 蜜桃视频网站在线观看一区| 中文字幕一精品亚洲无线一区| 国产chinese男男gay视频网| 精品综合久久久久久99| 国产91精品丝袜美腿在线| 国产亚洲中文字幕一区| 国产精品 无码专区| 熟妇的荡欲色综合亚洲| 久热爱精品视频在线观看久爱 | 无码熟妇人妻av在线网站| 午夜天堂精品久久久久| 国产成人午夜精华液| 日韩av一区二区毛片| 中文字幕丰满人妻被公强| 蜜桃视频在线免费观看| 国产免费av片在线播放| 久久免费精品国产72精品剧情 | 成人动漫久久|