admin 管理员组文章数量: 1086019
2024年4月26日发(作者:250z型钢每米重量)
第一节:吴坚鸿谈初学单片机的误区。
(1)很难记住繁杂的寄存器?寄存器不用死记硬背,
查找芯片数据手册是中策,死记硬背寄存器是最最下策。
(2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,
否则学汇编就是浪费时间。鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。
鸿哥我行走江湖多年,连一个寄存器都
记不住。需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,
t
y
w
藏
书
(3)C语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏
定义,你不用学文件操作,你也不用死记繁琐的数据类型。你只要会:
5
7
4
3
3
1
1
条指令语句switch语句,if else
个运算符+,-,*,/,|,&,!。
, unsigned int, unsigned long。
个逻辑关系符||,&&,!=,==.
个数据类型unsigned char
个void函数。
个一维数组code(或const) unsigned char array[]
那么世界上任何一种逻辑功能的单片机软件你都能做出来。
鸿哥我当年刚毕业出来工作的时候才知道可以用
开始用C语言其他的高级功能,但是我发现
举出来的最基本功能集合而成,
C语言开发单片机,一开始只用if
语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。再到后来才慢慢
C语言其他的高级功能,本质上都是用我前面列
编译后的机器码都大同小异。只是书写更加简单方便了一点,
。
个进制相互转化,二进制,十六进制,十进制。
语句,while语句,for语句,=赋值语句。
所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级
功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。
当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只
要给你时间和金钱你也可以写个操作系统来玩玩。
(4)很难记住精确时间的计算公式?经常看到时间公式等于晶振,时钟周期,执行指令次数
他们之间的乘除关系式。鸿哥我认为这些都是浮云,不用纠结也不用去记,大概了解一下就
可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。想用单片机做一
个非常精确的时间这种想法一开始就是错的,不可能的。真想做一个比较精确的时间,应该
用外围时钟芯片或者FPGA和CPLD,而不是单片机。
IIC,SPI,232串口通讯,CAN,USB等等。这些都是(5)很难记住繁杂的各种通信协议?什么
浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯
方式。不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通
讯协议都基于此两种方式演变而来。
(6)很难写短小精悍的程序?初学者不要纠结于此。做项目开发,程序容量不是刻意追求的
目标,程序多一点少一点没关系,现在大容量的单片机品种非常多,容量不会是寸土寸金的
事情,我们更加要关注程序的运行效率,可读性和可修改性。
既然鸿哥列出了那么多误区,那么什么才是初学者关注的核心?预知详情,请听下回
分解----delay()延时实现LED灯的闪烁。
(未完待续,下节更精彩,不要走开哦)
第二节:delay()延时实现LED灯的闪烁。
开场白:
上一节鸿哥列出了初学者七大误区,到底什么才是初学者关注的核心?那就是裸机奔跑
的程序结构。一个好的程序结构,本身就是一个微型的多任务操作系统。鸿哥教给大家的就
是如何编写这个简单的操作系统。在main函数循环中用switch语句实现多任务并行处理的
任务切换,再外加一个定时器中断,这两者的结合就是鸿哥多年来所有实战项目的核心。鸿
哥的程序结构看似简单,实际上就是那么简单。大家不用着急,本篇连载文章现在才正式开
始,这一节我要教会大家两个知识点:
第一点:鸿哥首次提出的“三区一线”理论。此理论把程序代码分成三个区,一个延时分割
线。
第二点:delay()延时的用途。
(1)硬件平台:基于朱兆祺
(2)实现功能:让一个
(3)源代码讲解如下:
51单片机学习板。
t
y
w
藏
书
LED闪烁。
view plaincopy to clipboardprint?
#include "REG52.H"
void initial_myself();
void initial_peripheral();
void delay_short(unsigned int uiDelayshort);
void delay_long(unsigned int uiDelaylong);
void led_flicker();
/* 注释一:
* 吴坚鸿个人的命名风格
* dr
*/
sbit led_dr=P3^5;
void main() //
{
/* 注释二:
学习要点:深刻理解鸿哥首次提出的三区一线理论
:凡是输出后缀都是_dr,凡是输入后缀都是_sr。
代表drive驱动,sr代表sensor感应器
版权声明:本文标题:手把手教你单片机程序框架超清书签版 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1714093580a665315.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论