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
主站蜘蛛池模板: 国产精品香蕉| 中文字幕亚洲精品2页| 国产精品久久久久久久伊一| 久综合日韩| 91精品国产综合久久香蕉922 | 国产99欧美精品久久精品久久| 91精品国产91欠久久久久| 尤物特级无码毛片免费| 2021国产在线视频| 国产成+人+综合+亚洲欧美| 亚洲成人动漫在线| 亚洲第一极品精品无码| 亚洲午夜18| 91小视频在线| 国产又黄又硬又粗| 精品国产Ⅴ无码大片在线观看81| 永久免费av网站可以直接看的| 干中文字幕| 99在线视频网站| 国产精品爆乳99久久| 在线观看无码a∨| 无码人中文字幕| 色首页AV在线| 国产欧美日韩视频怡春院| 日本人妻一区二区三区不卡影院| 亚洲性视频网站| 久久这里只精品热免费99| 国产人人乐人人爱| 国产v欧美v日韩v综合精品| 中文字幕乱妇无码AV在线| 性欧美在线| 欧美中文字幕在线二区| 人妻少妇乱子伦精品无码专区毛片| 无码人妻热线精品视频| 日韩精品一区二区深田咏美| 色妞www精品视频一级下载| 欧美精品不卡| 亚洲精品片911| 欧美爱爱网| 亚洲国产成熟视频在线多多| 青青草原国产免费av观看| 国产女人在线观看| 亚洲男人天堂网址| 99尹人香蕉国产免费天天拍| 国产精品无码翘臀在线看纯欲| 91麻豆精品视频| 国产麻豆永久视频| 国产毛片基地| 自慰网址在线观看| 久久毛片免费基地| 日本三级黄在线观看| 欧美成人精品一区二区| 国产午夜福利片在线观看| 成人免费网站在线观看| 国产精品三级av及在线观看| 亚洲欧洲自拍拍偷午夜色| 中文字幕欧美日韩高清| 午夜日b视频| 欧美亚洲综合免费精品高清在线观看 | 五月天在线网站| 99热这里只有精品久久免费| 国产欧美亚洲精品第3页在线| 又爽又黄又无遮挡网站| 亚洲日本www| 日韩av高清无码一区二区三区| 丁香亚洲综合五月天婷婷| 国产精品女主播| 国产福利大秀91| 亚洲愉拍一区二区精品| 精品人妻无码区在线视频| 巨熟乳波霸若妻中文观看免费| 国产精品午夜福利麻豆| av一区二区三区高清久久| 国产精品任我爽爆在线播放6080| 男女精品视频| 精品一區二區久久久久久久網站 | 在线精品视频成人网| 有专无码视频| 午夜综合网| 国产区在线看| av在线人妻熟妇| 久久综合丝袜日本网|