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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13332|回復: 47
收起左側

怎樣使得單片機的LED燈閃爍又不影響主程序運行?

  [復制鏈接]
回帖獎勵 25 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
ID:222821 發表于 2018-8-11 16:12 | 顯示全部樓層 |閱讀模式
51單片機問題,緊急求助!
怎樣使得單片機的LED燈閃爍又不影響主程序運行???
我想通過單片機接收串口命令讓一個LED燈閃爍,但同時又不影響其他程序的運行,應該怎樣去寫這個程序呢?
回復

使用道具 舉報

ID:385298 發表于 2018-8-11 16:46 | 顯示全部樓層
用中斷來實現啊,在串口程序中觸發LED閃爍的標志位,定時器中斷監控這個位,并根據定時時長來改變LED狀態。
回復

使用道具 舉報

ID:384109 發表于 2018-8-11 16:55 | 顯示全部樓層
使用定時器來控制LED的閃爍,主程序只需要設置一個標志,來代表啟動或關閉閃爍,在定時器里判斷這個標志,并執行相應的操作
回復

使用道具 舉報

ID:213173 發表于 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熄滅
        }
}

評分

參與人數 2黑幣 +23 收起 理由
jipinxlm + 8 贊一個!
yousunny + 15 很給力!

查看全部評分

回復

使用道具 舉報

ID:385308 發表于 2018-8-11 17:32 | 顯示全部樓層
把LED燈閃爍的程序寫進一個串口接收的函數,再把這個函數引入到主函數里。
回復

使用道具 舉報

ID:298053 發表于 2018-8-11 18:27 | 顯示全部樓層
通過判斷串口接收數據來打開或關閉一個定時器中斷,在這個中斷服務函數里面再寫led閃爍的代碼(不影響主函數),控制定時時間長短就可以控制閃爍頻率,led閃爍頻率(就是進入中斷頻率),這種頻率很低也不會影響主函數運行
回復

使用道具 舉報

