单片机教程
栏目导航
第一页..单片机入门教程
第二页..单片机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,进行数据的显示 |