自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 实时时钟 DS1302

CPHA=1,就表示数据的输出是在一个时钟周期的第一个沿上,至于这个沿是上升沿还是下降沿,这要视 CPOL 的值而定,CPOL=1 那就是下降沿,反之就是上升沿。CPHA=0,就表示数据的采样是在一个时钟周期的第一个沿上,同样它是什么沿由 CPOL决定。从第 5 到第 1 位,决定了寄存器的 5 位地址,而第 0 位是读写位,如果要写,这一位就是 0,如果要读,这一位就是 1。第二个沿的时候,数据是稳定的,此刻采样数据是合适的,也就是上升沿即一个时钟周期的后沿锁存读取数据,即 CPHA=1。

2024-11-09 19:59:29 1143

原创 DS18B20

函数名: DS18B20WriteByte* 函数功能: DS18B20按照时序写一个字节* 输入: dat:写入的数据* 输出: voiduchar i, j;j=0;for(i=0;i<8;i++)DSPORT=0;// 数据线拉低j++;// 延时15usj++;j=10;// 延时60uswhile(j--);DSPORT=1;dat=dat>>1;

2024-11-03 13:08:30 1141

原创 EEPROM

(1)主CPU和其附属芯片(I2C设备)之间最常用的接口,尤其是各种传感器,因此在物联网时代非常重要。(2)三根线:GND、SCL、SDA,串行通信(只有一根数据传输线),电平式通信(相对于差分信号)。(3)总线式结构,可以一对多,总线上可以挂上百个器件,用从地址来区分。(4)主从式,由主设备来发起通信及总线仲裁,从设备被动响应。(5)通信速率一般(kbps级别),不适合语音、视频等信息类型。当某些数据内容我们需要掉电不丢失且在程序运行中可以修改这些数据内容,这就需要用到EEPROM。

2024-10-24 20:02:41 1160

原创 单片机模板九:PWM(脉冲宽度调制)

当 CNT 值小于 CCRx 的时候, IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。的缩写,它的中文名字是脉冲宽度调制,一种说法是它利用微处理器的数字输出来对模拟电路进行控制的一种有效的技术,其实就是使用数字信号达到一个模拟信号的效果。

2024-10-18 11:23:08 1252

原创 单片机模板八:IO/存储扩展

分别用对LED灯和数码管进行基本的控制。实现下面的功能:1、首先点亮指示灯低4位,关闭高4位,延时片刻,点亮指示灯的高4位,关闭低4位,延时片刻,关闭所有指示灯。2、然后依次逐个点亮数码管的所有段码,每次只点亮一个数码管。3、循环执行上述功能。XBYTE定义的是外部地址,这样才能和接到你的IO口上的器件通信。在一般的读写外部RAM的程序中,经常看到这样的句子:XBYTE[address]=data 写数据data=XBYTE[address] 读数据1。

2024-10-17 12:17:30 990

原创 单片机模板七:串口通信

通信可以分为并行通信和串行通信。并行通信:数据的各位同时进行发送或接收的通信方式。优点是速率高。缺点是需要的传输线多,成本高,只适合近距离的数据通信。串行通信:一位一位的按顺序的进行发送或接收的通信方式。优点是需要的传输线少,成本低。缺点是传输的速率慢,适合远距离的数据通信。单工通信就是指只允许一方向另外一方传送信息,而另一方不能回传信息。比如电视遥 控器、收音机广播等;半双工通信是指数据可以在双方之间相互传播,但是同一时刻只能其中一方发给另外一方。比如我们的对讲机;STC89C52的UART有四种工作模式

2024-10-15 22:28:44 2241

原创 单片机模板六:定时器

顾名思义,定时器就是用来进行定时的。定时器内部有一个寄存器,每经过一个周期,寄存器会自动加一。标准的 51 单片机内部有 T0 和 T1 这两个定时器,而寄存器中TH0/TL0 用于 T0,TH1/TL1 用于T1。对于寄存器,我们将介绍两种——TCON和TMOD。(1)定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。TF1——TF1=1表示T1有中断产生;TR1——TR1=1表示T1开始运行;TF0——TF0=1表示T0有中断产生;

2024-10-10 21:45:05 1953

原创 单片机模板五:中断系统与外部中断

(定时器/计数器0中断优先级控制位)——PT0=1,定时器/计数器0中断定义为高优先级中断。(外部中断1中断优先级控制位)——PX1=1,外部中断1定义为高优先级中断。(外部中断0中断优先级控制位)——PX0=1,外部中断0定义为高优先级中断。(串行口中断优先级控制位)——PS=1,串行口中断定义为高优先级中断。外部中断0 > T0溢出中断 > 外部中断1 > T1溢出中断 > 串行口中断 > T2溢出中断。——EX0=1,允许外部中断0中断;PT1=1,定时器/计数器1中断定义为高优先级中断。

2024-10-03 19:47:36 1035

原创 单片机模板四:矩阵按键

对于矩阵键盘,我们只能逐行扫描,然后读取列的状态信号。1、 R1输出低电平,R2、R3、R4输出高电平,逐个读取C1、C2、C3、C4判断列信号,如果都为高电平则R1行上没有按键按下。3、 R3输出低电平,R1、R2、R4输出高电平,发现C2列信号为低电平,那么可以判断得R3行的C2列的按键有按下动作。2、 R2输出低电平,R1、R3、R4输出高电平,逐个读取C1、C2、C3、C4判断列信号。4、 R4输出低电平,R1、R3、R4输出高电平,逐个读取C1、C2、C3、C4判断列信号。

2024-10-03 17:51:43 1534

原创 单片机模板三:独立按键

当按键 K1 按下时,+5V 通过电阻 R1 然后再通过按键 K1 最终进入 GND 形成一条通路,那么这条线路的全部电压都加到了 R1 这个电阻上,KeyIn1 这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么 KeyIn1和+5V 就应该是等电位,是一个高电平。我们就可以通过 KeyIn1 这个 IO 口的高低电平来判断是否有按键按下。 S7控制L1,S6控制L2,S5控制L3,S4控制L4。首先,我们需要先定义按键和LED的引脚,再建立按键与LED之间的函数。考虑到抖动,我们还需要

2024-09-27 20:53:37 1124

原创 单片机模块二:数码管显示

从图中可以看到,数码管共有a、b、c、d、e、f、g、dp八个段 ,每个段有一个LED灯,0为亮,1为灭,我们通过控制P0口来控制数码管段的选择 ,而我们用的数码管都是共阳数码管,和LED灯一样,也是由74HC138控制三极管的导通来控制整个数码管的使能。因此,我将设计一个代码,动态表示0、1、2、3、4、5、6、7、8、9。if (sec >= 10) //当秒数超过 0x90(10)后,重新从 0 开始。//使能 U3,选择数码管 DS1。if (TF0 == 1) //判断 T0 是否溢出。

2024-09-21 18:30:55 1197

原创 单片机模板一:LED的点亮

首先,我们需要先了解点亮LED灯的电路流程图:由图可知,我们要点亮LED灯,需要先让Y4C为1打开,则依次推导过去,可知我们需要将P25,P26,P27保持为001,才能使Y4C打开。我们先定义74HC138译码器定义管脚,再写LED一直亮的函数。连接电脑和单片机后,发现8个灯一直亮,但发出了爆鸣声。于是,我们再添加以下的函数,让爆鸣声消失。

2024-09-15 21:57:18 966 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除