
51单片机
麦渊
菜鸟嵌入式开发
展开
-
51单片机解码NEC协议红外遥控器,串口助手显示键值码
#include <reg52.h>#include <intrins.h>//这个为啥可以省略我也不知道,后面有用到 右移所以保守不省略。去掉也是可以完成此功能unsigned char IR_Time;//33位数据脉宽时间用计时器0中断个数表示 ,进入一次中断需要1.085*256=277.76usunsigned char IR_Date[33];//红外接收头发给单片机解码的33位数据(引导码1+用户码16+按键键值码8+键值码反码8)unsigned char.原创 2020-07-17 12:36:59 · 3273 阅读 · 0 评论 -
51数码管显示DS18B02传感器温度(12位精度)
#include<reg52.h>#include<intrins原创 2020-07-15 20:14:33 · 1425 阅读 · 0 评论 -
51数码管显示整数0-9999
#include<reg52.h>sbit du=P2^6;sbit we=P2^7;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(unsigned char a){unsigned char x,y;for(x=0;x<a;x++)for(y=0;y<114;y++);}void display(unsigned int a){.原创 2020-07-15 13:36:50 · 3962 阅读 · 0 评论 -
51呼吸灯源码(PWM调制)
图2中 LED灯阳极3需连接到图1射极跟随器电路输出DAOUT。#include <reg52.h>sfr P4 = 0xe8; /C语言中声明P4口特殊功能寄存器地址/sbit DAC_DATA = P4^4;//DA数据口unsigned char DAC_VAL;//占空比参数 模拟8位DA输出,取值范围0-255unsigned char pwm_t;//周期#define MAIN_Fosc 11059200UL //宏定义主时钟HZtypedef unsigne..原创 2020-07-14 21:14:00 · 1990 阅读 · 0 评论 -
51模拟量转数字量(转载)
/*********************************************************************************【作 者】: 清翔电子【版 本】: V1.1【网 站】: http://www.qxmcu.com/【淘宝店铺】: http://qxmcu.taobao.com/【实验平台】: 清翔 QX-MCS51 单片机开发板【外部晶振】: 11.0592mhz【主控芯片】: STC89C52【编译环境】: Kei转载 2020-07-14 10:28:19 · 1817 阅读 · 0 评论 -
51 软件模拟IIC与EEPROM通信(转载)
/*********************************************************************************【作 者】: 清翔电子:向量【版 本】: V1.0【网 站】: http://www.qxmcu.com/【淘宝店铺】: http://qxmcu.taobao.com/【实验平台】: 清翔 QX-MCS51 单片机开发板【外部晶振】: 11.0592mhz【主控芯片】: STC89C52【编译环境】:转载 2020-07-13 10:26:31 · 1050 阅读 · 0 评论 -
51串口通信
说明:1、串口工作方式1,8位UART比特率9600。接收串口数据,数码管以十进制格式显示,并且把接收到的数据加1后通过串口发出。 2、打开串口助手(STC-ISP软件上有集成)选择对应COM号,设置波特率9600发送和接收格式选择HEX格式。#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit DU = P2^6;//数码管段选sb转载 2020-07-09 09:46:15 · 649 阅读 · 0 评论 -
51外中断、独立键盘、led灯结合实例
#include <reg52.h>sbit flag =P2^7; //P2.7与P3.3用杜邦线连接,P2.7引脚提供下降沿给外中断引脚P3.3sbit led=P1^7; //执行中断led灯亮灭动作sbit key_S3=P3^1;//独立开关按键接P3.1引脚,用于检测开关是否被按下void delay(unsigned int a)//延迟函数,用于按键消除机械抖动{unsigned char x,y;for(x=0;x<a;x++)for(y=0;y<1.原创 2020-07-03 10:14:48 · 627 阅读 · 0 评论 -
51单片机8*8点阵显示“中国”
#include <reg52.h>#include <intrins.h> //位移函数sbit DIO=P3^4; //2片74HC595数据输入端sbit S_CLK=P3^5;//串行输入时钟sbit R_CLK=P3^6;//并行输出时钟unsigned char code table[2][8]={0xEF,0xEF,0xEF,0x01,0x6D,0x01,0xEF,0xEF,0x01,0x7D,0x01,0x69,0x45,0x6D,0x45,0x01};//原创 2020-07-01 18:15:46 · 5557 阅读 · 0 评论 -
51单片机8*8点阵点亮1盏灯
#include <reg52.h>#include <intrins.h>sbit DIO=P3^4;sbit S_CLK=P3^5;sbit R_CLK=P3^6;void Dio_Byte(unsigned char dat){unsigned char i;for(i=0;i<8;i++){ S_CLK=0;if(dat&0x01)DIO=1;else{DIO=0;}S_CLK=1;dat=dat>>1;}}vo..原创 2020-06-30 19:01:36 · 1725 阅读 · 0 评论 -
51单片机数码管显示4*4矩阵键盘按键值
#include <reg52.h>sbit du = P2^6;// 数码管段选sbit we = P2^7;// 数码管位选unsigned char jianzhi;//定义全局变量按键编号unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9数字void delay(unsigned char a) //自定义延迟函数{unsigned int x,y;f..原创 2020-06-29 22:11:03 · 13223 阅读 · 2 评论 -
51单片机独立键盘S2点亮led灯
#include <reg52.h>sbit led = P1^7;sbit key=P3^0;void delay(unsigned char a) {unsigned char x,y;for (x=a;x>0;x–)for (y=144;y>0;y–);}void main(){ while(1){if(key0)delay(20);if(key0)led=~led;}while(!key);}原创 2020-06-29 10:20:08 · 890 阅读 · 0 评论 -
51单片机数码管显示整数0-999
#include<reg52.h>sbit du=P2^6;//数码管段选sbit we=P2^7;//数码管位选unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数字0-9void delay(unsigned char a)//自定义延迟函数,字符型a值范围0-255{unsigned char x,y;for(x=0;x<a;x++)for(y=0;y<原创 2020-06-28 09:11:49 · 12939 阅读 · 0 评论 -
51单片机循环流水灯源码
51单片机循环流水灯源码#include <reg52.h>#include <intrins.h>void delay(unsigned char a){unsigned char x,y;for(x=0;x<a;x++)for(y=0;y<114;y++);}void main(){unsigned char i,temp;temp=0xfe;for(i=0;i<8;i++){temp=crol(temp,1);P1=temp;del原创 2020-06-26 15:40:20 · 3237 阅读 · 0 评论