原创 短期大量的训练单片机程序才有效果

2013-7-18 11:18 1024 21 22 分类: 消费电子

    以前学习单片机程序都是有一截没一截的写些程序,总是没有效果,真要拿一个很简单的课程设计也可能会很头大。没有像做硬件那样的激情。

 

    不过激情和动力无非内在和外在,内在的兴趣只有做硬件才有激情,那么外在的课程设计考试可是实实在在的推动力,我在也坐不住要去写点程序了。
 
    第一个程序就是流水灯,当然是有要求的流水灯,不过也非常简单,要求用51控制最少10盏显示6种彩灯样式,可以用按键控制彩灯的暂停、继续、手动或者自动切换彩灯样式。用定时器和中断可以加分。 
 
    做硬件很简单,P0、P1控制16盏彩灯,三个按键都用二极管接入中断口0,硬件做出来后直接写程序,思路是很清晰的,把程序分别测试各个如按键功能彩灯功能都分别测试好后,巴拉巴拉整合写完后下载到单片机里,结果程序没有反应了,又重头到尾检查了程序,没有错呀!但是就是没有反应。就这样从晚上9点开始写到凌晨两点钟也没有解决。根据之前准备省级比赛的经验,当一个问题在晚上被发现自己却怎么也没有办法解决时,最好的解决办法就是睡一觉再说。果然在第二天早上打开程序一眼就发现了问题所在,稍微改动一下程序就解决了。
 
    错误是这样的,用51的8位自动填装(定时器3)来计算彩灯更换样式的时间,在函数顶端就先定义了一个全局变量time_number用在每次触发中断后计算时间长度,原本定时器100us定时触发一次中断,那就直接用if(time_number == 10000)就可以判断1秒钟,可是没注意到是在8位定时器中断里用的,以为和以前一样用16位(定时器2)用char定义一个数等于1000是没有问题的,万万没想到 0<=time_number<=255 。
 
    其实自己这两年的时间只是学习硬件方面的知识,软件方面仅仅是能用而已,在较为宽松的编程环境里不用考虑太多的关于变量大小的东西,也不太注意定时器的使用。但是经过流水灯,秒表这种外设不多却要打好基础的题目确实会让人提高不少。2个星期后的单片机课堂随堂练习原本两次课要求完成的交通灯程序在短时间内就完成了,第一次课下课就可以直接找老师登成绩,第二次课就可以自己学其他东西了。

文章评论1条评论)

登录后参与讨论

用户1602177 2013-7-18 11:18

短期大量的训练,不仅是对单片机学习,对于其他的学习来说,都是很有效的一种方法。但是,这种方法不好的地方就是,提高快,忘得也快~~
相关推荐阅读
用户1619551 2013-07-18 11:23
今年的国家比赛准备开始了 总结一下这一年
经过了一年,做了3个不痛不痒的毕业设计:   1、一个打地鼠游戏机,74hc595显示地鼠,独立按键代替地鼠,按下按键消灭一个地鼠,一个LCD12864来显示难度、学号、时间、得分,总评之...
用户1619551 2012-09-28 17:32
四天三夜的比赛结束了 先总结一下
    昨天晚上8点广西区大学生电子制作大赛正式封箱了,我们在第一天早上经过对比和根据自身实力选择了  (C)水位控制装置 。其实今年广西的题目都是有类似的题目在其他省的比赛里出现过。     ...
用户1619551 2012-09-17 17:01
比赛结果出来了 总结一下
    比赛结果没想到这么快就出来了,从大局上看水位控制题只要做了主从机基本都可以得到二等奖,精度能达到基本要求的+-2mm并有主从机的基本就保证一等奖。       想到评测那天到了评测...
用户1619551 2012-08-28 09:43
写在前面的话
一不小心就重修了线性代数和信号与系统线性分析,其实平时还有很多课程和实验,把这些学习的总结和笔记都整理后放到博客上,毕业时候就会知道知道自己到在重修后的一年里学到了些什么。...
我要评论
1
21
关闭 站长推荐上一条 /2 下一条