单片机实用框架-1

项目尽量不要出现delay(uchar data),但是有些协议是需要使用延迟来实现协议时序;前后台框架在一定程度上提高了时效性,但是如果如果一个主函数中多次使用就会对整个软件架构的时效性大打折扣,给个反面教材......
//主循环while(1){ //上电进入主程序 或 触发触摸屏 function1();//播放提示语音 delay();//等待播放完毕 //读取m1卡信息 function2(); delay();//等待读卡数据返回 //播放提示语音 function3(); delay();//等待播放完毕 //m1卡数据交互,判定下一步操作及提示 function4(); delay();//等待数据处理完毕 …… ……}提出“switch 外加定时中断”理论,主要方便初学者理解单片机程序大概的“逻辑框架”。switch 是一个万能语句,它外加 while 与 for 循环就可以做任何复杂的算法,比如,搜索算法,运动算法,提取关键词算法,等等。它外加定时中断,就可以搭建一个系统的基本框架。比如,做通信的程序框架,人机界面的程序框架,按键服务的程序框架,等等。switch 的精髓在于“根据条件进行步骤的灵活切换”。
#include sbit led0 = p0^0;uinsigned char time_500ms_flag = 0; //500ms标志位uinsigned char led_state = 0; //状态缓存void initt0(){ tmod |= 0x01; //使用方式1,16位定时器 th0 = (65536-50000)/256; //给th1和tl1初初值,计数器由15536开始计数,到65535溢出 tl0 = (65536-50000)%256; //外部晶振为12mhz,对应的延时时间为50ms ea = 1; //总中断打开 et0 = 1; //定时器中断打开 tr0 = 1; //定时器开关打开}void main(){ //初始化定时器 initt0(); initt1(); //初始化led灯 led0 = 0; while(1) { switch(led_state) { case 0: if( time_500ms_flag ) { time_500ms_flag = 0; led_state = 1; //=========任务======== led0 = 1; //--------------------- } break; case 1: if( time_500ms_flag ) { time_500ms_flag = 0; led_state = 0; //=========任务======== led0 = 0; //--------------------- } break; default: break; } }}//===============================//t0定时器中断服务程序//每隔50ms进入一次该程序//===============================void t0intr() interrupt 1{ static unsigned int num; th0 = (65536-50000)/256; tl0 = (65536-50000)%256; if( !time_500ms_flag ) { num++; if( num >= 10 ) { num = 0; time_500ms_flag = 0xff; } }}//--------------------------------用个小程序说明这框架的主要思路,这框架可拓展性很强,时效性有保证,可以满足很多项目的需求,但是这框架最致命的是遇到需要长时间关闭单片机所有中断的项目,因为有些协议是不能被中断打断,有兴趣的可以留意后续推文。

法国将把比特币销售的资本利得税统一按30%的固定税率征税
2020第七届天马工业路演活动圆满成功
一加5T评测 仍然是一部优秀的旗舰机型
关于自动驾驶视觉芯片的DNN之争
配电箱的规格尺寸 配电箱的固定方式
单片机实用框架-1
华硕展出一台新款的ZenScreen Go可移动显示屏,自带电池及支持触控
什么是差模噪声和共模噪声,它们之间有什么区别
华为P10正在遭遇当年华为Mate8之痛
现代汽车将在CES 2020活动上发布城市空中移动出行计划
Ethernet Expo Carrier Ethernet
语音芯片在安全带上的应用
JESD204B具体调试过程
色环电阻有哪些颜色,分别代表什么?
推挽式隔离芯片ZCC6601性能完胜SN6505
最高性能的Arm Cortex-R处理器,会领导计算型存储的未来吗?
音乐门铃电路图详解
EVAL-2QR0665G-28W16V开关电源功能分析
NVIDIA Jetson AGX Xavier应用在AI和
马化腾、李彦宏、雷军怎么看“人工智能”