![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
51单片机
文章平均质量分 67
light_2025
Looking back, there is no regret !
展开
-
51单片机LED
左下角的是晶振电路,晶振的存在保证程序的运行(没有晶振程序是无法运行的,晶振旁边的电容叫做起步电容)左侧上边的去实现复位功能。例如:CPU发出指令1,输出高电平---5V---LED灭;CPU发出指令0,输出低电平-----0V----LED亮。该程序相对于上面的程序,虽然都是实现8个LED循环闪烁,也就是流水灯,但是上面的程序本身会存在延时熄灭的程序,所以每次循环时,本身会闪烁一次再循环下一个LED灯。发光二极管图(右图)中:小的一侧为正极,大的一侧为负极;-------(例如控制LED灯的亮灭)原创 2022-10-22 15:08:38 · 2477 阅读 · 0 评论 -
51单片机-独立按键控制LED
首先我们要懂,任何代码的表示方式都基于我们的原理图;也就是说原理图上显示LED灯的引脚接到芯片P3_1上,所以我们的循环语句用到 P3_1 , p3_1==0的意思引脚工作状态下,也就是我们按下第一个独立按键的时候,默认不按第一个独立按键的时候,就是if语句的否则状态,也就是else,所有灯都是灭的状态;对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳点的接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。P3_ 表示1位;原创 2022-10-22 20:09:02 · 11111 阅读 · 18 评论 -
51单片机 动态、静态数码管显示
第三个灯是LED6(灯的序号排序是从右往左的 8 7 6 5 4 3 2 1)LED 6对应的是74HC138译码器的Y5接口,5转换成二进制位是101;首先定义子函数,进行传参,Nixie第一个参数是地址(第几个数码管的位置,从左往右)(原理图上的LED0/1/2/3/4/5/6/7在51单片机上体现是从右往左的),第二个是数字(数码管上显示的数字大小);也就是说右边给到信号是1011110 从上到下对应的引脚是一次升高的,转换到LED输出接口P0时,一定是从下往上,高位对应到高位;共阴极是高电平1亮;原创 2022-10-25 16:41:31 · 10473 阅读 · 1 评论 -
51单片机模块化编程、LCD调试
把各个模块的代码放在不同的.c文件里,在.h(head----头文件)文件里提供外部可调用函数的声明,其中.c文件想使用其中的代码时,只需要#include即可;可以分开成.c文件和.h文件----例如:Delay.c和Delay.h文件,Delay.h文件中只要需要放置Delay函数的声明即可; 和 " " 的区别在于:引用的是安装目录下的文件,是安装的时候实实在在存在的文件,而 " " 是我们自定义的.h头文件;符号:TH0(定时器0)-----Timer High 0;原创 2022-10-31 20:29:11 · 1564 阅读 · 0 评论 -
51串口通信
内部自带 UART ( Universal Asynchronous Receiver Transmitter 通用异步收发器 ) ,可实现单片机的串口通讯。是指一种应用十分广泛的通讯接口,串口成本低、容易使用,可实现两个设备的互相通信。TTL电平:+5V表示1,0V表示0;--------单片机用的就是TTL电平;RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号);RS232电平:-3~-15V表示1,+3~+15V表示0;发送和接收各数据位的间隔时间;原创 2022-11-04 16:09:36 · 163 阅读 · 0 评论 -
51-LED点阵屏
--信号给到SER,SER接收信号,上升沿SERCLK高电位移位,每接收一个就向下移位一次,接收完置0;首先:定义一列的情况:定义参数Byte;for循环,Byte&0x80是把0x80的最高位拿出来;库里面已经有的定义,在此基础上从新定义;是把一列的8个位置情况分别调出来,&--会把高电位1的那一个位置传给SER;:不能对寄存器中的某一位进行单独的定义,不可以控制其中某一位,不能对其中的一位进行定义;1.LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字,图片,视频等。原创 2022-11-05 11:21:42 · 505 阅读 · 0 评论 -
51单片机LCD屏补充知识
如果按键小于等于10,则按照矩阵按键的数字进行显示,KeyNum%10的意思是1-9键按下时照常显示1-9,因为1-9对10取余就是本身,10对10取余等于0,所以按下10时归0;-----0+按键%10(如果按下1就是1),此时PassWord等于1;LCD屏就是51单片机上显示屏,自我理解的LCD显示屏的功能类似于C语言中的printf函数,将所要达到的结果显示出来-----肉眼可见。-----初始化PassWord是0,按下0*10=0;,按下第五位时不做任何的修改;------中断号、中断资源;原创 2022-11-10 19:13:19 · 4005 阅读 · 3 评论 -
51-DS1302实时时钟
-----------------------BCD码转十进制:DEC=BCD/16*10+BCD%16;据上图,写时钟CE置高电位1,IO口的低位置---置0,用&;:DS1302.c中初始化数组时需要去掉无符号标志unsigned,否则在主函数中判断越界时,减减-- 是没有负数的,需要在DS1302的主函数和 . h 头 文 件 中去掉无符号标志,进而实现主函数的越界判断。初始化数组,内容为年-月-日-时-分-秒-日期,首先关闭写保护,然后写时钟BCD码;主函数建立时钟---读时钟;原创 2022-11-14 18:29:10 · 2622 阅读 · 8 评论 -
51蜂鸣器
定义一个音乐的数组,再定义一个新的变量,让变量在while(1)中进行++,保证数组中进行递进,简单来说就是第一个音符发出声音以后,能够++ 来到下一个音符,Delay进行延迟,如果需要不同音符之间产生间隙,需要TR0=0然后再置1,;简单来说就是发送完成一个字节以后,主机在下一个时钟接收一位数据,数据0表示应答,数据1表示非应答;简单来说就是接收完成一个字节后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答;通常用于较快的存储功能时,我们会使用RAM,需要永久保存时,我们会使用ROM;原创 2022-11-18 09:35:59 · 2911 阅读 · 0 评论 -
温度传感器---DS18B20
主机将总线拉低60-120us,然后释放总线,表示发送0;主机将总线拉低1-15us,然后释放总线,表示发送1;高位前5位是符号位,0表示正数,1表示负数;中间位是温度的表示方法,最后四位是小数,BIT3=0.5,BIT2=0.25,BIT1=0.125,BIT0=0.0625;:主机将总线拉低1-15us,然后释放总线, 并在拉低后15us内读取总线电平,读取为低电平则为0,读取为高电平则为1,整个时间片应大于60us;主机拉低,然后释放总线,等待15-60us,从机响应,从机拉低,然后释放总线。原创 2022-12-19 19:09:43 · 3084 阅读 · 0 评论 -
AD模数转化/DA数模转换
运算放大器(运放):具有很高放大倍数的放大电路单元;内部集成了差分放大器、电压放大器、功率放大器三级放大电路;AD:模拟数字转换---将模拟信号转换为计算机可操作的数字信号;(有时也称作ADC)DA:将计算机输出的数字信号转换为模拟信号;原创 2022-12-19 19:11:27 · 1385 阅读 · 0 评论 -
直流电机驱动
定义最简单的延迟函数;定义Time---保证PWM周期是一定的,通过for循环,我让Time的值一直变化,Time定义是LED灯亮灭的时间,我让LED灯亮和灭的时间产生差距,从而让LED呈现忽亮忽灭的现象,这就是PWM的本质;定义i for循环是为了让每一个Time时间LED的亮度循环20次,从而更明显的观察到现象;脉冲宽度调制-------PWM调速的原理就是:我让他转5us,停1us表示转速快;相反,我让他转1us,停5us表示慢;所以脉冲宽度调速就是调节转与停之间的时间比例,进而达到调速的目的;原创 2022-12-19 19:10:57 · 1171 阅读 · 0 评论 -
51红外遥控
红外遥控是利用红外光进行通信的设备,红光LED将调质好的信号发出,由专用的红外接收头进行解调输出;通信方式是单方面的---不能进行交互通信;红外LED波长940nm---不可见(遥控器);850nm(有微弱的红光-----夜间摄像头的红光);51单片机外部中断:下降沿触发---低电平触发;IR.c(红外线协议---特别注意)原创 2022-12-19 19:11:34 · 2200 阅读 · 0 评论