先说说我我是怎么学单片机的吧
我单片机入门时看了天祥电子的十天学会单片机
如果有网友还没入门的话一定要看看这个教程
在次也要感谢天祥大哥能给这样的教程给大家
有机会见面请你喝酒啊哈哈……:lol
但是学那个教程入门可以但是真的要写些东西去卖就有点难了
工作以后感觉最大的是程序体变了接下来就给大家来说一下这个程序体该怎么写
首先要定个主程序的时基,来定时执行下面的子程序。
比如说我的主程序的时基是2ms在扫描各子程序之前用查询定时器标志位的方式来查询是否到了2ms
到了2ms扫描各个子程序,没到2ms就继续查询等待!
这样做的好处是扫描各个子程序的时间固定,易于添加其它程序!
这样的做法的前提是你各个子程序扫描一次的时间要小于2ms
下面举个例子来说明一下
如果我要做一个闹钟子程序有3个
按键扫描
数码管扫描
时间计时
程序会每隔2ms来扫描一遍这三个子程序
按键扫描程序,读取管脚电平,如果没有按键按下跳出有按键按下存储管脚状态,比较前次和本次状态是否相同,相同按键计时寄存器加一,不相同则清除按键计时寄存器跳出,看好,判断有键无键都跳出子程序扫描,只是对按键计时寄存器来操作(以后会结合程序详说明)。
在按键计时寄存器达到一定数值则说明此键有效数码管扫描时主程序没2ms扫描一个数码管,扫描一个数码管后,接通数码管的电平就固定了,这样再执行其它程序,数码管也会一直点亮,这样要比传统的数码管扫描程序用延时更加省单片机的时序。数码管也会显示更加稳定,以前用简单延时写出数码管显示用手一碰就会有鬼影,用这种方法就不会。
计时程序在这样的主程序体下就更加随便写了
以为是每2ms进时间计时程序一次,所以每进一次就给相应的计时寄存器加一就可以方便计时了。