国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于有限狀態(tài)機的按鍵檢測

2015-01-06 05:14:15孔憲青
電腦知識與技術(shù) 2014年34期
關(guān)鍵詞:狀態(tài)機按鍵延時

孔憲青

摘要:介紹了一種C51下的按鍵檢測方式,并給出了程序的運行方法。

關(guān)鍵詞:節(jié)拍控制;按鍵檢測

中圖分類號:TP312 文獻標識碼:A 文章編號:1009-3044(2014)34-8154-02

用C語言在Keil軟件上進行單片機程序的編輯是常用的,其中按鍵檢測是必須的。傳統(tǒng)的最簡單的按鍵檢測就是使用延時去抖動,而去抖動的10ms左右時間是必須要通過指令來執(zhí)行的。通過一個定時器能實現(xiàn)的單片機節(jié)拍控制是無操作系統(tǒng)下最簡單的任務(wù)管理模式,如果按鍵檢測也使用這個節(jié)拍,可以使這10ms的時間也節(jié)省出來,可提高了CPU的運行效率,縮短了總線周期。

1 節(jié)拍控制實現(xiàn)對程序的事件處理和并行時序分配

通過狀態(tài)機檢測按鍵,必須使用節(jié)拍控制。狀態(tài)機不是連續(xù)的時間單位,它是以事件為中心的編程思想。因此必須把檢測按鍵變成事件來處理,而節(jié)拍控制是單片機實現(xiàn)多任務(wù)處理最好的方式,因此按鍵檢測就可以融合到節(jié)拍控制中。Main.c文件內(nèi)部while(1){……}采用一個定時中斷來產(chǎn)生節(jié)拍,例如AT89S52的16位定時器T2,設(shè)置T2為自動重裝,然后每5ms產(chǎn)生一個節(jié)拍。這樣在程序前臺[1]有一個節(jié)拍來控制任務(wù)的執(zhí)行。見下面程序:

1) 定義節(jié)拍 char beat[3]=0; //全局節(jié)拍的個數(shù)由并行模塊的數(shù)量決定

2) 設(shè)置節(jié)拍

3) 中斷方式激活節(jié)拍

4) 控制并行模塊while(1)

節(jié)拍控制要占用一個定時器產(chǎn)生節(jié)拍,定時器設(shè)置為低級。通過節(jié)拍的并行模式不是一個真正的并行結(jié)構(gòu)。單片機指令執(zhí)行是串行的,但宏觀上節(jié)拍的引入,使事件或任務(wù)的發(fā)生僅僅出現(xiàn)在時間軸的點上,任務(wù)就類似并行序列。

2 按鍵的檢測

傳統(tǒng)按鍵檢測就是加延時去掉抖動。類似這樣的:if(kex){ delay(xxx);if(key){……}}。狀態(tài)機檢測按鍵是要求利用節(jié)拍來檢測,節(jié)拍如果5ms一次。那么當檢測到按鍵的第一次數(shù)值進行保存,當?shù)诙喂?jié)拍到來時候,再去檢測。比較前后兩次的鍵值,如果相同則進入任務(wù)執(zhí)行。因為這時候的去抖動是靠節(jié)拍的間隔來是實現(xiàn)的,中間這段時間別空閑給CPU利用。對于按鍵來說,是通過狀態(tài)機方式來運行的狀態(tài)機檢測方式,具體運行模式見狀態(tài)機結(jié)構(gòu)圖1:

3 結(jié)束語

按鍵檢測是智能儀表最常用的,在快速響應(yīng)的場合按鍵的檢測需要浪費10~20ms的時間,如果按鍵很多,勢必造成大量無用的延時。該文從狀態(tài)機編程思想出發(fā),介紹在節(jié)拍控制下如何組織和檢測按鍵,使用了并行程序設(shè)計中的狀態(tài)機思想。其中要點是建立狀態(tài)機函數(shù),這種組織形式為類似的程序處理也提供了參考。

參考文獻:

[1] 侯殿有. 基于八位單片機的C語言程序設(shè)計[M]. 北京:北京大學出版社,2012.endprint

摘要:介紹了一種C51下的按鍵檢測方式,并給出了程序的運行方法。

關(guān)鍵詞:節(jié)拍控制;按鍵檢測

中圖分類號:TP312 文獻標識碼:A 文章編號:1009-3044(2014)34-8154-02

