999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-04-10 12:05:43
實驗室研究與探索 2017年1期
關鍵詞:圖表指令單片機

鄧 力

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

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

鄧 力

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

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

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

0 引 言

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

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

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

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

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

1.1 仿真電路元件

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

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

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

int main(void)

{ //寫指令時序測試

IO0CLR=rs; //全部清零

IO0CLR=rw;

IO0CLR=0xff; //先清零

IO0SET=0x08; //再送數

IO0SET=en;

IO0CLR=en;

lcd_init();

IO0DIR=0x7ff; //設置為輸出

IO0CLR=0x7ff;

WrOp(0xc1);

WrDat('a');

while(1);

}

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

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

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

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

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

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

圖1 時序邏輯圖中各寄存器值及相對應的時間

PLLCFG_OFS EQU 0x04 ; PLL Configuration Offset

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

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

在調試中查看對應的匯編代碼如下:

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; //再送數

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;對應的匯編代碼為:

0x00000398 E3A00C01 MOV R0,#0x00000100

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

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

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

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

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

144: IO0SET=en;

0x000003BC E3A00B01 MOV R0,#0x00000400

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

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

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

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

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

表1 LCD1602時序參數 ns

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

時,為了能用C語言實再現較精確的延時,可采用空指令函數:

//空函數

__asm void nop(void)

{

NOP

}

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

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

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

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

字符a的ASCII碼為:097,轉為16進制數為:0x61,二進制數為0110,0001。查看圖表仿真最后輸的的波形:D7D6D5D4D3D2D1D0對應的電平為:LHHL,LLLH(對應圖2中D7~D0),按數字電路的高低電平轉化為數字為:0110,0001,與字符a的ASCII碼相符。

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

WrDat('a');為寫數據函數,對應LCD的操作為:

寫數據,輸入:RS=H,RW=L,D0~D7=數據,E=高脈沖

前面查看的D0~D7與輸入的數據相符,查看數據輸出前的RS,RW,E的高平分別為:H,L,H,并且E在數據D0~D7輸出一段時間后變為低電平(圖3中RS,RW,E對應的仿真波形),符合E=高脈沖的要求。

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

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

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

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

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

2 結 論

在使用Keil 4開發嵌入式系統時,通過Keil 4的時序邏輯仿真可以查看程序代碼執行時的邏輯及前后時序,可以用來驗證程序運行的邏輯對應關系,而使用Proteus的圖表仿真,可以查看程序在電路中的運行時序,可以直觀的顯示程序在電路執行的過程。在嵌入式系統開發中使用Keil 4時序邏輯及Proteus圖表仿真,可以對軟件及電路中出現的問題有針對性的分析,提高代碼的調試速度并增加系統的穩定。

國內外對Keil 4邏輯仿真儀和Prouteus圖表仿真研究的相關文章較少,在嵌入式開發中將Keil4邏輯仿真儀和Prouteus圖表仿真結合綜合應用的研究,經檢索,國內外還未有相關的研究,因此進行相關的研究探索具有較高的意義。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[15] 權寧一,權曉林.嵌入式系統 專業實驗教學 改革的探索與實踐[J].實驗技術與管理,2011(3):146-147.

[16] 胡小玲. 一種超低功耗單片機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

廣西高等學校優秀中青年骨干培養工程第一期(桂教人[2013] 16號);南寧市科學研究與技術開發計劃項目(科技攻關計劃20151038)

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

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

TP 311

A

1006-7167(2017)01-0080-04

猜你喜歡
圖表指令單片機
聽我指令:大催眠術
基于單片機的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
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
雙周圖表
足球周刊(2016年14期)2016-11-02 10:54:56
雙周圖表
足球周刊(2016年15期)2016-11-02 10:54:16
雙周圖表
足球周刊(2016年10期)2016-10-08 18:30:55
圖表
世界博覽(2016年16期)2016-09-27 18:25:26
主站蜘蛛池模板: 亚洲av成人无码网站在线观看| 99ri精品视频在线观看播放| 国内精品免费| 日本精品αv中文字幕| 亚洲首页在线观看| 国产99视频在线| 日韩精品成人在线| 91精品人妻互换| 亚洲精品无码久久久久苍井空| 欧美精品另类| 亚洲二区视频| 色首页AV在线| 国产精品一区二区在线播放| 国产免费久久精品99re丫丫一| 美女无遮挡被啪啪到高潮免费| 国产呦视频免费视频在线观看| 真实国产乱子伦高清| 亚洲浓毛av| 99草精品视频| 91欧洲国产日韩在线人成| www中文字幕在线观看| 国产天天色| 黄色网站不卡无码| 国产原创第一页在线观看| 日韩精品亚洲人旧成在线| 91精品亚洲| 专干老肥熟女视频网站| 91po国产在线精品免费观看| 在线永久免费观看的毛片| 97久久超碰极品视觉盛宴| 日韩大片免费观看视频播放| 免费观看男人免费桶女人视频| 亚洲嫩模喷白浆| 亚洲欧美自拍视频| 在线视频97| 国产乱子伦手机在线| 国产99视频精品免费视频7 | 波多野结衣中文字幕久久| 538国产视频| 99热这里只有成人精品国产| 亚洲天堂精品在线观看| 亚洲三级电影在线播放| 国产精品久久精品| 2019年国产精品自拍不卡| 黄色免费在线网址| 91国语视频| 国产迷奸在线看| 久久亚洲国产视频| 99re在线免费视频| 国产高清不卡| 日韩欧美成人高清在线观看| 在线观看国产精美视频| 狠狠色综合久久狠狠色综合| 国产99欧美精品久久精品久久| 国产乱子伦视频在线播放| 亚洲第一区在线| 青青草国产一区二区三区| 欧美色香蕉| 久久国产乱子伦视频无卡顿| 色噜噜狠狠狠综合曰曰曰| 欧洲av毛片| AV片亚洲国产男人的天堂| 91亚洲影院| 高清乱码精品福利在线视频| 亚洲成人精品在线| 国产小视频a在线观看| 91青草视频| 永久免费无码成人网站| 18禁高潮出水呻吟娇喘蜜芽| 亚洲精品午夜无码电影网| 麻豆精品在线视频| 综合社区亚洲熟妇p| 午夜啪啪网| 国产成人精品一区二区不卡| 国产男女免费完整版视频| 亚洲人成网站在线播放2019| 久996视频精品免费观看| 一区二区三区四区精品视频| 亚洲高清无在码在线无弹窗| 精品99在线观看| 亚洲天堂自拍| 亚洲精品日产精品乱码不卡|