用户工具

站点工具


侧边栏

抱歉,您没有权限增加页面
4.单片机入门教程:3.单片机菜鸟级概念

单片机入门教程之什么是单片机

What’s单片机?This is a problem ! 对于单片机是哪位大神造的,就不追究了,感兴趣自行找度娘。单片机(Single chip microcomputer)是一种采用大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、程序存储器Flash (ROM)、多种I/O口和中断系统、定时器/计数器等功能(增强型的还集成脉宽调制PWM、A/D转换器、EPPROM等功能)集成到一块硅片上构成的一个小而完善的微型计算机系统,也许你看过某某自动洗衣机的面板上写着采用微电脑控制,里面就是一个单片机。

一:单片机工作电压:
通常有5V和3.3V两种工作电压,具体看型号。51Discovery板上选用的为5V单片机,外部供电电压不可超过5.5V,否则会烧坏单片机。

二:单片机CPU频率
STC增强型1T单片机工作频率为0-35MHz,即单时钟/机器周期,执行速度相当于传统12T 89C51系列单片机的0-420MHz。平均指令运算速度比传统89C51快8-12倍。STC12系列单片机指令完全兼容89系列,也就是说,89系列单片机的程序想要移植到STC12系列单片机上,只需要改改相应的延时函数就可以运行了。

三:单片机随机存取存储器(RAM)
RAM即随机存取存储器,用于存放程序执行的中间结果和过程数据,变量的赋值及运算都是暂存在RAM中,断电数据清除。STC12C5A60S2单片机内部集成了1280字节RAM,分为两个地址空间,内部256字节(idata)和扩展1024字节(xdata)。内部256字节分为低128字节和高128字节,低128字节可直接寻址也可间接寻址,高128字节只能间接寻址。

四:单片机程序存储器(Flash)
程序存储器即用户程序存储空间,用于保存应用程序代码,同时还可以用于保存程序执行时用到的数据(例如保存查表信息),程序存储器可反复编程擦写10万次以上,断电可保存,单片机复位后,程序从0000H单元开始执行。STC12系列程序存储器Flash地址如下:

五:单片机输入输出端口(IO)
俗称管脚,单片机IO为准双向口,即可输入数据也可输出数据,8位单片机IO口一般8个为一组,以40脚的单片机为例,除去电源晶振及一些特殊管脚,分为P0 P1 P2 和P3四组IO口(增强型单片机还会有P4口), 89系列单片机IO复位后为准双向口/弱上拉,STC增强型可配置成:准双向口,强推挽,仅为输入和开漏四种模式。

六:单片机中断(INT)
先打个比方,你正在写代码,突然快递小哥打电话叫你下去拿快递,你跑下去然后上来继续写代码,同样,单片机中断也是这样,首先要有个触发事件,看上图中,第12脚INT0,这个就是中断触发管脚,可以设置成高电平或者低电平触发,触发以后单片机就会进入中断入口函数中处理相关的程序,处理完后在回来接着运行主函数中的程序。其他的触发中断的方式还有定时器中断,串口中断等。

七:单片机定时器(T)
定时器顾名思义就是定时的意思,比如单片机接了一个温度传感器,我要每50毫秒采集一次温度,就可以用到定时器,让定时器设置成每50毫秒触发中断,然后在中断入口函数中读温度就行了。

八:单片机脉宽调制(PWM)
关于脉宽调制我们要明白什么是占空比,占空比指通电时间与周期之比,即高电平持续时间。若PWM是5V的电压幅值,设置占空比为50%,那么得到的平均电压就是2.5V,这样,在PWM输出管脚接一个LED灯,占空比越高,则LED灯越亮。还有一个概念就是PWM频率,就是占空比开关的次数,次数越高频率越高,在控制电机转速的时候需要考虑。

九:单片机模数转换(ADC)
模数转换器(Analog to Digital Converter)简称ADC,就是把模拟信号转为数字信号。比如检测光敏电阻电压变化,电池电压检测等,这些输出的都是一定范围的模拟电压信号,单片机的数字IO口是无法检测电压变化的,这时候就需要用到ADC转换器,把电压变化范围采集转换成相应的数字值来进行处理。

十:单片机EEPROM
EEPROM即电可擦除可编程只读存储器,断电内容不会消失,与Flash存储器有点像,Flash是用来存放程序的,运行过程中不能更改内容,需要在代码中修改然后下载进去。而EEPROM是可以很容易在线修改和存放的,由单片机中的程序控制写与读,比如电子闹钟的闹铃时间,一些参数的设置等,可以很方便的保存在EEPROM中。

十一:单片机功能寄存器
我们已知单片机的内部有ROM(Flash)、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,来,先看一下STC单片机内部功能框图:

通过上图可知,在单片机中还有一大堆的功能模块互相勾引着,串口啊,定时器啊等等,那么我们在写程序时怎么控制并通知这些模块工作呢?就是操作内部的功能寄存器(SFR)。通过操作寄存器从而来对片内各功能模块进行管理,控制,监视的。

这些寄存器的地址都在单片机的专有头文件中定义好了,我们只要引用就可以了,如:#include<stc12.h> ,这里面就是把所有单片机的内部寄存器地址声明好了。比如我们操作IO口,P0=0xfe;就是代表向地址80H那块P0寄存器中写入0xfe。如图:

七:单片机最小系统
神说,要有光,于是这世界就有了光。一个单片机要工作,要有电源,复位,晶振,把这些焊到万能板上单片机就可以跑起来了。电路图如下:

注:
更详细内容请参考芯片手册(STC12C5A60S2.pdf)。阅读一遍,必有收获!

4.单片机入门教程/3.单片机菜鸟级概念.txt · 最后更改: 2017/03/03 15:51 由 wawooo