![](https://img-blog.csdnimg.cn/d514d74407ab4ec79b3cb67c916f6e5b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
51单片机
51单片机学习过程
嵌入式JunG
一个热爱嵌入式的小学生
展开
-
LED流水灯
単片机接口:如果需要实现流水灯,可以先让PO口输出0X01(0000 0001)然后延时一段时间,让PO口(保特,此时一极管最右边的灯亮,其余的灭;如果需要闪烁,可以先让PO口输出高电平,然后延附一段时间,让PO口保持高电平,此时二极管亮;然后再让PO口输出低电平,然后延时一段时间,让PO口保持低电平,此时二极管灭;while(1)//1为低电频 0为低电频 500ms为每个灯亮的时长 //同时遵循十六进制原则。//1111 1110//0对应的灯亮 其他不亮 以此类推。3.STC89C52RC开发板。原创 2023-07-04 20:16:59 · 195 阅读 · 1 评论 -
数码管显示
我们在使用数码管来显示数据的时候,如果没有对其有一个合适的处理,往往就会出现鬼影,或是数码管显示时亮度不一致。第一个可能的原因,数码管不能正常显示,是因为上一次P0口的数据有所残留,与这次我们输出的数据发生了冲突,导致了数码管的异常显示。第二个可能的原因,P0口输出数据后,你的延时不正确,过长或是过短都会导致函数的一个异常显示。第三个可能的原因,你程序里面有其它的函数执行时间过长,导致数码管显示函数这儿给各个位分配的时间出现了大幅度偏差,数码管的最后一位会比其它几位亮。//在数码管的第2位置显示3。原创 2023-07-06 21:02:56 · 925 阅读 · 3 评论 -
独立按键控制LED
if(P3_1==0||P3_0==0||P3_2==0||P3_3==0)//四个独立按键控制LED亮灭 按下亮 松开关。if(P3_1==0) //如果K1按键按下就亮。if(LEDNum==0) //LEDNum减到0后变为7。if(LEDNum>=8) //限制LEDNum自增范围。if(P3_1==0) //如果K1按键按下。if(P3_0==0) //如果K2按键按下。原创 2023-07-06 20:33:24 · 373 阅读 · 0 评论 -
单片机中的模块化编程
Nixie(1,1);//在数码管的第1位置显示1。//在数码管的第2位置显示2。//在数码管的第3位置显示3。//在数码管的第4位置显示4。//在数码管的第5位置显示5。//在数码管的第6位置显示6。#include "Delay.h" //包含Delay头文件。#include "Delay.h" //包含Delay头文件。switch(Location) //位码输出。#include "Nixie.h" //包含数码管头文件。//数码管显示子函数。原创 2023-07-13 18:06:59 · 151 阅读 · 0 评论 -
PWM的相应介绍及应用
也就是说,在一定的频率下,通过不同的占空比即可得到不同大小的输出模拟电压,PWM就是通过这种原理实现数字模拟信号转换的。周期的时间是10ms,脉宽时间是8ms,那么占空比是8/10= 80%,这就是占空比为80%的脉冲信号。是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。其中,周期是一个脉冲信号的时间,1s内的周期T次数等于频率f,脉宽时间是指高电平时间。是一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)原创 2023-08-02 21:03:23 · 389 阅读 · 1 评论 -
电脑通过串口控制LED
通过接受数据然后进入中断系统,再对数据进行处理,处理完可以以LED形式表现出来。原创 2023-07-18 19:50:10 · 128 阅读 · 0 评论 -
LED点阵屏显示图形
【代码】LED点阵屏显示图形。原创 2023-07-19 18:09:01 · 142 阅读 · 0 评论 -
单片机中的矩阵密码锁
if(Password==2345) //如果密码等于正确密码。if(KeyNum原创 2023-07-14 19:30:05 · 82 阅读 · 0 评论 -
串口向电脑发送数据
【代码】串口向电脑发送数据。原创 2023-07-18 18:49:44 · 242 阅读 · 0 评论 -
DS18B20温度读取/温度报警器
代码现象:将物体或手放在图片椭圆处,显示屏会温度数据会变化,达到相对温度后波动。原创 2023-08-01 01:04:08 · 2218 阅读 · 1 评论 -
AT24C02数据存储
代码现象是: 按下独立按键1,数据增;按下独立按键2,数据减(0往下减为65535);按下独立按键3会写入数据;按下独立按键4会读取之前写入的数据,重现显示出来。开漏输出模式:无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动,而低电平时驱动能力强。4.写入和读取时序模块。原创 2023-07-29 11:30:29 · 423 阅读 · 1 评论 -
51单片机中的蜂鸣器
蜂鸣器分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器和无源蜂鸣器的区别:这里的“源”不是指电源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面含有震荡电路。原创 2023-07-26 19:58:52 · 1671 阅读 · 9 评论 -
独立按键控LED流水灯
3.Timer.c(定时器代码)1.Key.C(独立按键代码)二.对中断系统有一定的了解。原创 2023-07-18 00:50:33 · 699 阅读 · 0 评论 -
DS1302(可调)时钟
【代码】DS1302时钟。原创 2023-07-24 21:43:54 · 1018 阅读 · 0 评论 -
51单片机中的红外遥控模块
红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出。通信方式:单工,异步红外LED波长:940nm通信协议标准:NEC标准。原创 2023-09-20 00:12:26 · 2534 阅读 · 6 评论 -
LCD 1602驱动代码
/在LCD的1行1列显示Result,长度为3位。* @param Number 要显示的数字,范围:0~1111 1111 1111 1111。* @param Number 要显示的数字,范围:0~0xFFFF。* @param Number 要显示的数字,范围:0~65535。* @param Length 要显示数字的长度,范围:1~16。* @param Length 要显示数字的长度,范围:1~5。* @param Length 要显示数字的长度,范围:1~5。原创 2023-07-13 18:19:34 · 1366 阅读 · 0 评论 -
定时器时钟
【代码】定时器时钟。原创 2023-07-18 01:09:51 · 98 阅读 · 0 评论 -
秒表(定时器扫描按键数码管)
主函数现象为按下独立按键1计时启动/暂停,按下独立按键2计时清零,按下独立按键3写入数据,按下独立按键4将写入数据重新显示在数码管上。原创 2023-07-29 23:00:00 · 180 阅读 · 1 评论 -
LCD1602液晶显示屏
代码现象:会根据void main中对应位置显示对应数据 同时每隔500us左移一位且循环。原创 2023-08-01 20:49:52 · 1195 阅读 · 5 评论 -
单片机中的矩阵键盘
/获取矩阵键盘键码。//引用已经编写好的MatrixKey.c中的代码。if(KeyNum) //如果有按键按下。#include "Delay.h" //包含Delay头文件。#include "LCD1602.h" //包含LCD1602头文件。#include "MatrixKey.h" //包含矩阵键盘头文件。原创 2023-07-14 18:45:04 · 1606 阅读 · 0 评论 -
LED点阵屏显示动画
【代码】LED点阵屏显示动画。原创 2023-07-19 19:01:20 · 123 阅读 · 0 评论 -
51单片机中的AD/DA模块
在常见的数字信号系统中,大部分传感器信号被转化成电压信号,而 ADC 把电压模拟信号转换成易于计算机存储处理的数字编码,由计算机处理完成后,再由 DAC 输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。4.SER/ ——DFR ——SER/ —— DFR 位控制参考源模式,选择单端模式(SER/ —— DFR =1),或者差分模式(SER/ ——DFR =0)。2.地址——接下来的 3 位(A2、A1 和 A0)选择多路选择器的现行通道,触摸屏驱动和参考源输入。原创 2023-09-12 18:07:38 · 3406 阅读 · 0 评论