久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 怎樣使得單片機的LED燈閃爍又不影響主程序運行? [打印本頁]

作者: /Jake    時間: 2018-8-11 16:12
標題: 怎樣使得單片機的LED燈閃爍又不影響主程序運行?
51單片機問題,緊急求助!
怎樣使得單片機的LED燈閃爍又不影響主程序運行???
我想通過單片機接收串口命令讓一個LED燈閃爍,但同時又不影響其他程序的運行,應該怎樣去寫這個程序呢?

作者: zhujt    時間: 2018-8-11 16:46
用中斷來實現啊,在串口程序中觸發LED閃爍的標志位,定時器中斷監控這個位,并根據定時時長來改變LED狀態。
作者: 人中狼    時間: 2018-8-11 16:55
使用定時器來控制LED的閃爍,主程序只需要設置一個標志,來代表啟動或關閉閃爍,在定時器里判斷這個標志,并執行相應的操作
作者: wulin    時間: 2018-8-11 17:28
//可以放在主函數循環中,不影響其它程序
void Twinkle()
{
        static unsigned int count=0;//定義靜態局部變量
        if(sign==1)//如果閃爍標志為真,由串口命令使能
        {
                count++;//計數延時
                if(count>=30000)//可以按實際需要調整閃爍頻率
                {
                        count=0;
                        LED=~LED;        //LED取反
                }
        }
        else
        {
                count=0;                //計數變量清0
                LED=0;                        //LED熄滅
        }
}
作者: 哦喔噢哦哦    時間: 2018-8-11 17:32
把LED燈閃爍的程序寫進一個串口接收的函數,再把這個函數引入到主函數里。
作者: 1330012643    時間: 2018-8-11 18:27
通過判斷串口接收數據來打開或關閉一個定時器中斷,在這個中斷服務函數里面再寫led閃爍的代碼(不影響主函數),控制定時時間長短就可以控制閃爍頻率,led閃爍頻率(就是進入中斷頻率),這種頻率很低也不會影響主函數運行
作者: /Jake    時間: 2018-8-12 17:30
wulin 發表于 2018-8-11 17:28
//可以放在主函數循環中,不影響其它程序
void Twinkle()
{

謝謝您了,很有效果。
作者: yangjiawei123    時間: 2018-8-12 19:19
定時器中斷
作者: yangjiawei123    時間: 2018-8-12 19:19
定時器中斷,或者主函數設標志查詢
作者: ch12063119    時間: 2018-8-12 19:43
通過計數的方法,就是達到這個數就跳出循環,時間很短,不會影響主函數運行
作者: galvin123    時間: 2018-8-12 20:09
可以用定時器中斷,具體用法根據實際程序編寫需要靈活運用
作者: lang123    時間: 2018-8-12 22:29
中斷不就是實現這個功能的嗎
作者: xiaoyuzhou123    時間: 2018-8-12 23:34
讓LED閃爍怎么會影響其他程序?
作者: hopedream    時間: 2018-8-13 08:21
單獨的中斷處理比較好
作者: 13458736873    時間: 2018-8-13 08:59
單獨寫一個函數控制LED燈,然后在主函數的開頭調用就行了啊
作者: 200901289    時間: 2018-8-13 09:45
使用中斷實現,看門狗程序監控中斷位置,或者是做一個函數,使得和其他程序一起運行
作者: 200901289    時間: 2018-8-13 09:53
使用定時器中斷,或者主函數設標志查詢
作者: jiajuntao    時間: 2018-8-13 09:59
中斷計數延時置標,主函數判斷動作
作者: lxd2757    時間: 2018-8-13 10:30
定時器中斷是最合適的。
作者: KWay    時間: 2018-8-13 10:31
STM32的話就可以使用DMA,因為DMA不是由CPU執行的,不會影響到主程序。

作者: yacht06    時間: 2018-8-13 10:50
使用timer中斷,設置好中斷時間間隔,也就是你需要led燈閃爍的間隔,每進入一次讓LED狀態改變一次,完成閃爍功能
作者: lalalala256    時間: 2018-8-13 11:45
可以使用定時器終端,設置好時間間隔,在終端中實現led燈狀態翻轉
作者: qiuwhua    時間: 2018-8-13 11:46
采用定時器中斷
作者: woshige    時間: 2018-8-13 11:50
xiaoyuzhou123 發表于 2018-8-12 23:34
讓LED閃爍怎么會影響其他程序?

LED閃爍必然會涉及到延時,如果是用最基本的循環延時或者nop延時肯定是要影響CPU的處理的
作者: 如來佛!    時間: 2018-8-13 14:53
wulin 發表于 2018-8-11 17:28
//可以放在主函數循環中,不影響其它程序
void Twinkle()
{

太厲害了
作者: jdshjdd    時間: 2018-8-13 15:06
使用定時器產生中斷去控制LED閃爍
作者: 364401508    時間: 2018-8-13 15:49
定時器中斷,延時設置好參數
作者: mrjackyu    時間: 2018-8-13 16:27
使用定時器,設定100Hz執行一次,避免一直等待
作者: liuweiqi213654    時間: 2018-8-13 16:30
定時中斷啊
作者: kfhzy    時間: 2018-8-13 16:49
定時器中斷里 改變LED狀態
作者: w13955206936    時間: 2018-8-13 16:59
最簡單的方法就是用中斷,建議看看單片機手冊
作者: 821820338    時間: 2018-8-13 17:03
用定時器中斷
作者: 輝哥溜溜溜    時間: 2018-8-13 17:17
定時器中斷就ok

作者: 贛州網    時間: 2018-8-13 17:18
我是來要幣的 想下個資料
作者: xxxkkk123    時間: 2018-8-13 17:25
可以使用DMA
作者: zl2168    時間: 2018-8-13 18:30
本帖最后由 zl2168 于 2018-8-14 18:13 編輯

介紹你幾個參考案例,都有閃爍功能,又不影響主程序運行,自己去對照研究。
先Proteus仿真,確認有效。
實例91  具有校正功能的時鐘1302LCD1602顯示)
實例91 帶校正時鐘1302(LCD1602顯示).rar (52.68 KB, 下載次數: 10)


實例93  具有校正功能的時鐘1302LED數碼管顯示)
實例94  模擬電子鐘(由80C51定時器產生秒時基) 實例94 模擬電子鐘(由80C51定時器產生秒時基).rar (43.05 KB, 下載次數: 4)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1,書中電路和程序設計有詳細說明,程序語句條條有注解。

