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

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

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

(1)初始化程序

在本系统初始化程序中,主要完成以下工作:将T1设为外部控制定时器方式;外中断0及外中断1设为边沿触发方式;将部分内存单元清零;设置轮子周长值;开中断及定时器;将EEPROM中的数据调入内存等。

(2)轮圈设置出错处理程序

P1.2、P1.3、P1.6、P1.7端口的开关由于设定轮子的周长,当没有定时(至少让一个开关闭合),能从P3.1口输出一个周期为0.5s的方波信号,用作发光管闪烁及信响器提醒。

(3)主程序

主程序根据P3.0口的开关状态选择里程或速度显示,其流程图如图12.3所示。

(4)里程计数程序(外中断0服务程序)

外中断0服务程序用于对12脚输入的圈脉冲进行计数,为16进制计数器。60H为低位,62H为高位。每计数一次后,对里程数据进行一次存储操作。

(5)外中断1服务程序

外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为1时,说明计数器溢出,放入最大时间值(为#OFFH);当标志位为0时,将计数单元(TL1、TH1、6CH、6DH)的值放入68H—6BH单元。

(6)EEPROM存取程序

本系统使用归一化I*2C串口存取子程序,使用一条数据线和时钟线,采用ATMEL公司的24C01串口存储器,应用简单方便。

(7)显示子程序

当显示里程时,先要将圈数计数器中的数据进行运算,求出总里程。当要显示速度时,要将轮子的周长和转一圈的时间数相除,然后换算成km/h单位。最后放入70H—73H,进行数据的显示

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

闪烁LED小灯主程序图

数码管时钟电路的主程序

单键学习型遥控器的设计

15路电器遥控器的设计

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

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

遥控小汽车的设计

数码管时钟电路的设计

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

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

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

单键学习型遥控器的程序

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