• 2024-07-21蓝桥杯单片机学习(Day14 实现操作外部开启中断)
    外部中断相关寄存器的配置方法和触发方式:        实验配置:    [email protected],J3跳线配置为IO方式,J5配置为BTN、J2配置为1-3和2-4。配置方法:        EX0、IT0负责外部中断0服务函数的开启其中断服务函数优先级为interrupt0,EX1、IT1负责
  • 2024-07-18蓝桥杯单片学习总结(Day12 串口通讯实验)
    实验现象:        通过串口调试助手发送数字1~8,板子上面的对应指示灯亮。注意此处发送应选择文本模式发送。 实例代码:#include<STC15F2K60S2.H>#defineBUAD 9600//所需波特率、#defineSYSTEMCLOCK 11059200L//系统时钟频率,L表示该数据为长整型voiduart_
  • 2024-07-10蓝桥杯单片机学习总结(Day4 独立按键实现LED流水灯)
    标题一:实现独立按键输出标题二:实现按键输出的效果标题三:实验总结      如图所示,S7、S6、S5、S4是独立按键一列,需要注意的是如果你的开发板独立按键和矩阵键盘是一体的如上图需要把引脚盖接到独立键盘那儿。    P30~P33是矩阵键盘和独立按键的引脚在编
  • 2024-07-08蓝桥杯单片机学习总结(Day1 实现LED闪烁)
    标题一:通过SM74HC138译码器打开控制8个LED灯的寄存器标题二:编程思路标题三:总结 打开LED寄存器: 由开发板的原理图可知其8个LED灯的寄存器开关为SM74HC138译码器(以下用38译码器称代)的Y4口,该38译码器的输入端P25~P27,其分别对应P25->SM74HC138_A、P26->SM74HC138_B、P27->S
  • 2024-04-19程序执行和模拟
    一、freestanding在之前的学习中都是在linux进行编译。那么从学习的角度看还是freestanding比较简单,图中_start这个程序是作为死循环的,输出一个A后处于while(1)的循环状态。 那么如果我们在freestanding中进行编译呢?要在freestanding中编译首先要明白一个问题,程序如何结束运
  • 2024-01-201.LED指示灯的基本控制
    include"reg52.h"defineucharunsignedcharuchari;//LED计数用voidDelay(unsignedintx)//这里不能用unsignedchar因为char不能存储超过255的数(延时用的5位数){while(x--);while(x--);}voidSelectHC573(ucharn){switch(n){case4:P2=(P2&0x1f)|0x80;break
  • 2023-10-0303-共阳极数码管的静态显示
    共阳数码管的静态显示由电路图可知此为共阳数码管#include<REGX52.H>unsignedintcodenum[16]={ 0xc0, //011000000 0xf9,//111111001abged为0 0xa4,//210100100 0xb0,//3 0x99,//4 0x92,//5 0x
  • 2023-10-0302-蜂鸣器与继电器的基本控制
    由原理图可知:#include<REGX52.H>voidDelay(unsignedintt){ while(t--); while(t--);}//74HC138void_74HC138(unsignedcharn){ switch(n){//00011111 case4://LED使能 P2=(P2&0x1f)|0x80;//Y4==10000000 brea
  • 2023-08-15c语言精通学习「2」: 位操作
     1.位操作符包括  &0&0=00&1=01&1=1特定位清零如11010101&11100111=11000101|0|0=0  1|0=1  1|1=1特定位置一~~0=1~1=0逻辑取反是!,真变成加、假变成真^ 1^1=00^0=11^0=0特定位取反<<>> 左移或
  • 2023-05-15Rockchip RK3399-官方固件方式加载uboot
    ----------------------------------------------------------------------------------------------------------------------------开发板 :NanoPC-T4开发板eMMC  :16GBLPDDR3:4GB显示屏 :15.6英寸HDMI接口显示屏u-boot  :2017.09---------------------------------------
  • 2023-03-23朱有鹏:寄存器修改指定位或多个不连续位,左移<< 设置特定二进制数
    一:设置连续,特定位为1问:假设要有一组32位的二进制数,要修改其中3~7bit位的位为1(其他位为0),该如何写?答:推算: 7-3+1(第7位减去第3位,加1是公式必须这样这么写,先获取要
  • 2023-01-0314-综合实训案例
    #include"reg52.h"#include<stdio.h>#include<string.h>sfrAUXR=0x8e;sbitL7=P0^6;sbitL8=P0^7;sbitS5=P3^2;sbitS4=P3^3;//=========预
  • 2022-12-2809-定时器拓展应用
    #include"reg52.h"sbitS4=P3^3;sbitS5=P3^2;unsignedcharfen=0;unsignedcharmiao=0;unsignedchart_005ms=0;voiddelay(unsignedchart){
  • 2022-12-2304-数码管动态显示
    #include"reg52.h"voiddelay(unsignedchari){ while(i--);}voidshowseg();voidmaindelay(unsignedchart){ while(t--) { showseg(); }}unsign
  • 2022-12-2203-数码管静态显示
     #include"reg52.h"voiddelay(unsignedchari){ while(i--);}unsignedcharcodetable[]={ 0xc0,//0 0xf9,//1 0xa4,//2 0xb0,//3 0x99,//4 0x92,
  • 2022-12-22 嵌入式基础
    提取小时:#defineTime_Addr0xFFFFC0000//实时钟芯片的IO映像基址是OxFFFFC0000#defineTIME*(volatileint*)(Time_Addr+2)intgetHours(){inttime=TIME;
  • 2022-12-22 嵌入式基础
    #defineTIME_Addr0xFFFFC0000#defineTIME*(volatileint*)(TIME_Addr+2)//这里需要将地址+2intgetHours(){inttime=TIME;return(time>>11)&0x