實例93 帶校正時分秒的時鐘1302(6位LED數碼管顯示).rar

732.75 KB, 下載次數: 5


作者: yosugonasora    時間: 2018-8-18 09:46
用中斷來寫
作者: bhq0934    時間: 2018-8-18 10:15
用定時器中斷實現
作者: jsq347    時間: 2018-8-18 17:11
用中斷來實現啊,在串口程序中觸發LED閃爍的標志位,定時器中斷監控這個位,并根據定時時長來改變LED狀態
作者: cona4142    時間: 2018-8-19 10:58
用中斷來實現
作者: 袁秉一    時間: 2018-8-19 13:06
main(){cnt++; delay_ms(10); if(cnt%10)led=!led; }
作者: 小水燦    時間: 2018-8-19 14:45
用中斷定時器實現
作者: michaelxingtop    時間: 2018-8-19 16:19
用中斷實現,LED在中斷程序里toogle就行了
作者: liuhailan5757    時間: 2018-8-19 16:37
在定時器中斷里取反一個IO就行了,要控制閃的頻率的話 就在中斷里加一個變量,變量++,當變量等于一個值再取反。
作者: yyfhr    時間: 2018-8-19 20:02
管腳口,看下有沒有PWM波輸出的復用管腳,沒有的話使用定時中斷
作者: Nightwatch    時間: 2018-8-19 21:10
可以通過中斷處理來實現,更高階的應用則是可以用中斷產生pwm來控制led的亮度
作者: 夜丶太迷茫    時間: 2018-8-20 16:03
用中斷實現
作者: 1984528951    時間: 2018-8-23 15:30
加在while里面應該不影響其他程序運行




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产精品自拍 | 日韩视频一区二区 | 欧美亚洲网站 | 日韩五月天 | 日日夜夜91 | 久久国产精品99久久久久 | 亚洲一区国产 | 国产成人av免费看 | 日韩中文字幕 | 亚洲日本视频 | 精品国产综合 | 国产亚洲一区二区三区 | 久久综合av | 欧美不卡在线 | 欧美日韩精品久久久免费观看 | 久久综合一区二区 | 国产精品久久久久久久久久久久久 | 国产高清免费视频 | 91动漫在线观看 | 欧美色综合天天久久综合精品 | 国产高清久久久 | 日本不卡高清视频 | 新91| 国产精品18久久久久久白浆动漫 | 日韩电影免费在线观看中文字幕 | 亚洲精品日韩综合观看成人91 | 国产成人99久久亚洲综合精品 | 一区二区三区四区国产 | 日本欧美大片 | 99精品久久99久久久久 | 亚洲精品第一 | 欧美一级毛片免费观看 | 国产夜恋视频在线观看 | 欧美一级欧美一级在线播放 | 亚洲国产精久久久久久久 | 久久久久国产精品 | 中文字幕电影在线观看 | 国产视频综合 | 黄色小视频大全 | 国产精品亚洲精品日韩已方 | 2018国产大陆天天弄 |