其实任何单芯片的学习步骤都是一样的,无论是8位入门芯片还是32位高速芯片。以下步骤是必要的。当你一步一步完成学习后,你就可以不要做大神。到我这里来。
步骤1:数字I/O的使用
通过使用键输入信号和LED显示输出电平,您可以了解引脚的数字I/O功能。按下一个按钮,某个LED就亮了,这是数字电路中组合逻辑的作用。虽然很简单,但是可以学习一般的单片机编程思路和寄存器的操作方式。例如,必须设置许多寄存器来初始化引脚,以便引脚可以具有数字输入和输出功能。
使用单片机功能时,需要设置控制该功能的寄存器。这就是单片机编程的特点。唐不要害怕麻烦。所有的单片机都是这样的。应当注意,这两种功能使用相同的I/O端口集。例如,在许多例程中,LCD和LED数据端口共享同一组端口。如果两者结合,就会产生冲突,达不到预期的效果,或者LED和LCD同时跳动。这是目前开发板采用的方式。建议不同的模块使用不同的IO端口。
步骤2:计时器的使用
学会使用定时器,你就能写出更高效的程序。别人需要100ms 要运行的程序。添加计时器后,您的程序可能需要10毫秒才能运行完毕。它在工业和家用电气设备的控制中也有许多应用。真正会写程序的人一定是使用定时器的高手。比如可以用单片机实现一个按钮的楼道灯开关。按下按钮一次后,灯会在3分钟后自动熄灭。连续按下按钮两次,灯会一直亮,按下按钮超过2s,灯会熄灭。
数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但只有单片机最简单,成本最低。定时器的使用很重要,逻辑加时间控制是单片机的基础。
步骤3:打断
单片机的特点是重复执行一个程序,程序中每条指令的执行都需要一定的执行时间。如果程序未能执行一条指令,该指令的动作就不会发生,这会延迟很多快发生的事情,比如按钮按下时的下降沿。为了使单片机在程序正常运行时响应快速动作,需要使用单片机的中断功能,即在快速动作发生后,单片机中断正常运行的程序,处理快速动作,处理完毕后返回执行正常程序。
使用中断功能的难点在于,需要准确知道什么时候不允许中断(阻塞中断),什么时候允许中断(打开中断),需要设置哪些寄存器才能使某种中断工作,中断开始时程序应该做什么,中断完成后程序应该做什么等等。学会中断后,就可以编译结构更复杂的程序了。这样的程序可以做一件事,可以监控N件事(多个中断)。一旦被监控的事情发生,他们就中断正在做的事情,处理被监控的事情。形象的比喻和中断功能使单片机具备了从碗里吃,从锅里看的功能。比如一个中断就是你在宿舍写代码的时候有人敲门。你停止写代码开门,开门后再回来写你的代码。这是一个中断的过程。学会以上三步,相当于降龙十八掌武功。三掌过后,勉强能自保。但是它离大神还远着呢。
步骤4:串口的使用。
单片机有串行端口。比如国产芯片STC15系列很多型号都有两个串口,有的型号有四个串口。单片机的串行接口可以不要直接与RS232接口连接
串行接口的使用非常重要。通过这个接口,单片机和PC机之间可以进行信息交换。虽然RS232通讯并不先进,但是学会接口还是很重要的。要正确使用串口,需要学习通信协议,PC机的RS232接口编程等等。想象一下,单片机实验板上的数据显示在PC机的显示器上,而PC机的键盘信号可以显示在单片机实验板上,这将是多么有趣啊!
第五步:模数转换器
很多单片机都配有多路A/D转换器,转换精度从8位、10位、12位甚至更高。STC15系列有8个10位高速模数转换器通道。通过A/D转换器,单片机可以对模拟信号进行运算,显示和检测电压、电流等信号。注意模拟地和数字地的概念,参考电压,采样时间,转换速率,转换误差等。使用模数转换功能的一个简单例子是设计一个电压表。
第六步:学会使用扩展接口。
学习PCI,I2C接口和LCD接口。这些接口的使用可以使MCU更容易与外部设备连接,这对扩展MCU的功能非常重要。
第七步:检查并控制电机。
学习比较、捕捉和PWM功能。这些功能可以使单片机控制电机,检测速度信号,实现电机调速等控制功能。
第八步:了解产品发展方向。
学习USB接口、TCP/IP接口以及各种工业总线的软硬件设计非常重要,因为这是当前产品开发的发展方向。
学会了这些,你一定会跃跃欲试。这个时候,最好的就是自己做项目。项目唐不要在意大小或难度,所以先从简单的开始。在这里,项目不是在开发板上写一个程序就完成的,而是通过设计硬件、画电路图、制作电路、焊接电路、编译调试程序,最后生产出一个完整的成品。土豪可以画PCB图打样(现在打样50块钱起,很便宜了),穷鬼可以直接老老实实手工焊接带孔板的电路。这样也能更好的锻炼焊接技术。
标签:单片功能程序