新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机程序设计中运用事件驱动机制

单片机程序设计中运用事件驱动机制

作者: 时间:2012-03-08 来源:网络 收藏

unsigned char num_buf[8];

void uum_proc(void); /*数据处理模块*/

void ledbuf_write(unsigned,unsigned int); /*数据处理*/

void system_init(void); /*系统初始化*/

void uart_commune(void); /*串口通讯模块*/

void led_display(void); /*LED显示*/

void kb_scan(void); /*键盘扫描*/

void ic_reader(void); /*读IC卡*/

void ic_writer(void); /*写IC卡*/

void set_timer(unsigned int time_len,unsigned char type,unsigned char id); /*设置定时器*/

void t0_int_sever(void); /*定时器T0中断服务*/

void t1_int_sever(void); /*定时器T1中断服务*/

void int0_int_sever(void); /*INT0中断服务*/

void int1_int_sever(void); /*INT1中断服务*/

void uart_int_sever(void); /*串口中断服务*/

void main(void)

{

system_init();

while(1) {

if (t0_int) led_display();

if (int0_int) ic_reader();

if (t1_int) kb_scan();

if (uart_int) uart_commune();

if (kb_enter){

num_proc();

ic_writer();

ledbuf_write(num_buf,8);

}

}

}

是通过在中断服务程序中置位相位标志,把耗时的中断服务中的处理部分分离出来,中断返回后,再由主程序根据标志启动相应的处理模块。在任务处理完成后,清除相应的标志。由于中断服务程序短小,所以一般能实时地响应各种中断;而处理程序之间不会被相互调用,所以不会产生代码重入;各模块界限分明,给程序中各模块的统调带来很大的方便。

实践证明,运用机制来纺织程序,即使对于要求定时准,耗时多的多中断、多模块系统,也可轻松地完成。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