51单片机学习

定时器:属于单片机的内部资源,其电路的连接和运转均在单片机内部完成
1.用于计时系统,可以实现软件计时,或者程序每隔一段固定时间完成一项操作
2.替代长时间的delay,提高cpu的运行效率和处理速度

定时器个数:3个 T0 T1 T2 前两个是传统单片机都有的,最后一个是stc89c52rc此型号增加的资源
不同型号的定时器个数可能不同

定时器执行原理:类似于单片机内部的一个小闹钟,根据时钟的输出信号每隔一个固定的时间,计数单元就会增加一个,当计数单元增加到设定的闹钟提醒时间时,计数单元就会向中断系统发出中断申请产生响铃提醒,使程序跳转带中断服务函数执行
STC89C52RC的T0和T1有四种工作模式
模式0:13位定时器/计数器
模式1:16位定时器/计数器(最常用的一种模式)
模式2:8位自动重载模式
模式3:两个8位计数器
51单片机时钟sysclk 也就是晶振周期 本芯片是12mhz
中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
cpu正在处理某件事请的时候外部发生了紧急事件的请求,要求cpu暂停当前的工作转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。
CPU总是先相应优先级别最高的中断请求
STC89c52rc
中断源个数:8个(外部中断0,定时器0中断,外部中断1,定时器1中断,串口中断 ,外部中断2,外部中断3)
中断优先级个数:4个
中断号
注意:中断的资源和单片机型号是关联在一起的,不同型号可能会有不同中断资源,例如中断源个数不同,中断优先级个数不同
寄存器是软硬件连接的媒介,在单片机中寄存器就是一段特殊的RAM存储器,一方面,寄存器可以存储和读取数据,另外一方面,每一个寄存器背后都连接着一根导线,控制电路的连接方式,寄存器相当于一个复杂的机器的操作按钮。

 #include <REGX52.H>
#include "Delay.h"		//包含Delay头文件
void Time0_Init(){

	  TMOD=0x01;//00000001
	  //TCON中可位寻址就是可以单独给每一位赋值,反之只能整体赋值也就是不可位寻址
	  TF0=0;//tf是中断溢出标志位,防止他一开始就中断,先赋值为0
	  TR0=1;//定时器设置开始			 每隔1us计数加1		  0-65535  赋值初值为61535
	   TH0=64535/256;//两个八位 因为这个是十六进制的 因此分成两个八位的 高位对256  低位对256取余 

	   TL0=65535%256;
	   ET0=1;
	   EA=1;
	   PT0=0;



}

void main(){

 Time0_Init();
 while(1){




 }


}

void Timer0_Routine()  interrupt 1
{

	   P2_0=0;//进入中断该灯就会被点亮


}

在这里插入图片描述
ET0=1;
EA=1;
PT0=0;
再加上这三个即可

串口通信:是一种十分广泛的通讯接口,串口成本低,容易使用,通信线路简单,可以实现两个设备的相互通信

51单片机自带UART通用异步收发器,可以实现单片机的串口通信

单片机用的就是TTL电平:+5V表示1 0V表示0
RS232电平:-3V~15V表示1 +3-15表示0
RS485电平:两线压差+2-+6表示 1 -2到-6表示0

UART TXD RXD 全双工 异步通信 点对点通信
I2C SCL SDA 半双工 同步 可以挂载多个设备
SPI sclk mosi miso cs 全双工 同步 可以挂载多个设备
1 wire DQ 半双工 异步 可以挂载多个设备
此外还有CAN 和 usb

UART有四种工作模式
模式0:同步移位寄存器
模式1:8位uart 波特率可以变 (常用)
模式2:9位uart 波特率固定
模式3:9位uart 波特率可变

波特率:串口通信速率
检验位:用于数据验证
停止位:用于数据帧间隔

SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同地址,写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值