返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

 单片机教程 栏目导航   第一页..单片机入门教程    第二页..单片机c语言   第三页..红外遥控和步进电机    第四页..单片机问答

2.系统主要程序的设计---51系列单片机设计实例教程

(1)主程序

通过扫描P3.0—P3.2口,判断是否有按键按下,然后在20H内存单元的低3位的对应位置1标志,确定应执行的闪烁功能。当20H.0为1时,发光管轮流点亮;当20H.1为1时,发光管逐点点亮;当20H.2为1时,发光管间隔闪亮。在主程序对20H的低3位进行位值判定后,转入相应的闪烁控制程序。上电初始化时,对20H的最低位置1,系统进入轮流点亮方式。

(2)键扫描子程序

因按键较少,采用直接端口扫描键开关,用软件延时消抖确认后,对20H内存单元相应的位置1,并把其余位清零。

(3)闪烁控制程序

闪烁控制程序用来控制P1口的发光管发光变化方式,其中:

执行功能程序O(FUNO)时的P1口输出值变化为11111110—延时—11111101—延时—11111011—延时—11110111—延时—11101111—延时—11011111—延时—10111111—延时—01111111—结束转主程序。

执行功能程序1(FUN1)时的P1口输出变化为11111110—延时—11111100—延时—11111000—延时—11110000—延时—11100000—延时—11000000—延时—10000000—延时—00000000—延时—结束转主程序。

执行功能程序2(FUN2)时的P1口输出变化为10101010—延时—01010101—延时—结束转主程序。

(4)延时子程序

延时子程序由10ms和0.5s两个。用作键扫描消抖及发光管闪烁延时。发光管闪烁的快慢可由R4寄存器内的初值进行改变。

12个经典单片机程序设计实例:

闪烁LED小灯主程序图

数码管时钟电路的主程序

单键学习型遥控器的设计

15路电器遥控器的设计

自行车里程/速度计的设计

自动往返行驶小汽车的设计

遥控小汽车的设计

数码管时钟电路的设计

8*8点阵LED字符显示器的设计

8路输入模拟信号数值显示电路的设计

8路输入模拟信号数值显示电路程序

单键学习型遥控器的程序

如果对本文有疑问,请到论坛提问 编辑:51单片机学习网 @ 2009-10-20校对 中国开发板最佳品牌  版权:部分由编辑摘引,权利属原著作人