51单片机入门(七)

目录:

1.定时器

2.按键控制LED流水灯模式和定时器时钟

1.定时器

独立按键和流水灯简单拼接起来,会有些问题,led流水灯在移动的时候有一个很长的delay、

直接连在一起,按键检测不灵敏,需要按很长时间才会有检测,我们下面用定时器,实现流水灯的流转,同时按键检测也会很灵敏

还有可以做一个时钟

EA、ET0

PT0

2.按键控制LED流水灯模式和定时器时钟

可以键一个模版:

配置TMOD:

TCON:

这个两个不用可以不用配置

计数器:

配置中断:

当经过1毫秒中断了,会调到中断函数time0_routine子函数中,当这个函数执行完之后又跳转到while中来

测试执行中断函数,点一个灯:

1s 1s的闪烁:

这个代码会有些缺陷,TMOD,它是不可位寻址,必须8位同时赋值,当使用一个定时器的时候不会出现问题,同时使用定时器1和定时器0,先配置的定时器1,给0 0 0 1 之后,再配置定时器0的时候,会把0 0 0 1覆盖掉

可以进行处理之操作某一位

就可以操作某些位,不影响其他位

缩写:

通过这个代码可以不影响高四位,配置低四位

可以自动生成定时器,

第一行可以删掉,因为就是12T模式

自己写的这个有1us的偏差,

我们使用生成的不用自己写

这个定时器会每 1 毫秒触发一次中断 ,也就是 Timer0_Routine 函数每 1ms 执行一次

把代码模块化:

下面的函数一般放到主函数中

还是1s 1s的执行

按键控制流水灯:

先注释下定时器,测试按键:

放开注释:

左移

默认往左移动:

按下k1:开始往右移

再按一下开始往左移:

代码是根据一个变量LEDMode控制,定时器根据这个变量进行不同的操作,进行左移还是右移动

定时器时钟:

复制过来之前的代码:

1s 1s的增加

中断函数中继续:

就实现了时钟的效果

相关推荐
莫浅子2 小时前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
恒锐丰科技韩生3 小时前
SS8844T|8.2‑40V 四通道独立半桥驱动 ETSSOP28 带散热焊盘 工业自动化机器人专用
嵌入式硬件·硬件工程
Hello_Damon_Nikola4 小时前
INMP441从入门到精通
单片机·嵌入式硬件·物联网
恒锐丰小瑞4 小时前
率能SS6810H 32V/1A/双通道H桥驱动芯片,PWM电流控制与混合衰减模式,用于POS打印机/安防相机/机器人
嵌入式硬件·数码相机·机器人·硬件工程
恒锐丰科技林技术员4 小时前
SS8812T 双通道 H 桥电机驱动芯片应用解析
经验分享·嵌入式硬件·硬件工程
ye150127774554 小时前
12V转3V-5V2A电位器无极调光调速WT7027
stm32·单片机·嵌入式硬件
恒锐丰-罗生5 小时前
国产电机驱动 SS6635E|宽压大电流单通道 H 桥芯片全面总结
驱动开发·嵌入式硬件·硬件工程
无损检测小白白5 小时前
STM32F407 串口3 DMA收发-标准库
stm32·单片机·嵌入式硬件
greatriver0076 小时前
e2studio R7FA6M5 卡死 rtc 需要如何配置时钟
单片机·瑞萨单片机
恒锐丰小瑞6 小时前
率能SS6812T 40V/1A/双通道H桥驱动芯片,PWM电流控制与混合衰减模式(eTSSOP28),用于POS打印机/安防相机/机器人
单片机·嵌入式硬件·数码相机·机器人