70 likes | 320 Views
第10章 系统实用程序. 主程序: 单片机系统控制程序的主框架,是一个顺序执行的无限循环的程序,运行过程必须构成一个圈。 参见 P 235 图10-1 主程序结构 子程序: 可反复调用的功能模块。利用子程序可以简化程序的逻辑结构,便于模块化。 编程时要注意主程序和子程序间参数传递和子程序现场保护的问题。 中断服务子程序:注意其与子程序调用过程的不同,中断是随机的。. 10.1 程序和子程序的概念. 例 10-3:航标灯控制程序 用 MCS-51 单片机的定时器和中断功能试制一个 “ 航标灯 ” 。设 fosc=12MHz, 具有如下功能:
E N D
主程序:单片机系统控制程序的主框架,是一个顺序执行的无限循环的程序,运行过程必须构成一个圈。主程序:单片机系统控制程序的主框架,是一个顺序执行的无限循环的程序,运行过程必须构成一个圈。 参见P235图10-1 主程序结构 子程序:可反复调用的功能模块。利用子程序可以简化程序的逻辑结构,便于模块化。 编程时要注意主程序和子程序间参数传递和子程序现场保护的问题。 中断服务子程序:注意其与子程序调用过程的不同,中断是随机的。 10.1 程序和子程序的概念
例 10-3:航标灯控制程序 用MCS-51单片机的定时器和中断功能试制一个“航标灯”。设fosc=12MHz,具有如下功能: ①航标灯在黑夜应能定时闪闪发光,设定时间间隔为2s,即亮2s,熄灭2s,并以此为周期循环。 ②当白天到来时,航标灯应熄灭,停止定时器工作。 该实例采用了: 定时器与软件计数相结合产生较长定时时间的方法 中断与查询相结合的方法 两级中断嵌套的方法 10.2 简单控制程序
解: 1、8051定时器的启、停信号由/INT0来控制。 2、采用定时加软件计数的方法实现定时2s。 3、利用光敏三极管来区分白天和黑夜。 设T0定时50ms,模式1,初值X=3CB0H; R7软件计数=40。
主程序: ORG 0000H AJMP MAIN ORG 0003H AJMP WBINT ORG 000BH AJMP T0INT ORG 0100H MIAN: MOV SP,#30H CLR P1.7;灯的初态为灭 CLR IT0 ;电平触发 CLR PX0 ;低级别 SETB EX0 SETB EA HERE: AJMP HERE INT0中断服务程序: WBINT:MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB PT0 ;高级别 SETB TR0 SETB ET0 MOV R7,#40H HERE1: JNB P3.2,$;为低(黑夜),等待T0中断 CLR ET0;为高禁止T0中断 CLR TR0; 关T0 CLR P1.7;熄灯 RETI T0中断服务程序: T0INT: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R7,EXIT MOV R7,#40H;2s到,重赋值 CPL P1.7;控制灯闪烁 EXIT: RETI END
排序程序 数字滤波程序 标度变换 10.3 数据处理程序
对于随机干扰,可以使用软件对采集的多个数据进行排序,将干扰数据通过排序“挤到”两边,再取中间的无干扰数据。对于随机干扰,可以使用软件对采集的多个数据进行排序,将干扰数据通过排序“挤到”两边,再取中间的无干扰数据。 瞬间波峰干扰示意图 采集周期