- 博客(42)
- 收藏
- 关注
原创 蓝桥杯 eeprom
unsigned eeprom_read(unsigned char addr)//连续读连续写需要一定延时。unsigned adc_read(unsigned char addr)//地址。
2024-04-16 12:50:26
929
原创 蓝桥杯 AD-DA数模转换
unsigned adc_read(unsigned char addr)//地址。//I2C总线发送一个字节数据。//I2C总线接收一个字节数据。//I2C总线内部延时函数。//发送应答或非应答信号。//I2C总线启动信号。//I2C总线停止信号。
2024-04-16 12:48:00
758
原创 蓝桥杯 DS18B20
/ initflag等于1初始化失败。//通过单总线向DS18B20写一个字节。//DS18B20温度采集程序:整数。//从DS18B20读取一个字节。//DS18B20初始化。////单总线延时函数。onewire.h中。onewire.c中。
2024-04-16 12:45:53
306
原创 蓝桥杯 串口进阶案例
switch(command & 0xf0)//低四位全部为0,取高四位。//串口1选择定时器1为波特率发生器。//防止反复发送这串代码。case 0xa0: //注意这里是冒号。//8位数据,可变波特率。//定时器时钟1T模式。TL1 = 0xDC;TH1 = 0xDC;//禁止定时器%d中断。//定时器1开始计时。void Working()//接受到上位机的命令。
2024-04-16 12:42:03
417
原创 蓝桥杯 串口
/0000,0000 PCA模块0的捕捉/比较寄存器低字节。//0000,0000 PCA模块1的捕捉/比较寄存器低字节。//0000,0000 PCA模块2的捕捉/比较寄存器低字节。//0000,0000 PCA模块0的捕捉/比较寄存器高字节。//0000,0000 PCA模块1的捕捉/比较寄存器高字节。//0000,0000 PCA模块2的捕捉/比较寄存器高字节。//0000,0000 PCA模块0的PWM寄存器。//0000,0000 PCA模块1的PWM寄存器。
2024-04-16 12:41:07
417
原创 蓝桥杯 PWM
void Timer0Init(void) //100微秒@12.000MHz。//PWM计数值和比较值。//定时器时钟12T模式。TL0 = 0x9C;TH0 = 0xFF;//定时器0开始计时。// 允许定时器 1 中断。
2024-04-16 12:38:38
447
原创 蓝桥杯 定时器 数码管 秒表
void delay(unsigned char t)//注意这有两个延时函数,一个延时数码管,一个整体延时。void Timer1Init(void) //1毫秒@12.000MHz。//定时器1开始计时。// 允许定时器 1 中断。
2024-04-16 12:37:55
437
原创 蓝桥杯 定时器
void Timer1Init(void) //1毫秒@12.000MHz。//定时器时钟12T模式。TL1 = 0x18;TH1 = 0xFC;//定时器1开始计时。// 允许定时器 1 中断。
2024-04-16 12:36:58
313
原创 蓝桥杯 中断
void int0(void) interrupt 0 //异或,相异为1,BTN,独立按键,S4,S5。void int1(void) interrupt 2 //异或,相异为1,BTN,独立按键,S4,S5。// 边沿触发方式(下降沿)// 边沿触发方式(下降沿)
2024-04-16 12:36:13
290
原创 蓝桥杯 矩阵键盘
#include <STC15F2K60S2.H>sbit HC138_A=P2^5;sbit HC138_B=P2^6;sbit HC138_C=P2^7;sbit buzz_1= P0^6;sbit jdq_2= P0^4;sbit H1=P3^0;sbit H2=P3^1;sbit H3=P3^2;sbit H4=P3^3;sbit L1=P4^4;sbit L2=P4^2;sbit L3=P3^5;sbit L4=P3^4;unsigned char code SMG_duan
2024-04-16 12:35:35
409
原创 51单片机 蓝牙小车
/SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志。* @param Number 要显示的数字,范围:0~1111 1111 1111 1111。//八位数据接口,两行显示,5*7点阵。* @param Number 要显示的数字,范围:-32768~32767。//显示开,光标关,闪烁关。* @param Number 要显示的数字,范围:0~0xFFFF。//8位数据,可变波特率。* @param Number 要显示的数字,范围:0~65535。
2024-04-15 12:39:59
673
原创 51单片机 DS18B20温度报警器
@param Number 要显示的数字,范围:0~1111 1111 1111 1111。//八位数据接口,两行显示,5*7点阵。* @param Number 要显示的数字,范围:-32768~32767。* @param Number 要显示的数字,范围:0~0xFFFF。* @param Number 要显示的数字,范围:0~65535。* @param Length 要显示数字的长度,范围:1~5。* @param Length 要显示数字的长度,范围:1~5。
2024-04-15 12:31:12
943
原创 51单片机 DS18B20温度测量
@param Number 要显示的数字,范围:0~1111 1111 1111 1111。//八位数据接口,两行显示,5*7点阵。* @param Number 要显示的数字,范围:-32768~32767。* @param Number 要显示的数字,范围:0~0xFFFF。* @param Number 要显示的数字,范围:0~65535。* @param Length 要显示数字的长度,范围:1~5。* @param Length 要显示数字的长度,范围:1~5。
2024-04-15 12:22:00
501
原创 51单片机 模块化蓝牙驱动电机
SCON=0X50;//SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志。//使能波特率倍速位SMOD。//8位数据,可变波特率。//定时器1开始计时。//左上 out1。//右下 out4。//右上 out3。TL1 = 0xF3;TH1 = 0xF3;//禁止定时器%d中断。
2024-04-15 12:15:18
497
原创 51单片机 AT24C02存数据
@param Number 要显示的数字,范围:0~1111 1111 1111 1111。//八位数据接口,两行显示,5*7点阵。//显示开,光标关,闪烁关。* @param Number 要显示的数字,范围:0~0xFFFF。* @param Number 要显示的数字,范围:0~65535。* @param Length 要显示数字的长度,范围:1~5。
2024-04-15 12:07:00
1078
原创 51单片机 超声波模块测距显示在LCD1602液晶显示屏上
void LcdInit() //LCD初始化子程序。void LcdWriteData(uchar dat) //写入数据。//使用LCD中的函数延时。void t0() interrupt 1 //T0中断用来计数器溢出,超过测距范围。if((s>=4000)||flag==1) //超出测量范围显示“-”void LcdWriteCom(uchar com) //写入命令。
2024-04-15 11:59:41
1180
原创 51单片机 控制舵机转动角度
/舵机恢复到0°的位置 5==0° 10==45° 15==90°。if (count >= 200) //T = 20ms清零。//设定PWM输出的I/O端口。//定时器T0设置成方式1。t = 0.5ms——————-舵机会转动 0 °。t = 2.0ms——————-舵机会转动 135°。t = 1.0ms——————-舵机会转动 45°。t = 1.5ms——————-舵机会转动 90°。t = 2.5ms——————-舵机会转动180。/*定时器T0初始化*//*T0中断初始化*/
2024-04-15 11:51:22
986
原创 51单片机 蓝牙控制小车
SCON=0X50;//SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志。//左边马达下接口 out2。//左上 out1。//右下 out4。//右上 out3。//波特率为9600算出来的fd。
2024-04-15 11:50:15
343
1
原创 51单片机 独立按键控制小车
#include <REGX52.H>sbit in1 = P1^0;//左电机sbit in2 = P1^1;//左电机sbit in3 = P1^2;//右电机sbit in4 = P1^3;//右电机void Delay(unsigned int xms) //@12.000MHz{ unsigned char i, j; while(xms) { i = 2; j = 239; do {
2024-04-15 11:47:27
668
1
原创 51单片机 红外控制电机转速
if((IR_Data[0]==~IR_Data[1]) && (IR_Data[2]==~IR_Data[3])) //数据验证。else if(IR_State==1) //状态1,等待Start信号或Repeat信号。if(IR_State==0) //状态0,空闲状态。
2024-04-15 11:08:43
874
1
原创 51单片机 直流电机调速
TL0 = 0x9C;//设置定时初始值 100微妙。#include "Delay.h" //包含Delay头文件。switch(Location) //位码输出。if(Counter<Compare) //电机给1转。TL0 = 0x9C;TH0 = 0xFF;TL0 = 0x9C;//定时器0开始计时。#include"Nixie.h" //晶体管。// 获取独立按键键码,//数码管显示子函数。
2024-04-15 10:59:09
638
1
原创 51单片机 蜂鸣器播放音乐
/选择音符对应的时值。//选择音符对应的频率。=0xFF) //如果不是停止标志位。//音符与索引对应表,P:休止符,L:低音,M:中音,H:高音,下划线:升半音符号#if(FreqTable[FreqSelect]) //如果不是休止符。//翻转蜂鸣器IO口。//定时器0开始计时。/*取对应频率值的重装载值到定时器*/else //如果是停止标志位。
2024-04-14 14:35:36
1893
1
原创 51单片机 蜂鸣器
include "Delay.h" //包含Delay头文件。switch(Location) //位码输出。* 注释:蜂鸣器私有延时函数,延时500微妙。//要调用函数INTRINS。if(KeyNum)//按键按下。* 注释:蜂鸣器发生。输入参数:毫秒 发生时长。// 获取独立按键键码,//数码管显示子函数。
2024-04-14 14:32:43
431
1
原创 51单片机 LED点阵屏动画
@param Data 选择列显示的数据,高位在上,1为亮,0为灭。* @param Column 要选择的列,范围:0~7,0在最左边。* @brief 74HC595写入一个字节。* @brief LED点阵屏显示一列数据。* @param Byte 要写入的字节。*注释: 点阵屏初始化。MATRIX_LED.c中。* @retval 无。* @retval 无。MATRIX_LED.h中。
2024-04-14 14:28:18
476
1
原创 51单片机 LED点阵屏
@param Data 选择列显示的数据,高位在上,1为亮,0为灭。* @param Column 要选择的列,范围:0~7,0在最左边。* @brief 74HC595写入一个字节。* @brief LED点阵屏显示一列数据。* @param Byte 要写入的字节。* @retval 无。* @retval 无。
2024-04-14 14:24:54
424
1
原创 51单片机 电脑通过串口控制LED
/使能波特率倍速位SMOD。//8位数据,可变波特率。//定时器1开始计时。TL1 = 0xF3;TH1 = 0xF3;//禁止定时器%d中断。*注释:串口初始化 4800bps@12.000MHz。输入参数: byte要发送一个数据。*注释:串口发送一个字节数据。//串口中断函数模板。
2024-04-14 14:23:12
356
1
原创 51单片机 串口向电脑发送数据
/使能波特率倍速位SMOD。//8位数据,可变波特率。TL1 = 0xF3;TH1 = 0xF3;//禁止定时器%d中断。*注释:串口初始化 4800bps@12.000MHz。//定时器1开始计时。输入参数: byte要发送一个数据。*注释:串口发送一个字节数据。
2024-04-14 14:19:59
482
1
原创 51单片机 独立按键 定时器 流水灯
@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。* @param Length 要显示数字的长度,范围:1~4。
2024-04-14 14:10:10
712
1
原创 51单片机数码锁
/数据读写操作后,光标自动加一,画面不动。if(Password==2345) //如果密码显示2345,正确。//八位数据接口,两行显示,5*7点阵。if(KeyNum==11) //如果s11按键按下,确认。if(KeyNum<=10)//如果s1-s10按键按下,输入密码。//显示开,光标关,闪烁关。Password=0;
2024-04-14 14:05:43
955
1
原创 51单片机 矩阵键盘
@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。* @param Length 要显示数字的长度,范围:1~4。
2024-04-14 14:00:50
459
1
原创 51单片机 独立按键控制LED灯移动
while(xms)i = 2;j = 239;doxms--;P2=~0x01;while(1)Delay(20);Delay(20);LEDNum++;LEDNum=0;Delay(20);Delay(20);LEDNum=7;elseLEDNum--;
2024-04-14 13:48:35
315
1
原创 51单片机 独立按键
#include <REGX52.H>void Delay(unsigned int xms) //@12.000MHz{ unsigned char i, j; while(xms) { i = 2; j = 230; do { while (--j); } while (--i); xms--; }}void main(){// P2=0xFE; wh
2024-04-14 13:46:54
287
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人