大家好我是小火,想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。说起单片机,我们就会联想到C语言,很多初学者认为51单片机只有C语言和汇编语言,这可以说对也可以说不对。

不可错过的单片机入门必备知识(不可错过的单片机入门必备知识)(1)

实际上程序是有3种的,除了C程序和汇编程序还有一种就是机器程序。能够下载到单片机里面的只有机器程序,C程序和汇编程序是不能直接下载到单片机里面的,所以C程序和汇编程序需要经过编译软件翻译成机器程序后,才能下载进单片机执行。

程序本质就是语言,语言就是我们平时用来交流的,那么说到交流就会存在两个对象,这这里的两个对象分别是单片机和程序员。程序员使用C语言或者汇编语言,单片机则只能使用机器语言,两者要用不同的语言交流就还要一个翻译家,而这个翻译家就是编译软件,俗称编译器,它专门把C语言或者汇编语言翻译成单片机能识别的机器语言。

现在单片机开发的主流是用C语言,主要是方便快捷;我从学校出来工作后就几乎没有用过汇编语言,所以我个人比较推荐先学习C语言,汇编语言在我们有富裕的时间再去学习;C语言像现代文章简单易懂,汇编语就是文言文。汇编也有它的优点和不可替代的场合,汇编的翻译效率高,一句汇编语言对应一句机器语言,一句C语言有时候对应几句机器语言,如果项目要求使用简洁高效的源代码那就需要用汇编来写。所以学汇编,也是很有必要的内存。

程序下载进单片机中,单片机就要有一个存储程序的载体。单片机内存包括ROM和RAM两部分。ROM的优点是掉电后存储的内容不会丢失,缺点是除非在烧录过程中,否则上电后它存储的内容也不能更改。并且,虽然ROM在烧录(下载)过程中可以更改内容,但是更改的次数有限制,也就是烧录(下载)的次数有限制,一般最大次数是10万次,当然这里所说ROM是指FLASH的单片机,如果是OTP的单片机,那么最大次数是1次。

而RAM恰好反过来,RAM的优点是上电后存储的内容可以被程序指令随时更改,而且还没有更改次数限制,缺点是掉电后内容会丢失。正因为ROM和RAM各有特点,所以它们的分工有所不同。程序包括指令和数据两部分。指令是指程序中的判断,跳转,赋值等指令,这些内容是程序烧录进单片机时就固定下来的,不可更改的,所以存储在ROM中。

数据也分两种,程序指令可更改的数据和程序指令不可更改的数据。程序指令可更改的数据存储在RAM中,程序指令不可更改的数据存储在ROM中。那么谁在幕后进行这些分类存储?是编译器软件和下载器(烧录器)。编译器除了把C语言翻译成机器语言之外,还帮我们分好了类,分配好了存储的地址和位置,下载器(烧录器)再根据这些信息把程序存储到内存中。

管脚。它是单片机与外部电路进行沟通桥梁。一般分为电源、晶振、复位和IO口这4种类型管脚。第一种电源管脚。是给单片机内部电路供电的接口。单片机有两种常用的供电电压,一般不是3.3V就是5V,有的单片机两种电压都兼容。

第二种晶振管脚。单片机工作必须有晶振的存在。单片机执行程序指令是按节拍来执行的。而晶振产生固定频率的脉冲就是节拍器。我们经常把晶振比喻成单片机的源动力。现在很多单片机都把晶振集成到内部了,不用再外接晶振。

第三种复位管脚。单片机上电后需要外部电路给它一个瞬间高电平或者低电平的复位信号,才能启动工作。这类外部的复位电路通常是用电容和电阻组成的充电电路来实现,也有一些系统是用专门的复位芯片来实现。

第四种IO口管脚。这是跟我们编写程序关联最密切的管脚。前面提到的电源,复位,晶振这3种管脚是为了让单片机能工作。而单片机工作的具体内容就是通过IO口管脚来体现的。比如,IO口能识别按健的输入,也能驱动继电器的开关,也能跟外围器件进行通信。

电平。单片机IO口管脚检测到的电压低于或等于0.8V时是低电平,程序里读取到的是0。检测到的电压高于或等于2.4V时是高电平,程序里读取到的是1,IO口输入的最大电压不能超过单片机的供电电压。单片机输出的低电平是0,单片机输出的高电就是1。

时间。时间是单片机程序必不可少的一个元素。跟外围芯片通信的时序节拍需要时间,驱动发光二极管闪烁需要时间,工控自动化的某些延时需要时间。单片机的时间来源自两方面。第一方面源自指令的周期时间。单片机是根据节拍来执行程序指令的,所以每执行一条指令都要消耗一点时间,只要让程序执行一些无实际意义的指令,并且通过调整所执行指令的条数就可以得到所需要的时间长度。第二方面源自单片机内部自带的定时器。假如设置定时器每20毫秒产生一次中断,现在要获取10秒钟的时间,只需程序统记500次定时中断就可以了,因为1秒等于1000毫秒。

本期先分享到这里,想要学习单片机编程的同学可以持续关注小火,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!

,