发表时间:2022-03-25来源:网络

代码如下:

遇到要求简单的可以采用上述代码实现,但遇到接下来的呢?

因此,采用另一种代码实现方式,while主循环里面套if分支判断
clude //头文件包含,STC15W系列单片机使用(注意:使用STC15.H,需要删除下面的sfr行) sbit LED1=P3^5; //定义3个灯 sbit LED2=P3^6; sbit LED3=P3^7; void main() //主函数 有且唯一 { static unsigned short count=0; //65535,16位 P3M0 = 0; P3M1 = 0; while(1) //主函数死循环 { count++; if(count%90==0) //大循环运行90圈,最小公倍数61110=90*679 { LED1=~LED1; //LED1每2ms 翻转一次,方波频率255Hz } if(count%315==0) //大循环运行315圈,最小公倍数61110=315*194 { LED2=~LED2; //LED2每7ms 翻转一次,方波频率72Hz } if(count%4365==0) //大循环运行4365圈,最小公倍数61110=4365*14 { LED3=~LED3; //LED3每97ms 翻转一次,方波频率5.15Hz //0~61110 count=count%61110; //最小公倍数,让三颗LED周期更完美 } } }注意:
用逻辑分析仪抓取LED的运行时会发现


这是因为90,315,4365的最小公约数是61110,而unsigned short的范围最大是65535
计算器计算:65535可以被count计数到4365多少次

而

计算剩余的60即波形图1.399ms的来由


解决方法:

使count++到61110结束,再由0重新计数。
**总结:**合理利用碎片时间,避免占用资源。


要点:
根据器件特性,合理分配时间。例:数码管每秒刷新次数要大于LCD1602每秒刷新次数

框架式概念图

以74HC595命名,建立一个框架式编程最简单的程序框架,并实现简单的数据分配

















至此,工程新建完毕。


执行main.c
在主函数内找不到HC595_Init();
去头文件"HC595_Drive.H"里找
因此需要在"HC595_Drive.H"声明了该函数,同时HC595_Drive.c也包含了"HC595_Drive.H",由此找到函数体本身
"HC595_Drive.H"实现了HC595_Drive.c和main.c的关联和调用
优化用all.h包含所有头文件
新建all.h



2… 声明


注:
变量或函数遵循“先定义,再声明,最后使用”的原则。
框架式编程的数据分配定义595数据分配函数,主函数内循环调用

使用取别名关键字

u8,u16,u32取别名的位置很关键
必须在"HC595_Drive.H"前面
C语言不会向后找取别名的定义
上一篇:编程思维基础(1)伪代码及流程图
计支宝app下载v3.1.29 安卓版
142.27MB |商务办公
小小优酷最新版下载v5.4.6 安卓官方版
68.11MB |影音播放
艺图语app下载v3.3.4 安卓免费版
34.33MB |系统工具
爱鸽者手机版下载v3.2.9 安卓版
243.57MB |商务办公
一品威客网接单app(一品众包)下载v2.7.1 安卓最新版
55.01MB |商务办公
诸葛找房网官方版下载v4.8.1.1 安卓最新版
66.6MB |生活服务
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游末日餐厅安卓版下载v1.35安卓版
其它手游葫芦侠十楼免费破解版下载v4.4.0.6安卓版
其它手游葫芦侠8楼最新破解版下载v4.4.0.6安卓版
其它手游