学51单片机需要专门把C语言学透吗

学51单片机需要专门把C语言学透吗

大家是不是看了很多网上的视频或者文章,他们的建议是不是教你拿一本C语言书看几个月,当真正开始给单片机编程时你会发现单片机编程语言只用到了c语言的百分之十都不到,浪费了自己的青春,消磨了对电子方面的兴趣!真正学习单片机需要一定的动手能力,不误人子弟的教程,理论和实践相结合的教学模式并没有刚开始教大家一堆C语言知识。

所以建议从一块开发板和教程开始学起,起初的知识对C语言的要求很低。之后发现自己的C语言功底不足以使你的程序如鱼得水的时候再回头认认真真学习C语言。

51单片机的四种工作模式怎么去设置,既然它有四种工作模式,像定时计数器一样,要想使用定时计数器它也有四种工作方式,那必然的要有一个特殊功能寄存器进行设置,所以串行口实际上对他的控制和操作也是对特殊功能寄存器的操作,串行口当中的特殊功能寄存器就是SBUF,接下来还要介绍一个特殊功能寄存器,也就是要发送和接收,已经解决了,靠的是SBUF这个特殊功能寄存器就是让发送就把数据写到SBUF当中,要想接收就是要把数据从SBUF当中读出来,但是怎么样去配置这个工作方式?或者串行口的这个波特率怎么样来设定?怎么样去让他去启动传输?这个肯定是要有一个特殊功能寄存器来配置,这个特殊功能寄存器就是串行口的控制寄存器,除了SCON之外还有一个特殊功能寄存器和串口相关的就是这个PCON,电源管理控制寄存器就是实际上只用到最高位,其他的位和串行口是没有关系的。

要设定四种工作方式,必然有两个位来确定这个工作方式的设定,就是SM0和SM1这两位,这两个位有四种状态,一般的话是把这两个位设成01,这两位是在低位,顺序的往往前走的,SM2这个位是一个多机控制位,主要是用来做多机通信的,这个很少用到,要做主从通信的时候,一般也不会专门用这个位来作为多机通信,一般是借助于上位机的应用层通讯协议来确定不同的从机,给他分配不同的从机地址,然后靠软件层的协议来解决,不同的同机不是用这种方式,这位平常不用就直接把它清0就可以了,REN主要是允许接收位,就是说是不是允许当前这个单片机的串行口接收数据,如果要想允许接收,就要把它至一,如果不允许接收,只是做发送就把它清0,一般会把它至成1,在发送也要接收,所以一般是把它设成一。

低四位确定好了接下来就是高四位,高四位当中的TB8和RB8,它主要是用在方式二和方式三当中,而方式二和方式三基本上很少使用,所以大家也不用管他,感兴趣的可以自己去看一下,实际上发送数据的第九位在软件当中可以规定它的作用,这个主要和SM2结合的来用,当然了它也可以作为奇偶校验的时候,发送这个奇偶校验位,这两个位平时不用也可以直接把它清0,接下来的两位标志位,一个是发送中断标志位,一个是接收中断标志位,要想发送一帧数据把数据写到SBUF当中,有发送中断标志位他至1来决定他发送完了就是接收中断,接收完了会自动的硬件至1,在串行发送的时候,是在发送停止位开始的时候内部的硬件会使他至1,这个时刻是在发送停止位的时候开始发送停止位,它就会使这位自动的硬件至1向CBA去申请中断,或者查询这个标志位,在中断服务程序当中,必须软件把它清0。

这个和定时计数器当中的那个中断标志位TF0和TF1不一样,那个是进到中断服务函数当中会硬件自动清0,但是串行口这个标志位它不能硬件自动清0,必须要靠软件清0,无论是使用查询方式还是中断方式,都要把这个标志未查询到他为1之后,或者中断触发之后,一定要把它去清0,至于接收中断标志位它是指在接收到停止位的中间时刻,发送一帧数据的时候,最后一个是发送的是停止位,串行通信的时候在接收的时候,他在接收到停止位的中间时刻,会使RI这个位自动的硬件至1向CPU申请中断,可以通过查询或者说中断的方式来处理接收的数据,实际上就是把它读走,一定要在软件当中把它清0,它不会自动的硬件清0,中断的串行口的中断这两个标志位比较特殊,它不能够硬件自动清0,和外部中断的中断标志位和定时计数器的中断标志位不同,他们在中断服务函数里面,一旦进入之后硬件它会自动把它清0,但是串行口它硬件上不会自动清0,必须软件把它清0。

对单片机感兴趣的可以查看往期分享内容希望能帮助大家在学习单片机的路上少走一些弯路想要入门单片机可以持续关注创为单片机编程回复“带我学习”查看更多内容分享

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>