51单片机 定时器

Pulse Width Modulation脉冲宽度调制  interrupt中断 hadler 处理 buzzer蜂鸣器
定时器配置工作模式 开启那个定时器 定时多久       开始定时 溢出位
TMOD = 0x01                                       TL0= TH0=   TR0 = 1   TF0 = 0(定时器/软件 溢出置1) 

1 定时器计数器原理图一样 本质就是计数 定时器是内部震荡电路数数 每经过一次机器周期+1,计数器则是读取外部信号 针脚数据来计数

晶振 决定频率 频率决定时钟(震荡)周期,周期越小反应越快

58c52rc一般 一个 机器周期+1 = 12个时钟周期=12 /11.0592 =12000000/11059200 =1.085微妙us

寄存器相当于大脑 下面的神经 做出反应和反射;

在哪里加 1 ,最大计数时间,也就是爆表了能计算多长
                 在TH0/1和TL0/1寄存器中加1,默认是从0开始数数,最多能数65536下,65536*1.085=71ms,累计计时71ms
如何算出 10ms 定时器的初值
                就不让他从0开始数数, 10ms需要数9216下,你让他从65536-9126=56320(16进制表示为 0xDC00)开始数数 这样TL0=0x00;TH0=0xDC
关于 TCON 怎么知道爆表
TCON 寄存器的 bit5 TF0 )能表示爆表:当爆表的时候,硬件会修改 bit5(TF0) 位上面的数据,改成
1 (置 1 ),如果不用中断,我们代码清零
怎么开始计时
                TCON寄存器的bit4 ,通过编程让这个位为 1 的时候,开始计时,相当于按下了闹钟
定时器使用是有很多种模式的
                        定时器模式寄存器:TMOD来选择定时器模式,选择工作方式1 TMOD bit0 bit1 配置成 0 1 :16 的定时器功能( 最好按位操作不动的位置先与 要动的地方与0 例如 &1111 0000 再或 不动位或0 要动的或多少例如  | |0000 0001)

2.中断   IE中断允许寄存器(可位寻址)1打开中断 0关闭

EA打开所有中断        EX0外部中断0中断        ET0 T0溢出中断        ES串行口中断 

使用中断时在定时器配置中EA = 1 ET0 =1打开这两个中断后会调用这个中断号(interrupt 1)的函数

3 PWM         脉冲宽度调制(Pulse Width Modulation)

不是接收01 而是接收一个波形  对模拟信号电平进行数字编码,也就是说通 过调节占空比的变化来调节信号   占空比 高电平所占周期的百分比

确定一个周期后 再定义一个变量 高电平占多少比例 变量++到这个比例 

4 超声波

怎么让它发送波 :Trig ,给Trig端口至少10us的高电平

怎么知道它开始发了 :Echo信号,由低电平跳转到高电平,表示开始发送波
怎么知道接收了返回波 :Echo,由高电平跳转回低电平,表示波回来了
怎么算时间 :Echo引脚维持高电平的时间! 波发出去的那一下,开始启动定时器
波回来的拿一下,我们开始停止定时器,计算出中间经过多少时间
怎么算距离 :距离 = 速度 ( 340m/s * 时间 /2
智能垃圾桶 超声波and震动and按键控制舵机 ||或上
用宏定义来解决垃圾同一卡一卡问题(单片机一直在检测角度是多少所以一卡一卡)   宏定义的jd_mak != 时则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值