空間首頁 | 博客 | 存檔 | 朋友和群組 | 個人資料
文章內容
By   

第一個單片機入門小制作M430G2452控制LED時鍾

完全是業余搞的,除了單片機,所有器件都是廢物利用


MSP430單片機是多年以前TI的推廣免費申請的,開始動手學單片機,本來是引導家裡小朋友對此產生一點興趣,結果人家不感興趣啊






 
點擊: 0 | 評論: 19 | 分類: 缺省 | 論壇: 電子電玩 | 論壇帖子
QR Code
請用微信 掃一掃 掃描上面的二維碼,然後點擊頁面右上角的 ... 圖標,然後點擊 發送給朋友分享到朋友圈,謝謝!
分享:
分享到微信

文章評論

Matrix
無題
單片機編程過程,都是從少到多,一點點的實現的

中間遇到不同的問題,都在網上找到答案,有的卻不能,比如這一句

if( (P1IN&BUTTON1)==BUTTON1)

判斷這個按鈕有沒有被按下

之前少了一對括號
if( P1IN&BUTTON1==BUTTON1)

自己認為有沒有括號都一樣啊,所以出現了無法判斷按鈕按下的問題

位操作的優先權不是很高的嗎?

這個括號的缺失,阻礙了好久好久,各種做實驗,各種嘗試,最後才發現這裡的括號這麼重要

2020-11-09 17:46:54 | 引用
無題
上面不少金子

2020-11-09 17:47:30 | 引用
pws07
Matrix
無題
主要編程思路,

主循環顯示數字和小點

而顯示的內容,由時鍾中斷和按鈕引發的中斷控制

顯示的內容分4+1種模式
分秒,時分,月日,年,還有一個特別的計時器
按鈕1,單按循環顯示四個時間模式,長按進入計時器,單按按鈕1,啟動停止計時器,按鈕2清零計時器

按鈕2,長按進入設置,單按按鈕2循環進入設置分,秒,時,日,月,年。按鈕1,單按循環增加各種模式下的數字,最高年份2040


時間是由時鍾中斷驅動的,設置了時鍾中斷每秒鍾產生四次,而不是一秒一次,是為了控制閃爍的速度,可以讓兩個小點開關兩個狀態,在設置的時候,讓正在設置的數字每秒閃爍兩次

原來還設計了自動休眠功能,關閉LED顯示,進入休眠,只處理時間中斷,可以大幅度降低耗電,喚醒需要按一下按鈕才能看到時間,後來想想沒必要

測量了一下,LED顯示還是挺費電的,整體耗電大約最大25mA,最小15mA, AAA電池供電,容量大約700mAh, 算下來也就用一天多,也就是個玩具了

2020-11-09 17:48:17 | 引用
無題
發現另外一個問題,顯示數字1,最亮,最暗當然是8

顯示不同數字,亮度不一致的問題,就在於,不同數字點亮延遲時間是一樣的,筆畫多的就暗,筆畫少的就亮一些

那就改成不同的數字,延遲的時間做成跟筆畫數相關的,筆畫少,顯示時間短
switch ( n ){

case 0:

P2OUT = ~0b11111;
__delay_cycles(LOOPCOUNT-LOOPCOUNT/7);
break;
case 1:
P1OUT= 0b100000 | P1OUT;
P2OUT = ~0b11;
__delay_cycles(2*LOOPCOUNT/7);
break;
case 2:

P2OUT = ~(0b1 | 0b100 | 0b1000 | 0b100000);
__delay_cycles(LOOPCOUNT-2*LOOPCOUNT/7);
break;
case 3:

P2OUT = ~(0b1 | 0b10 | 0b100 | 0b100000);
__delay_cycles(LOOPCOUNT-2*LOOPCOUNT/7);
break;
case 4:
P1OUT= 0b100000 | P1OUT;
P2OUT = ~(0b10000 | 0b1 | 0b10 | 0b100000);
__delay_cycles(LOOPCOUNT-3*LOOPCOUNT/7);
break;
case 5:

P2OUT = ~(0b10000 | 0b100000 | 0b10 | 0b100);
__delay_cycles(LOOPCOUNT-2*LOOPCOUNT/7);
break;
case 6:

P2OUT = ~0b111110;
__delay_cycles(LOOPCOUNT-LOOPCOUNT/7);
break;
case 7:

P2OUT = ~0b11;
__delay_cycles(LOOPCOUNT-4*LOOPCOUNT/7);
break;
case 8:

P2OUT = ~0b111111;
__delay_cycles(LOOPCOUNT);
break;
case 9:

P2OUT = ~0b110111;;
__delay_cycles(LOOPCOUNT-LOOPCOUNT/7);
break;
}

2020-11-09 17:50:37 | 引用
Matrix
Matrix
無題
玩了一下超低耗電模式,

進入低耗電模式3,
LPM3;
推出,對應的就是
LPM3_EXIT;
就這麼簡單,

在60秒倒數後進入低耗電模式

按鈕中斷加入喚醒到正常模式


超低耗電模式,僅僅1.5微安左右,時鍾還在繼續走
喚醒以後,8mA,相差三個數量級

用一個四位萬用表沒量出來,用了一個五位的表,才看到這麼低的電流
印象深刻啊

2020-11-09 17:52:40 | 引用
無題
之前還覺得在電源上加了一個220微法的電容是過度使用資源,

一次在熄屏狀態下斷了電幾秒鍾,插回電,時鍾還繼續計數,說明超低耗電用一個電容足夠換電池的時間了

2020-11-09 17:54:08 | 引用
Matrix
Matrix
Re: 第一個單片機入門小制作M430G2452控制LED時鍾
加了一個茶色的塑料片,這是從老式錄像機上拆下來的

感覺好看了很多

最終還是把限流 電阻都去掉了,把工作電流調整到大約10mA, 加茶色片以後,亮度剛好,不算太暗,AAA充電電池可以支撐60個小時連續工作

後來,還是把休眠功能加上了,按鈕之後60秒,進入休眠,後來又加了沒一分鍾亮起來10秒鍾,相當於可以支撐360小時,
不過,要半個月就換電池,感覺也挺麻煩的,小玩具,不知道玩多久就沒興趣了



2020-11-09 17:55:18 | 引用
無題
新的任務來了,太太說,希望我能做一個花盆裡面土壤濕度檢查的工具,

我還沒有學會LCD1602,手頭也沒有土壤濕度的傳感器呢

2020-11-09 17:56:53 | 引用
Matrix
Matrix
無題
現在 的生活,最不缺的就是時鍾了,手機上,電腦上,電飯鍋,微波爐上,牆上的指針,就連LED台燈上也是時鍾,這個小制作實用的意義不大,僅僅是學習單片機的小作品,本來是中學生級別的小制作,可惜命不好,家裡小朋友沒興趣

2020-11-09 18:11:49 | 引用
上一頁12下一頁

發表評論


 
站點公告

Matrix

文章分類
缺省  
最新日志
此功能已被空間主人關閉
日志搜索
 
站點統計
點擊: 3548335
帖子數量: 4676
開辟個人空間: 2008-10-17
最後更新: 2023-04-22
快速導航
首頁
論壇
Classified Search Engine
黃頁/二手
北美個人空間
免費注冊
登錄
友情鏈接
此功能已被空間主人關閉
最新到訪
此功能已被空間主人關閉
 
 
 
 
 

 

加西網為北美中文網傳媒集團旗下網站