找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3014|回復: 11
收起左側

按鍵失去控制,不知道原因在哪,請各位大神賜教

[復制鏈接]
ID:288202 發(fā)表于 2018-4-27 17:15 | 顯示全部樓層 |閱讀模式
本帖最后由 小白帆 于 2018-4-27 17:22 編輯

各位大神,小白請指教!
我想實現(xiàn)的功能是萬年歷+模擬根據(jù)有人或沒人以及環(huán)境的亮度控制LED燈的亮度+按鍵控制LED燈的亮度,我是先把這三個功能分別實現(xiàn)后再將程序組合起來的,現(xiàn)在可實現(xiàn)顯示萬年歷,和根據(jù)有人或沒人以及環(huán)境的亮度控制LED燈的亮度,但是按鍵沒有反應,不知道這怎么回事?還有就是不知道為什么,如果是直接讓LED由高電平驅動點亮的連接接法,執(zhí)行仿真時,沒有相應的LED驅動代碼居然也能亮;而如果是低電平驅動點亮的方式連接的話,LED點亮的代碼放在main函數(shù)里的while(1)外,無法看到LED點亮的效果,如果是放在while里面,是LED卻是閃爍的,但如果按鍵按多了,它好像有又不亮也不閃了。如果是放在鍵按鍵掃描函數(shù)里按鍵判斷程序外面,也是LED閃爍,且按鍵按多幾次就不再亮也不再閃爍了。如果是放在某個按鍵判斷按下后,按按鍵也是沒有反應,這究竟問題出在哪了?之前沒組合起來的時候按鍵是都有反應的

按鍵P3.0-P3.4功能分別是:set(設置)add(),dec(),seeNL_NZ(查看農歷鬧鐘)、model(LED亮度控制模式的切換,即是自動控、按鍵控制進行切換)
操作說明:
1、直接運行仿真?梢钥吹斤@示項目分別是:年月日,星期,時分秒,溫。
2、如需查看農歷,按下seeNL_NZ(查看農歷鬧鐘)鍵,即可看到農歷,同時還會顯示(ping/run)平/潤年,再按一次此鍵,可查看鬧鐘時間。
設置說明:
1、 設置日期時間:按下set(設置)鍵,時間會暫停,蜂鳴器會長響一次,顯示年位置會有光標閃爍,表示此時可以調節(jié)年份,如需調節(jié)年份,按add(加),dec(減)即可對年份進行調節(jié)。然后再按一次set(設置)鍵,顯示月份位置會光標閃爍,同樣的方法可以調節(jié)月,再按set鍵分別可設置日,時,分,秒。
2、 調整鬧鐘時間:將顯示調至鬧鐘顯示界面,再按下set(設置)鍵,即可對鬧鐘的時分秒進行調節(jié)。
3、整點報時,鬧鐘開啟與關閉:同時按下set+add鍵,可開啟或關閉整點報時,蜂鳴器會有提示,如響一聲表示開,響兩聲表示關閉;同時按下set+dec鍵,可開啟或關閉鬧鐘功能,同時蜂鳴器會有提示,響一聲表示開,響兩聲表示關閉。
4、按鍵控制LED亮度,在切換到按鍵控制模式后,通過pwm的方式由按鍵控制LED的亮度,add是加大了LED亮度,dec是減小LED亮度。




程序 仿真.rar

259.11 KB, 下載次數(shù): 6

這是程序和proteus仿真

回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-27 17:23 | 顯示全部樓層
論壇管理員,為什么我沒設置附件下載需要黑幣,它自動就有了,這樣別人怎么會幫我解答問題呀?
回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-27 17:25 | 顯示全部樓層
這是程序和proteus仿真,請各位大神幫幫小弟

程序 仿真.rar

259.11 KB, 下載次數(shù): 13

程序和proteus仿真

回復

使用道具 舉報

ID:1 發(fā)表于 2018-4-27 21:03 | 顯示全部樓層
小白帆 發(fā)表于 2018-4-27 17:23
論壇管理員,為什么我沒設置附件下載需要黑幣,它自動就有了,這樣別人怎么會幫我解答問題呀?

24小時必答區(qū)下載不用黑幣的
回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-27 21:48 | 顯示全部樓層
admin 發(fā)表于 2018-4-27 21:03
24小時必答區(qū)下載不用黑幣的

謝謝管理員
回復

使用道具 舉報

ID:164602 發(fā)表于 2018-4-28 08:53 | 顯示全部樓層
這種按鍵功能,特別是你的set功能鍵,一定要用外部中斷,才能打斷程序,進入設置程序。
你想想。阂粋程序正常執(zhí)行在時間的讀取和顯示部分,就無法掃描你的鍵盤,你按鍵當然就不會有反應,而且掃描鍵盤的時間好短的,你按鍵只能碰運氣——恰好讓程序掃描到你在按鍵——那個機率太小了。
看了你的程序,就是沒有發(fā)現(xiàn)外部中斷的服務函數(shù),所以,可以肯定,按鍵不起作用的原因——外部中斷。!

回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-28 23:30 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2018-4-28 08:53
這種按鍵功能,特別是你的set功能鍵,一定要用外部中斷,才能打斷程序,進入設置程序。
你想想。阂粋程 ...

您好,謝謝您的答復!
我試過您的方法,但是沒有效果呀


微信截圖_20180428231912.png
微信截圖_20180428231942.png
微信截圖_20180428232047.png

clock2.rar

121.8 KB, 下載次數(shù): 2

更改后的程序

回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-28 23:34 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2018-4-28 08:53
這種按鍵功能,特別是你的set功能鍵,一定要用外部中斷,才能打斷程序,進入設置程序。
你想想。阂粋程 ...

您好,謝謝您的答復!
我試過您的方法,但是沒有效果呀
微信截圖_20180428231912.png
微信截圖_20180428231942.png
微信截圖_20180428232047.png

clock2.rar

121.8 KB, 下載次數(shù): 2

更改后的程序

回復

使用道具 舉報

ID:288202 發(fā)表于 2018-4-29 21:30 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2018-4-28 08:53
這種按鍵功能,特別是你的set功能鍵,一定要用外部中斷,才能打斷程序,進入設置程序。
你想想。阂粋程 ...

我現(xiàn)在把自動控制LED的亮度的程序放在主程序main的while中了,這樣就可以設置時間和鬧鐘了,但是后面再加手動控制LED亮度在主程序main的while中的時候,按鍵5的模式好像不起作用,無論按鍵5如何切換,自動控制和手動控制的LED無法再滅
回復

使用道具 舉報

ID:319499 發(fā)表于 2018-4-30 18:18 | 顯示全部樓層
按鍵掃描不要放中斷里,最好用分時掃描,又不用加延時,處理又不會卡滯
回復

使用道具 舉報

ID:288202 發(fā)表于 2018-5-2 08:26 | 顯示全部樓層
kangkang99 發(fā)表于 2018-4-30 18:18
按鍵掃描不要放中斷里,最好用分時掃描,又不用加延時,處理又不會卡滯

您好,沒明白您的回答的意思是什么。
是“http://www.torrancerestoration.com/bbs/forum.php?mod=viewthread&tid=19357”這種按鍵的處理方法還是?
回復

使用道具 舉報

ID:320217 發(fā)表于 2018-5-2 09:44 | 顯示全部樓層
線沒接對
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表