用C語言在Keil軟件上進行單片機程序的編輯是常用的,其中按鍵檢測是必須的。傳統(tǒng)的最簡單的按鍵檢測就是使用延時去抖動,而去抖動的10ms左右時間是必須要通過指令來執(zhí)行的。通過一個定時器能實現(xiàn)的單片機節(jié)拍控制是無操作系統(tǒng)下最簡單的任務(wù)管理模式,如果按鍵檢測也使用這個節(jié)拍,可以使這10ms的時間也節(jié)省出來,可提高了CPU的運行效率,縮短了總線周期。

1 節(jié)拍控制實現(xiàn)對程序的事件處理和并行時序分配

通過狀態(tài)機檢測按鍵,必須使用節(jié)拍控制。狀態(tài)機不是連續(xù)的時間單位,它是以事件為中心的編程思想。因此必須把檢測按鍵變成事件來處理,而節(jié)拍控制是單片機實現(xiàn)多任務(wù)處理最好的方式,因此按鍵檢測就可以融合到節(jié)拍控制中。Main.c文件內(nèi)部while(1){……}采用一個定時中斷來產(chǎn)生節(jié)拍,例如AT89S52的16位定時器T2,設(shè)置T2為自動重裝,然后每5ms產(chǎn)生一個節(jié)拍。這樣在程序前臺[1]有一個節(jié)拍來控制任務(wù)的執(zhí)行。見下面程序:

1) 定義節(jié)拍 char beat[3]=0; //全局節(jié)拍的個數(shù)由并行模塊的數(shù)量決定

2) 設(shè)置節(jié)拍

3) 中斷方式激活節(jié)拍

4) 控制并行模塊while(1)

節(jié)拍控制要占用一個定時器產(chǎn)生節(jié)拍,定時器設(shè)置為低級。通過節(jié)拍的并行模式不是一個真正的并行結(jié)構(gòu)。單片機指令執(zhí)行是串行的,但宏觀上節(jié)拍的引入,使事件或任務(wù)的發(fā)生僅僅出現(xiàn)在時間軸的點上,任務(wù)就類似并行序列。

2 按鍵的檢測

傳統(tǒng)按鍵檢測就是加延時去掉抖動。類似這樣的:if(kex){ delay(xxx);if(key){……}}。狀態(tài)機檢測按鍵是要求利用節(jié)拍來檢測,節(jié)拍如果5ms一次。那么當檢測到按鍵的第一次數(shù)值進行保存,當?shù)诙喂?jié)拍到來時候,再去檢測。比較前后兩次的鍵值,如果相同則進入任務(wù)執(zhí)行。因為這時候的去抖動是靠節(jié)拍的間隔來是實現(xiàn)的,中間這段時間別空閑給CPU利用。對于按鍵來說,是通過狀態(tài)機方式來運行的狀態(tài)機檢測方式,具體運行模式見狀態(tài)機結(jié)構(gòu)圖1:

3 結(jié)束語

按鍵檢測是智能儀表最常用的,在快速響應(yīng)的場合按鍵的檢測需要浪費10~20ms的時間,如果按鍵很多,勢必造成大量無用的延時。該文從狀態(tài)機編程思想出發(fā),介紹在節(jié)拍控制下如何組織和檢測按鍵,使用了并行程序設(shè)計中的狀態(tài)機思想。其中要點是建立狀態(tài)機函數(shù),這種組織形式為類似的程序處理也提供了參考。

參考文獻:

[1] 侯殿有. 基于八位單片機的C語言程序設(shè)計[M]. 北京:北京大學出版社,2012.endprint

摘要:介紹了一種C51下的按鍵檢測方式,并給出了程序的運行方法。

關(guān)鍵詞:節(jié)拍控制;按鍵檢測

中圖分類號:TP312 文獻標識碼:A 文章編號:1009-3044(2014)34-8154-02

用C語言在Keil軟件上進行單片機程序的編輯是常用的,其中按鍵檢測是必須的。傳統(tǒng)的最簡單的按鍵檢測就是使用延時去抖動,而去抖動的10ms左右時間是必須要通過指令來執(zhí)行的。通過一個定時器能實現(xiàn)的單片機節(jié)拍控制是無操作系統(tǒng)下最簡單的任務(wù)管理模式,如果按鍵檢測也使用這個節(jié)拍,可以使這10ms的時間也節(jié)省出來,可提高了CPU的運行效率,縮短了總線周期。

1 節(jié)拍控制實現(xiàn)對程序的事件處理和并行時序分配

