×

单片机学习教程之手把手教你单片机程序框架PDF电子书免费下载

消耗积分:1 | 格式:pdf | 大小:3.96 MB | 2019-04-28

xiaoding3703

分享资料个

  第一节:吴坚鸿谈初学单片机的误区。

  第二节:delay()延时实现LED灯的闪烁。

  第三节:累计主循环次数使LED灯闪烁。

  第四节:累计定时中断次数使LED灯闪烁。

  第五节:蜂鸣器的驱动程序。

  第六节:在主函数中利用累计主循环次数来实现独立按键的检测。

  第七节:在主函数中利用累计定时中断的次数来实现独立按键的检测。

  第八节:在定时中断函数里执行独立按键的扫描程序。

  第九节:独立按键的双击按键触发。

  第十节:两个独立按键的组合按键触发。

  第十一节:同一个按键短按与长按的区别触发。

  第十二节:按住一个独立按键不松手的连续步进触发。

  第十三节:按住一个独立按键不松手的加速匀速触发。

  第十四节:矩阵键盘的单个触发。

  第十五节:矩阵键盘单个触发的压缩代码编程。

  第十六节:矩阵键盘的组合按键触发。

  第十七节:两片联级74HC595驱动16个LED灯的基本驱动程序。

  。第十八节:把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式。

  第十九节:依次逐个点亮LED之后,再依次逐个熄灭LED的跑马灯程序。

  第二十节:依次逐个亮灯并且每次只能亮一个灯的跑马灯程序。

  第二十一节:多任务并行处理两路跑马灯。

  第二十二节:独立按键控制跑马灯的方向。

  第二十三节:独立按键控制跑马灯的速度。

  第二十四节:独立按键控制跑马灯的启动和暂停。

  第二十五节:用LED灯和按键来模拟工业自动化设备的运动控制。

  第二十六节:在主函数while循环中驱动数码管的动态扫描程序。

  第二十七节:在定时中断里动态扫描数码管的程序。

  第二十八节:数码管通过切换窗口来设置参数。

  第二十九节:数码管通过切换窗口来设置参数,并且不显示为0的高位。

  第三十节:数码管通过闪烁来设置数据。

  第三十一节:数码管通过一二级菜单来设置数据的综合程序。

  第三十二节:数码管中的倒计时程序。

  第三十三节:能设置速度档位的数码管倒计时程序。

  第三十四节:在数码管中实现iphone4S开机密码锁的程序。

  第三十五节:带数码管显示的象棋比赛专用计时器。

  第三十六节:带数码管显示的加法简易计算器。

  第三十七节:数码管作为仪表盘显示跑马灯的方向,速度和运行状态。

  第三十八节:判断数据尾来接收一串数据的串口通用程序框架。

  第三十九节:判断数据头来接收一串数据的串口通用程序框架。

  第四十节:常用的自定义串口通讯协议。

  第四十一节:在串口接收中断里即时解析数据头的特殊程序框架。

  第四十二节:通过串口用delay延时方式发送一串数据。

  第四十三节:通过串口用计数延时方式发送一串数据。

  第四十四节:从机的串口收发综合程序框架

  第四十五节:主机的串口收发综合程序框架

  第四十六节:利用AT24C02进行掉电后的数据保存。

  第四十七节:操作AT24C02时,利用“一气呵成的定时器延时”改善数码管的闪烁现象。

  第四十八节:利用DS1302做一个实时时钟 。

  第四十九节:利用DS18B20做一个温控器 。

  第五十节:利用ADC0832采集电压信号,用平均法和区间法进行软件滤波处理。

  第五十一节:利用ADC0832采集电压信号,用连续N次一致性的方法进行滤波处理。

  第五十二节:程序后续升级修改的利器,return语句鲜为人知的用法。

  第五十三节:指针的第一大好处,让一个函数可以封装多个相当于return语句返回的参数。

  第五十四节:指针的第二大好处,指针作为数组在函数中的输入接口。

  第五十五节:指针的第三大好处,指针作为数组在函数中的输出接口。

  第五十六节:指针的第四大好处,指针作为数组在函数中的输入输出接口。

  第五十七节:为指针加上紧箍咒const,避免意外修改了只做输入接口的数据。

  第五十八节:指针的第五大好处,指针在众多数组中的中转站作用。

  第五十九节:串口程序第40,44,45节中存在一个bug,特此紧急公告。

  第六十节:用关中断和互斥量来保护多线程共享的全局变量。

  第六十一节:组合BCD码,非组合BCD码,以及数值三者之间的相互转换和关系。

  第六十二节:大数据的加法运算。

  第六十三节:大数据的减法运算。

  第六十四节:大数据的乘法运算。

  第六十五节:大数据的除法运算。

  第六十六节:单片机外部中断的基础。

  第六十七节:利用外部中断实现模拟串口数据的收发。

  第六十八节:单片机C语言的多文件编程技巧。

  第六十九节:使用static关键字可以减少全局变量的使用。

  第七十节:深入讲解液晶屏的构字过程。

  第七十一节:液晶屏的字符,16点阵,24点阵和32点阵的显示程序。

  第七十二节:在液晶屏中把字体顺时针旋转90度显示的算法程序。

  第七十三节:在液晶屏中把字体镜像显示的算法程序。

  第七十四节:在液晶屏中让字体可以跨区域无缝对接显示的算法程序。

  第七十五节:在12864液晶屏中让字体以1个点阵为单位进行移动显示的算法程序。

  第七十六节:如何把一个任意数值的变量显示在液晶屏上。

  第七十七节:在1个窗口里通过移动光标来设置不同参数的液晶屏菜单程序。

  第七十八节:在多个窗口里通过移动光标来设置不同参数的液晶屏菜单程序。

  第七十九节:通过主菜单移动光标来进入子菜单窗口的液晶屏程序。

  第八十节:调用液晶屏内部字库来显示汉字或字符的坐标体系和本质。

  第八十一节:液晶屏显示串口发送过来的任意汉字和字符。

  第八十二节:如何通过调用液晶屏内部字库把一个任意数值的变量显示出来。

  第八十三节:矩阵键盘输入任意数字或小数点的液晶屏显示程序。

  第八十四节:实时同步把键盘输入的BCD码数组转换成数值的液晶屏显示程序。

  第八十五节:实时同步把加减按键输入的数值转换成BCD码数组的液晶屏显示程序。

  第八十六节:数字键盘与液晶菜单的综合程序。

  第八十七节:郑文显捐赠的工控项目源代码。

  第八十八节:电子称连续不断从串口对外发送数据,单片机靠关键字快速截取有效数据串。

  第八十九节:用单片机内部定时器做一个时钟。

  第九十节:针对行程开关感应器,分享一种既能及时响应,又能抗干扰处理的识别思路。

  第一节:吴坚鸿谈初学单片机的误区。

  (1)很难记住繁杂的寄存器?寄存器不用死记硬背,鸿哥我行走江湖多年,连一个寄存器都记不住。需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。

  (2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。

  (3)C 语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。你只要会:

  5 条指令语句 switch 语句,if else 语句,while 语句,for 语句,=赋值语句。

  7 个运算符+,-,*,/,|,&,!。

  4 个逻辑关系符||,&&,!=,==。

  3 个数据类型 unsigned char, unsigned int, unsigned long。

  3 个进制相互转化,二进制,十六进制,十进制。

  1 个 void 函数。

  1 个一维数组 code(或 const) unsigned char array[]。

  那么世界上任何一种逻辑功能的单片机软件你都能做出来。

  鸿哥我当年刚毕业出来工作的时候才知道可以用 C语言开发单片机,一开始只用 if 语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。再到后来才慢慢开始用 C 语言其他的高级功能,但是我发现 C 语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。

  (4)很难记住精确时间的计算公式?经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。鸿哥我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。真想做一个比较精确的时间,应该用外围时钟芯片或者 FPGA 和 CPLD,而不是单片机。

  (5)很难记住繁杂的各种通信协议?什么 IIC,SPI,232 串口通讯,CAN,USB 等等。这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。

  (6)很难写短小精悍的程序?初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系,现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !