空间首页 | 博客 | 存档 | 朋友和群组 | 个人资料
文章内容
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

文章分类
缺省  
最新日志
此功能已被空间主人关闭
日志搜索
 
站点统计
点击: 3488450
帖子数量: 4676
开辟个人空间: 2008-10-17
最后更新: 2023-04-22
快速导航
首页
论坛
Classified Search Engine
黄页/二手
北美个人空间
免费注册
登录
友情链接
此功能已被空间主人关闭
最新到访
此功能已被空间主人关闭
 
 
 
 
 

 

加西网为北美中文网传媒集团旗下网站