ID:222821 發表于 2018-8-12 17:30 | 顯示全部樓層
wulin 發表于 2018-8-11 17:28
//可以放在主函數循環中,不影響其它程序
void Twinkle()
{

謝謝您了,很有效果。
回復

使用道具 舉報

ID:385559 發表于 2018-8-12 19:19 | 顯示全部樓層
定時器中斷
回復

使用道具 舉報

ID:385559 發表于 2018-8-12 19:19 | 顯示全部樓層
定時器中斷,或者主函數設標志查詢
回復

使用道具 舉報

ID:364278 發表于 2018-8-12 19:43 | 顯示全部樓層
通過計數的方法,就是達到這個數就跳出循環,時間很短,不會影響主函數運行
回復

使用道具 舉報

ID:385569 發表于 2018-8-12 20:09 | 顯示全部樓層
可以用定時器中斷,具體用法根據實際程序編寫需要靈活運用
回復

使用道具 舉報

ID:355699 發表于 2018-8-12 22:29 | 顯示全部樓層
中斷不就是實現這個功能的嗎
回復

使用道具 舉報

ID:385613 發表于 2018-8-12 23:34 | 顯示全部樓層
讓LED閃爍怎么會影響其他程序?
回復

使用道具 舉報

ID:385629 發表于 2018-8-13 08:21 | 顯示全部樓層
單獨的中斷處理比較好
回復

使用道具 舉報

ID:385582 發表于 2018-8-13 08:59 | 顯示全部樓層
單獨寫一個函數控制LED燈,然后在主函數的開頭調用就行了啊
回復

使用道具 舉報

ID:385659 發表于 2018-8-13 09:45 | 顯示全部樓層
使用中斷實現,看門狗程序監控中斷位置,或者是做一個函數,使得和其他程序一起運行
回復

使用道具 舉報

ID:385659 發表于 2018-8-13 09:53 | 顯示全部樓層
使用定時器中斷,或者主函數設標志查詢
回復

使用道具 舉報

ID:104472 發表于 2018-8-13 09:59 | 顯示全部樓層
中斷計數延時置標,主函數判斷動作
回復

使用道具 舉報

ID:379051 發表于 2018-8-13 10:30 | 顯示全部樓層
定時器中斷是最合適的。
回復

使用道具 舉報

ID:371798 發表于 2018-8-13 10:31 | 顯示全部樓層
STM32的話就可以使用DMA,因為DMA不是由CPU執行的,不會影響到主程序。
回復

使用道具 舉報

ID:385699 發表于 2018-8-13 10:50 | 顯示全部樓層
使用timer中斷,設置好中斷時間間隔,也就是你需要led燈閃爍的間隔,每進入一次讓LED狀態改變一次,完成閃爍功能
回復

使用道具 舉報

ID:385727 發表于 2018-8-13 11:45 | 顯示全部樓層
可以使用定時器終端,設置好時間間隔,在終端中實現led燈狀態翻轉
回復

使用道具 舉報

ID:385723 發表于 2018-8-13 11:46 | 顯示全部樓層
采用定時器中斷
回復

使用道具 舉報

ID:174087 發表于 2018-8-13 11:50 | 顯示全部樓層
xiaoyuzhou123 發表于 2018-8-12 23:34
讓LED閃爍怎么會影響其他程序?

LED閃爍必然會涉及到延時,如果是用最基本的循環延時或者nop延時肯定是要影響CPU的處理的
回復

使用道具 舉報

ID:385798 發表于 2018-8-13 14:53 | 顯示全部樓層
wulin 發表于 2018-8-11 17:28
//可以放在主函數循環中,不影響其它程序
void Twinkle()
{

太厲害了
回復

使用道具 舉報

ID:385808 發表于 2018-8-13 15:06 | 顯示全部樓層
使用定時器產生中斷去控制LED閃爍
回復

使用道具 舉報

ID:381280 發表于 2018-8-13 15:49 | 顯示全部樓層
定時器中斷,延時設置好參數
回復

使用道具 舉報

ID:385861 發表于 2018-8-13 16:27 | 顯示全部樓層
使用定時器,設定100Hz執行一次,避免一直等待
回復

使用道具 舉報

ID:385864 發表于 2018-8-13 16:30 | 顯示全部樓層
定時中斷啊
回復

使用道具 舉報

ID:385881 發表于 2018-8-13 16:49 | 顯示全部樓層
定時器中斷里 改變LED狀態
回復

使用道具 舉報

ID:385885 發表于 2018-8-13 16:59 | 顯示全部樓層
最簡單的方法就是用中斷,建議看看單片機手冊
回復

使用道具 舉報

ID:385695 發表于 2018-8-13 17:03 | 顯示全部樓層
用定時器中斷
回復

使用道具 舉報

ID:342142 發表于 2018-8-13 17:17 | 顯示全部樓層
定時器中斷就ok
回復

使用道具 舉報

ID:385895 發表于 2018-8-13 17:18 | 顯示全部樓層
我是來要幣的 想下個資料
回復

使用道具 舉報

ID:385897 發表于 2018-8-13 17:25 | 顯示全部樓層
可以使用DMA
回復

使用道具 舉報

ID:111634 發表于 2018-8-13 18:30 | 顯示全部樓層
本帖最后由 zl2168 于 2018-8-14 18:13 編輯

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

實例93  具有校正功能的時鐘1302LED數碼管顯示) 帶校正時分秒的時鐘1302(6位LED數碼管顯示).jpg
實例94  模擬電子鐘(由80C51定時器產生秒時基) 實例94 模擬電子鐘(由80C51定時器產生秒時基).rar (43.05 KB, 下載次數: 4)
模擬電子鐘.jpg
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1,書中電路和程序設計有詳細說明,程序語句條條有注解。

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

732.75 KB, 下載次數: 5

回復

使用道具 舉報

ID:362591 發表于 2018-8-18 09:46 | 顯示全部樓層
用中斷來寫
回復

使用道具 舉報

ID:387479 發表于 2018-8-18 10:15 | 顯示全部樓層
用定時器中斷實現
回復

使用道具 舉報

ID:385372 發表于 2018-8-18 17:11 | 顯示全部樓層
用中斷來實現啊,在串口程序中觸發LED閃爍的標志位,定時器中斷監控這個位,并根據定時時長來改變LED狀態
回復

使用道具 舉報

ID:387767 發表于 2018-8-19 10:58 | 顯示全部樓層
用中斷來實現
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一二三区在线观看 | 黄色一级视频 | 精产嫩模国品一二三区 | 四虎影院免费在线播放 | 国产精品欧美一区二区三区不卡 | 午夜久草 | 久久久久久久久久久久一区二区 | 亚洲精品国产电影 | 国产一区不卡 | 久久久亚洲 | 国产片侵犯亲女视频播放 | 国产视频久久 | 亚洲精品久久久一区二区三区 | 亚洲视频中文字幕 | 日本免费小视频 | 欧美综合国产精品久久丁香 | 精品久久一区 | 亚洲国产免费 | caoporn视频在线 | 国产91网站在线观看 | 久久免费视频观看 | 国产精品久久国产精品久久 | 成人不卡 | 男女免费在线观看视频 | 国产成人网 | 成人欧美一区二区三区黑人孕妇 | 91久久精品一区二区三区 | 草草视频在线播放 | 国产成人精品免费视频大全最热 | 中文字幕视频在线观看 | 天堂一区 | 国产日韩精品一区二区 | 亚洲美女av网站 | 欧美亚洲一区二区三区 | 亚洲精品久久久久久国产精华液 | 成人在线免费 | 情侣酒店偷拍一区二区在线播放 | 插插插干干干 | 成人黄色电影免费 | 久草网站| 91免费高清视频 |