自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 汇编中七种寻址方式

七种寻址方式立即数寻址寄存器寻址储存器寻址直接寻址寄存器间接寻址寄存器相对寻址基址加变址寻址相对加基址变址寻址立即数寻址直接将源操作数放到目的操作数中10放入寄存器AX中寄存器寻址数据直接存放在寄存器中对CX寄存器中的数自增1储存器寻址直接寻址将源操作数中地址(偏移地址)加上段地址*10中的数放入寄存器AX中寄存器间接寻址操作数储存在存储器中,操作数的偏移地址在BX、SI、DI和BP的某个寄存器中若使用的是BP寄存器则立即数存放在堆栈段中,用SS修饰将SI寄存器中保存的偏移地

2021-08-31 17:37:22 409

原创 stm32HAL库rt_thread移植

这里写目录标题移前准备开始移植装包完成基础配置关于Systick中断处理函数说明board文件修改(嫌麻烦第一点可以忽略)移植完成移前准备1、需要去keil官网下载一个rt_thread的包。链接: 官网下载链接.直接下载最新版本即可2、需要准备一个简易的裸机工程可以直接使用cubemx创建一个led的工程链接: 参考教程.开始移植装包一、直接无脑安装即可二、打开我们提前准备好的裸机工程点击这里将我们下载的rt_thread包添加进来加入进来之后我们可以看到这里会多一个RTOS,

2021-08-05 19:36:19 1223 1

原创 stm32通用IO寄存器详解

STM32通用IO 寄存器一、端口配置寄存器 CRH、CRL1、MODE2、CNF二、数据寄存器 ODR、IDR1、ODR2、IDR三、置位/复位寄存器 BSRR1、BSRR四、复位寄存器 BRR1、BRR五、锁存寄存器 LCKR1、LCKR六、ODR、BSRR、BRR之间的联系与区别**既然ODR寄存器既可以输出高电平也可以输出低电平那么为什么还需要BSRR和BRR呢?****为什么BSRR寄存器既可以输出也可以清除还要使用BRR寄存器呢?**总结一、端口配置寄存器 CRH、CRL端口配置寄存器CRH

2021-08-01 01:13:10 3385

原创 stm32位带操作及内存地址

位待操作及地址STM32地址基地址、总线地址、寄存器地址是什么基地址以及偏移地址寄存器地址他们之间有什么样的联系(重点)STM32位待操作What 位待操作是什么Why 为什么要使用位待操作How 位待操作是如何实现的代码代码解读基地址映射偏移地址映射例程STM32地址基地址、总线地址、寄存器地址是什么基地址以及偏移地址这是stm32的系统结构图,只需要看一下红线框出来的地方即可从下图可以看到,总线分为 4 大块,每块都有一个起始地址,这个起始地址就是基地址,然后到下一块起始地址的时候就会和前一块

2021-07-31 19:06:25 1839 5

原创 3、GIPO输入(按键配置)