通過狀態(tài)機檢測按鍵,必須使用節(jié)拍控制。狀態(tài)機不是連續(xù)的時間單位,它是以事件為中心的編程思想。因此必須把檢測按鍵變成事件來處理,而節(jié)拍控制是單片機實現(xiàn)多任務(wù)處理最好的方式,因此按鍵檢測就可以融合到節(jié)拍控制中。Main.c文件內(nèi)部while(1){……}采用一個定時中斷來產(chǎn)生節(jié)拍,例如AT89S52的16位定時器T2,設(shè)置T2為自動重裝,然后每5ms產(chǎn)生一個節(jié)拍。這樣在程序前臺[1]有一個節(jié)拍來控制任務(wù)的執(zhí)行。見下面程序:

1) 定義節(jié)拍 char beat[3]=0; //全局節(jié)拍的個數(shù)由并行模塊的數(shù)量決定

2) 設(shè)置節(jié)拍

3) 中斷方式激活節(jié)拍

4) 控制并行模塊while(1)

節(jié)拍控制要占用一個定時器產(chǎn)生節(jié)拍,定時器設(shè)置為低級。通過節(jié)拍的并行模式不是一個真正的并行結(jié)構(gòu)。單片機指令執(zhí)行是串行的,但宏觀上節(jié)拍的引入,使事件或任務(wù)的發(fā)生僅僅出現(xiàn)在時間軸的點上,任務(wù)就類似并行序列。

2 按鍵的檢測

傳統(tǒng)按鍵檢測就是加延時去掉抖動。類似這樣的:if(kex){ delay(xxx);if(key){……}}。狀態(tài)機檢測按鍵是要求利用節(jié)拍來檢測,節(jié)拍如果5ms一次。那么當檢測到按鍵的第一次數(shù)值進行保存,當?shù)诙喂?jié)拍到來時候,再去檢測。比較前后兩次的鍵值,如果相同則進入任務(wù)執(zhí)行。因為這時候的去抖動是靠節(jié)拍的間隔來是實現(xiàn)的,中間這段時間別空閑給CPU利用。對于按鍵來說,是通過狀態(tài)機方式來運行的狀態(tài)機檢測方式,具體運行模式見狀態(tài)機結(jié)構(gòu)圖1:

3 結(jié)束語

按鍵檢測是智能儀表最常用的,在快速響應(yīng)的場合按鍵的檢測需要浪費10~20ms的時間,如果按鍵很多,勢必造成大量無用的延時。該文從狀態(tài)機編程思想出發(fā),介紹在節(jié)拍控制下如何組織和檢測按鍵,使用了并行程序設(shè)計中的狀態(tài)機思想。其中要點是建立狀態(tài)機函數(shù),這種組織形式為類似的程序處理也提供了參考。

參考文獻:

[1] 侯殿有. 基于八位單片機的C語言程序設(shè)計[M]. 北京:北京大學出版社,2012.endprint

猜你喜歡
狀態(tài)機按鍵延時
基于有限狀態(tài)機的按鍵檢測程序設(shè)計
電子制作(2021年3期)2021-06-16 03:14:26
基于級聯(lián)步進延時的順序等效采樣方法及實現(xiàn)
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計
電子制作(2016年1期)2016-11-07 08:43:05
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
船舶力學(2015年6期)2015-12-12 08:52:20
桑塔納車發(fā)動機延時熄火
光控觸摸延時開關(guān)設(shè)計
河南科技(2014年23期)2014-02-27 14:19:00
按鍵的多種狀態(tài)檢測及消抖處理方法
家電科技(2013年4期)2013-07-09 10:55:08
解析某型號手機按鍵檢測程序的缺陷
FPGA設(shè)計中狀態(tài)機安全性研究
黑龍江科學(2011年2期)2011-03-14 00:39:36
怀来县| 易门县| 安庆市| 遂宁市| 乐业县| 南乐县| 喀喇沁旗| 剑川县| 岱山县| 探索| 丽水市| 山西省| 固镇县| 阳东县| 安多县| 扎鲁特旗| 吉林市| 威远县| 监利县| 曲水县| 靖远县| 读书| 开阳县| 托里县| 千阳县| 隆德县| 九龙县| 韶山市| 当涂县| 宁强县| 宜章县| 四平市| 沙坪坝区| 巴彦县| 三穗县| 兰西县| 红桥区| 镇平县| 邛崃市| 永城市| 博野县|