本节通过按键处理led来演示IO输入模式的配置1、根据原理图按键找到对应的引脚2、打开cubemx选择对应的芯片创建工程3、配置系统时钟,打开外部高速时钟,配置时钟频率为72MHz(本项如有不明白请看链接: 点击这里.)4、按键对应的引脚模式配置为输入模式5、这里还要打开led用来做效果演示链接: 点击这里.6、根据原理图可知按键均是低电平触发(高电平触发的引脚这里没有展示,只需要反转后面的配置即可)7、对于低电平触发的按键我们要将IO口配置为上拉模式(对于高电平触发的按键要配置成下

2021-07-30 19:12:38 1517 1

原创 2、stm32 hal 串口收发

1、Cubemx2、stm32Hal库3、同步串口收发4、阻塞式收发stm32串口配置过程1、创建工程,详情请看我的第一篇博文2、配置Sys3、查看原理图找到使用的串口所在的引脚4、配置串口工作方式5、生成工程,见上一篇链接链接:6、生成的usart初始化如图7、接下来就是配置主函数了,配置之前我要先讲解两个函数(1)发送函数(2)接收函数8、我的主函数实现的功能是轮询的进行接收,并且在接受完成后会立即将数据发送出去(1)私人define(2)定义变量及数组(3)轮询部分(while循环)9、运行效

2021-07-27 04:36:27 661 2

原创 1、HAL库配置IO

本节通过点亮led来演示cubemx配置IO输出的过程即模板工程1、首先要建立一个新的工程文件2、对应对应的单片机型号3、此处我用的是stm32f103zet6,通过查看原理图可知led被连接在了PB5口4、这时候返回cubemx中找到对应的PB5口,鼠标左键点击就会弹出如图所示窗口,因为我们要让IO口进行输出,所以我们要配置GPIO_OUTPUT(输出)模式5、这里我们要打开外部高速晶振HSE(本节这里也可以不配置,后面再继续讲解其作用)5、配置系统滴答定时器(同第四步,也可以不配置

2021-07-23 22:05:01 951 1

原创 c++堆区的创建

c++中内存有四个区,分别是代码区,全局区,堆区,栈区。代码区顾名思义就是内存中用来存放代码的区域全局区用来存放全局变量、静态变量、常量、字符串常量、counst修饰的全局变量(全局常量)栈区用来存放局部变量,函数参数等堆区是由开发人员决定的,可以开辟堆区(new)也可以清除堆区(delete)c++中堆区的开辟以及使用new,delete关键字的用法#include <iostream>using namespace std;//1、new的基本语法//在堆中创建一个数据

2021-04-07 13:53:22 1624

原创 模拟高速路灯

利用按键代替雾气可见度led闪烁速度代表雾灯闪烁速度#include "reg52.h" //定义一些寄存器的头文件typedef unsigned int u16; //重定义无符号整型变量为u16;即用u16代替无符号整形typedef unsigned char u8; //重定义无符号字符型变量为u8;即用u8代替无符号字符型sbit redled=P2^0; //定义红色led管脚sbit yellowled=P2^1;

2021-03-28 12:53:45 109

原创 c++通讯录

通讯录管理系统c++学习过程中的一次“晋级赛”,通讯录很大的考验了学生对于c++语法的理解和认识,在指针,实参形参,值传递地址传递和结构体方面的要求较高,对于初学者来说通讯录管理系统是个考验基础能力较好的小程序。通讯录包括7个功能分别是菜单功能*添加联系人*显示联系人*删除联系人*查找联系人*修改联系人*清空联系人*退出通讯录*//// main.cpp// 通讯录//// Created by 龚玉尚 on 2021/3/24.//#include

2021-03-25 14:09:44 488 1

原创 c++利用地址传递获取冒泡数(11)

值传递与地值传递值传递:实参将值传递给形参,运行完子函数之后实参的值不发生改变;地址传递:将实参的地址里面的值传递给形参,运行完子函数之后,实参发生改变;#include <iostream>using namespace std;/* Function action:Bubble sort arr by passing by value and address; Formal parameter:*arr,len; Bubble sort:Move the large numb

2021-03-17 09:23:20 79

原创 c++ 学生成绩统计(10)

用于存放学生成绩的算法将学生成绩输入进系统,算出总分并且打印出来#include <iostream>using namespace std;//字符型数组,用来存放中文数组#include <string>//用来实现打印数据左端或右端对其的头文件#include <iomanip>int main(int argc, const char * argv[]) { //定义一个二维数组 int scores[3][3]; /*=

2021-03-10 21:17:44 2535

原创 c++冒泡数算法(9)

冒泡数算法即把么哥数组的最大数放到数组的最后一位即冒泡本算法利用双层嵌套,外层逐次减一(每次冒泡之后检测的次数减一,内层检测12 23 34 45······)#include <iostream>using namespace std;int main(int argc, const char * argv[]) { //建立随机数组 int arr[9]={2,4,3,1,6,7,9,0,8}; //建立空变量用于存放临时数据 int m=0;

2021-03-10 20:58:14 100

原创 c++五只小猪(8)

寻找数组中5个元素的最大值通过for循环找出数组中五个元素的最大值思路:先创建一个用于存放数据的变量,然后逐个比较数组中的元素和该表量的大小,如果数组中的元素比较大,那么将这个元素放到变量中,逐个检测完后,变量中就是数组的最大值了#include <iostream>using namespace std;int main(int argc, const char * argv[]) { // insert code here... //建立五只小猪数组 int

2021-03-10 20:27:54 109

原创 c++实现数组元素逆置(7)

在c++利用循环嵌套的方法实现 数组元素逆置并且用for循环对其进行打印易错点:在进行数组元素互换时,先将被置换元素放到空变量里面放置元素覆盖。#include <iostream>using namespace std;int main(int argc, const char * argv[]) {\ int arr[5]={100,200,300,400,500}; int m=0,n=0; for(int i=4;i>=0;i--)

2021-03-10 13:40:52 700

原创 c++打印乘法口诀表(6)

利用双层嵌套for循环输出打印乘法口诀表,外层for循环决定行,内层for循环决定列#include <iostream>using namespace std;int main(int argc, const char * argv[]) { for(int i=1;i<10;i++) { for(int j=1;j<=i;j++) { cout<<j<<"*"<<i

2021-03-10 13:25:33 91

原创 c++水仙花数(5)

c++输出水仙花数其语法和c语言中相似,在这里我用do—while循环产生循环#include <iostream>using namespace std;int main(int argc, const char * argv[]) { //a用来表示百位,b用来表示十位,c用来表示个位,num指这个数 int a,b,c,num=100; do{ a=num/100; b=num/10%10; c=num%10;

2021-03-09 22:27:22 136

原创 c++敲桌子题目(4)

敲桌子即从0-100中提取特殊数字(含有7或者是7的倍数)#include <iostream>using namespace std;int main() { int i=0; //循环产生100个数并对其进行处理 for(i=0;i<=100;i++) { if(i/10==7||i%10==7||i%7==0) cout<<"敲桌子"<<endl; else

2021-03-09 22:21:01 111

原创 C++随机数猜测(3)

在代码产生随机数,让用户猜测,可以利用这种思想设置成一个小游戏通过调用时间的头文件产生一个随机数供用户猜测,通过while循环使用户多次输入答案,通过if else语句对不同情况的答案进行处理,并通过打印语句反馈给用户#include <iostream>using namespace std;//调用时间的头文件#include <ctime>int main(int argc, const char * argv[]) { //利用时间取真正的随机数

2021-02-25 16:15:20 131

原创 C++经典题目 三只小猪(2)

三只小猪比较体重所谓的三只小猪比较体重呢其实就是在程序中定义三个变量,利用if else语句来比较三个变量的大小,我这个程序是找的最大值整体思路先将a与b做比较,较大的数再与c做比较一,若a>b 比较a和c1、a>c a最大2、a=c a,c最大3、a<c c最大二,若a=b 比较a和c1、a>c a,b最大2、a=c a,b,c最大3、a<c c最大三,若a<b 比较b和c1、b>c b最大2、b=c b,c最大

2021-02-25 16:02:14 380

原创 打印Helloworld(1)

//包含输入输出的头文件#include using namespace std;int main (){//打印Helloworldcout<<“Hello,world”<<endl;return 0;}

2021-02-25 15:44:18 111

原创 子网划分

# -*- coding: UTF-8 -*-import sysip = input("输入网络号")mask = input("输入网络位")need = input("输入子网数量")'''按字节切割网络号并转换整型最后验证'''temp2 = ip.split('.')if len(temp2) != 4: print("网络号格式不合法!需为a.b.c.d格式!") sys.exit()ip10 = [0]*4

2021-01-11 14:10:29 72

原创 简易记分器

数码管前4位用来计两个队的分数,后四位用来倒计时#include"reg52.h"typedef unsigned int u16;typedef unsigned char u8;#define time P0sbit k1=P3^1;sbit k2=P3^0;sbit k3=P3^2;sbit k4=P3^3;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f

2020-12-26 20:26:36 238

原创 出租车打表

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit k1=P3^1;sbit k2=P3^2;sbit redled=P2^1;sbit greenled=P2^5;u8 code smgduan[17]={0x3f,0x0

2020-12-26 20:24:20 182

原创 51示波器输出方波

首先应该先初始化,打开定时器并确定其工作方式void init(){TMOD = 0x01; //确定定时器的工作方式TH0 = 0xff; //给累加器赋初值TL0 = 0xf7; //给累加器赋初值ET0 = 1; //允许定时器0中断TR0 = 1; //打开定时器中断EA = 1; //打开总中断}接下来就是确定,当发生中断的时候需要做什么,这里我用的是每溢出一次,让P0口的状态改变一次,从而输出方波void timer0() in

2020-12-24 20:25:40 4189 1

原创 51基本流水灯

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件typedef unsigned int u16; //对数据类型进行声明定义(重定义)typedef unsigned char u8;#define led P2 //将P2口定义为led 后面就可以使用led代替P2口/*************************************

2020-12-24 18:59:59 180 1

原创 DS18B20 1602

main.c/******************************************************************************** 此代码仅供参考,只提供学习作用,禁止在未经过作者授权下用做其他途径如有需要请联系作者qq256379446*******************************************************************************/#include "reg52.h" //此文件中定

2020-12-17 13:52:44 144

原创 DS18B20 1602 51单片机

51单片机实现DS18B20采集温度,并且用1602显示出来这里仅提供主函数部分,如果需要源代码和仿真图,请联系作者qq256379446#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器#include "temp.h"#include "lcd.h" typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit k1=P3^1;sbit k2=P3^0;sbit

2020-12-17 13:49:20 227

原创 基于51单片机的计算器

利用12864的成像,实现一些计算机的功能加减乘除,多位数计算,求余,阶乘,次方如果需要字模软件请自提链接:https://pan.baidu.com/s/1Lg184q04U9RQiGUHzJnl_w提取码:qwer12864头文件#ifndef _LCD12864_H#define _LCD12864_H#include <reg52.h>#include <intrins.h>#define uint8 unsigned char#define uint1

2020-11-28 16:43:59 1050

原创 51交通灯系统

基于51单片机实现基本交通灯系统通过外部中断0、1实现对交通灯状态的紧急控制倒计时用1602显示分别为SNTimeEWTimeWaitlcd头文件#ifndef __LCD_H_#define __LCD_H_/**********************************包含头文件**********************************/#include<reg52.h>#include"intrins.h"//---重定义关键词---//#

2020-11-28 16:36:25 511

原创 lcd1602显示接收红外信号

通过遥控改变lcd1602上显示的数值lcd1602头文件#ifndef __LCD_H_#define __LCD_H_/**********************************包含头文件**********************************/#include<reg52.h>#include"intrins.h"//---重定义关键词---//#ifndef uchar#define uchar unsigned char#endif

2020-11-28 16:29:46 457

原创 定时器和外部中断同时控制led

定时器控制led50ms秒变化一次中断令led全灭#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit K1=P3^2;void delay(int i){ while(i--);}void init(){ TMOD = 0x01; TH0 = 0x3c; TL0 = 0xb0; ET0 = 1; TR0 = 1; EX0=1; IT0=

2020-11-20 11:14:59 1926

原创 栈相对寻址(汇编)

1、从标准输入(0xFC15/charIn)读取三个字符,并依次保存到栈中。2、从标准输出(0xFC16/charOut)逆序打印之前保存在栈中的三个字符。 LDBA 0xFC15,d STBA -1,s LDBA 0xFC15,d STBA -2,s LDBA 0xFC15,d STBA -3,s SUBSP 3,i LDBA 0,s

2020-11-15 21:00:39 111

原创 按键控制流水灯的停止和启动

外部中断实现流水灯的启动和停止如需要仿真请联系作者 #include "reg52.h" //定义一些特殊寄存器 #include<intrins.h> //调用led移动库(_CROL_ _CROR_)typedef unsigned int u16; //u16代替unsigned inttypedef unsigned char u8; //u8代替unsigned char#define led P2 //宏定义P2口 sb

2020-11-13 18:54:09 5990 4

原创 超声波测距,1602显示距离

利用HC—SR04实现超声波测距并且通过1602显示距离主函数部分#include "reg52.h" #include "lcd.h"#include "intrins.h"typedef unsigned int u16; typedef unsigned char u8;typedef unsigned long u32;sbit Echo = P2^0;sbit Trig = P2^1;u8 di[]="Distance";u8 code ASCII[13] =

2020-11-13 17:58:42 1874

原创 中断0和1同时使用

通过外部中断0控制蜂鸣器,外部中断1控制电机 #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8;sbit led= P2^0;sbit k1=P3^1;sbit k2=P3^0;sbit k3=P3^2;sbit k4=P3^3;sbit beep=P1^5;sbit md=P1^0;u8 n=1; void delay(u16 i) { while(i--); }v

2020-11-12 09:40:55 1424

原创 多位数码管动态显示

8位数码管依次显示,后一位显示前一位不变通过while switch 实现数码管多位动态显示如果需要proteus仿真请联系作者#include<reg52.h> //定义一些特殊功能寄存器#include<intrins.h> //需要用到流水函数typedef unsigned int uint;typedef unsigned char uchar;#define LED P0 //P0口宏定义sbit tube2=P2^2; sbit tu

2020-11-11 15:46:47 2324

原创 51寻迹小车

集成了红外通信,超声波停车,寻迹,斑马线,迷宫的51单片机智能小车#include"reg51.h"#include "intrins.h"typedef unsigned int u16;typedef unsigned char u8; typedef unsigned long u32; sbit QIN1=P1^0;// P1.0输出pwmsbit QIN2=P1^1;// P1.1输出pwmsbit QIN3=P1^2;// P1.2输出pwmsbit QIN4=P

2020-11-11 15:32:38 1693

原创 按键控制流水灯转向

实现按键控制流水灯的启动和转向 #include "reg52.h" //定义一些特殊寄存器 #include<intrins.h> //调用led移动库(_CROL_ _CROR_)typedef unsigned int u16; //u16代替unsigned inttypedef unsigned char u8; //u8代替unsigned char#define led P2 //宏定义P2口 sbit k1=P3^1;

2020-11-11 13:42:32 5431

原创 简易交通灯系统

通过51单片机实现简易交通灯系统紧急情况可以按下按键让所有的信号灯全变为红色雨天雾天可以按下按键让所有的信号灯全变为黄色按下复位键即可重新开始工作利用定时器实现信号灯的倒计时,外部中断实现外部控制#define uchar unsigned char#define uint unsigned int#include <reg52.h>/*****定义控制位**********************/sbit EW_LED2=P2^3; //EW_LED2控制位sbit EW

2020-11-11 13:18:47 527

qwertyuiqwertyui

阿斯顿法国红酒

2023-05-04

jiaoben-python-224373.pdf

jiaoben-python-224373.pdf

2021-11-05

HC—05蓝牙时序BT08B

调试之后完美运行,即插即用,内含蓝牙时序,STM32F103通用

2021-09-13

stm32HAL库lcd1602仿真

在仿真中用stm32芯片运行出来lcd1602已经调试好,可以完美显示,如果有需要其他芯片运行代码或者仿真,可以联系作者

2021-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除