自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (2)
  • 收藏
  • 关注

原创 点阵屏显示图形

输入的第一个数据表示列,用来决定哪一列的阴极连接,接着通过_74HC595_WriteByte(Data);这个函数的作用是消除该列数据对下一列led亮灭所产生的影响。在这个函数中接收到的数据是一个十六进制的数,将其转换为二进制数后每一位上的0/1就对应一列8个led的亮灭。点阵屏事实上就是八个led模块的组合,通过增加led的数量来实现更复杂的功能。将点阵屏与数码管的显示原理进行对比能更好的理解点阵屏的显示原理。了解了点阵屏·的显示原理那接下来就开始进行功能代码的编程。主函数的作用就是进行数据的输入。

2022-08-22 17:39:27 726 1

原创 串口通信(下)

所以要加入if判断是否为接收中断,而P2=~SBUF就是在发送数据的同时控制led的亮灭,接着使用UART_SendByte(SBUF)函数将接收到的数据发送回电脑。当电脑附送数据时执行中断函数,在中断函数中来向单片机发送数据,这样才能避免电脑一直向单片机发送数据。由于完整过程中会有两次中断,一次发送中断,一次接收中断,而发送数据实在接收中断实现的。下面是规定的单片机的中断函数,不同中断函数都有各自的作用,要正确使用相应的中断函数。中断函数需要放在主函数中发挥作用,主函数的代码如下。...

2022-08-17 21:41:57 268

原创 力扣题解8/17

接着道题需要运用栈的知识,建立一个栈来存储左括号,在当遍历到右括号时再将栈中的·左括号拿出来匹配,如果不匹配则返回false,当遍历到最后一个括号仍能匹配且栈中的左括号全部出栈时则表明这串括号符合要求,返回true;这道题就是对链表知识的运用,建立一个新的链表,对比l1和l2的值,那个小就优先加入到新链表中,当其中一个链表到末尾后直接将另一个链表剩下的部分加到新链表后面,知道l1和l2都到末尾后输出新链表。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。,判断字符串是否有效。.

2022-08-17 21:02:50 218

原创 力扣题解8/10

在这种情况下可以很清晰的看出当两侧的高度其中一侧足够低时,那么此时以这个高度和其他高度组合的情况下最大面积在最远处,而中间的情况是不必要计算的。但是使用暴力法会导致超时,因为其中包含着一些不必要的计算拖慢了代码执行的速度,所以我们要对其进行优化,那么如何减少不必要的计算呢?图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。这样,计算一类情况后将高度低的指针向中心移动就能在减少计算量的情况下得到最大面积。返回容器可以储存的最大水量。.

2022-08-10 20:47:16 313

原创 51串口通信(上)

这一过程其实还是由电脑向单片机发送数据后再由单片机传回电脑,所以运行的效果是电脑接收到单片机返回的从00开始增大的二进制数。51可以实现单片机与电脑之间的通信,即通过两者之间的数据传输来控制单片机实现一些功能。下面是串口的相关知识,具体内容可以观看B站江科协自动化51单片机教学视频来了解。这里我们需要写两个函数来实现串口的初始化以及电脑接收单片机发送的数据的功能。接收区用来接收单片机向电脑发送的数据,发送区用来电脑向单片机发送数据。在stc中已经有了串口助手这个小工具来帮助我们实现串口通信。...

2022-08-07 21:16:44 488

原创 力扣题解8/3

首先使用一个外部循环用来结束查找,然后再用一个内部循环来判断字符串从left到right是否有重复字符,如果有那么就讲使left前进,将重复字符去除,同时还要进行对比以此来保留最大无重复字符串的值,直到right进行到末尾。本题采用滑动窗口法,即设两个变量right和left来指向一段字符的两端作为一个窗口,那么字符的长度就表示为。,请你找出其中不含有重复字符的。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 1。,所以其长度为 3。...

2022-08-03 22:13:36 54

原创 按键控制流水灯(计时器)

定时器最基本的功能就是计时,本次也是基于这个功能来实现流水灯,当然不同型号的单片机其内部计时器也是有些许差异的,基于本人的单片机型号的定时器配置如下。学会使用定时器后进行流水灯的编程就十分容易了,在模块化编程中加入定时器模块并对定时器进行配置,然后再主函数中加入定时器中断函数。再使用定时器时我们首先要通过编程来对定时器的模式来进行配置,在STC中也为我们提供了十分方便的配置定时器模式的方法。下面是定时器内部结构框图,从中可以很直观的看出定时器的工作原理。今天我们来了解并学会使用单片机的内部定时器。...

2022-07-31 17:18:33 1739

原创 力扣题解7.27

62. 不同路径 64. 最小路径和

2022-07-27 19:38:45 366 1

原创 矩阵键盘

这次我们来了解矩阵键盘 可以看到矩阵键盘和独立键盘是大同小异的,矩阵键盘就是由四个独立键盘组成的4*4的矩阵,才用共阴极共阳极的工作原理。所以控制其工作的代码也与独立键盘类似再结合前面所介绍的lcd1602模块可以实现按键控制显示对应的数字以及键盘密码锁的功能按键显示数字的主程序使用了模块化编程,在引入了头文件后可以直接使用其相应的功能函数再按下第6号按键时在lcd1602上显示06 实现矩阵键盘密码锁功能的代码设置从1号键到10号键代表数字1-0,11号键表示确认,12号为清除。密码初始

2022-07-27 17:55:48 773

原创 lcd1602调试

lcd1602调试

2022-07-22 22:06:00 667

原创 力扣题解

力扣题解 两数之和 两数相加

2022-07-18 17:45:23 325

原创 数码管动态显示及模块化编程

数码管动态显示及模块化编程

2022-07-13 22:29:39 1512

原创 题解——汉明距离

题解——汉明距离

2022-07-10 10:26:45 436

原创 51数码管显示

51数码管显示

2022-07-10 09:49:44 318

原创 独立按键控制led进阶(1)

独立按键控制led进阶(1)

2022-06-28 20:37:27 245

原创 独立按键控制led

按键控制led

2022-06-27 21:39:31 789

原创 编程测试6.21

测试四 五

2022-06-21 17:55:36 598

原创 单片机之流水灯

单片机之流水灯

2022-06-19 22:13:57 2081

原创 爬楼梯C语言

爬楼梯

2022-06-13 20:45:01 3107

原创 led闪烁

51单片机------led闪烁

2022-06-13 20:19:54 217

原创 单片机第一步

点亮一个led

2022-06-07 18:44:51 62

原创 洛谷一P1097 [NOIP2007 提高组] 统计数字

洛谷一练

2022-06-07 16:53:16 603

原创 测试第二题

题目描述楼梯有NN阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入格式一个数字,楼梯数。输出格式输出走的方式总数。输入输出样例输入 #1复制4输出 #1复制5说明/提示对于60\%60%的数据,N \leq 50N≤50; 对于100\%100%的数据,1 \le N \leq 50001≤N≤5000。 #include <stdio.h>int a[10000]={0};//a...

2022-04-15 22:28:42 76

原创 测试题第三个

试计算在区间11到nn的所有整数中,数字xx(0\le x\le90≤x≤9)共出现了多少次?例如,在11到1111中,即在1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11中,数字11出现了44次。输入格式22个整数n,xn,x,之间用一个空格隔开。输出格式11个整数,表示xx出现的次数。输入输出样例输入 #1复制11 1输出 #1复制4#include<stdio.h&g...

2022-04-14 22:33:39 190

原创 测试第一题

题目描述一般的手机的键盘是这样的:要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。输入格式一行句子,只包含英文小写字母和空格,且不超过 200 个字符。输出格式一行一个整数,表示按键盘的总次数。输入输出样例输入 #1复制i have a dream输出 #1复制..

2022-04-13 22:26:21 380

原创 c语言编程练习

输出杨辉三角#include<stdio.h>#define N 11int main(){ int i,j,y[N][N]; for(i=1;i<N;i++) { y[i][1]=y[i][i]=1; for(j=2;j<=i-1;j++) y[i][j]=y[i-1][j]+y[i-1][j-1]; } for(i=1;i<N;i++) { for(j=1;j<=i;j++) printf("%4d",y[i][j]);

2022-04-10 22:13:20 780

原创 c语言编程练习

数字排序#include<stdio.h> int main(){ int i,j,t,a[10]; printf("请输入十个数:"); for(j=0;j<10;j++) scanf("%d",&a[j]); printf("\n"); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t;} printf("排序之后:"

2022-04-09 22:59:41 637

原创 c语言编程练习

输出斐波那契数列#include<stdio.h>int main(){ int f[21],i; f[1]=1; f[2]=1; for(i=3;i<21;i++) f[i]=f[i-1]+f[i-2]; for(i=1;i<21;i++) { printf("%-8d",f[i]); if(i%4==0) printf("\n"); } } 运行结果1 1 2 35

2022-04-08 23:24:05 503

原创 c语言编程练习

练习使用数组#include<stdio.h>int main (){ int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int month; for(month=1;month<=12;month++) printf("month %d has %d days.\n",month,days[12]); } 运行效果month 1 has 0 days.month 2 has 0 days.month

2022-04-07 22:30:39 218

原创 c语言编程练习

输入业绩求工资#include<stdio.h>int main(){ int x; float y; scanf("%d",&x); if(x>10000) { if(x>20000) { if(x>50000) { if(x>100000) y=1000+10000*0.05+30000*0.06+50000*0.07+(x-100000)*0.08; else y=1000+1000

2022-04-06 22:15:21 242

原创 c语言编程练习

天数转换#include<stdio.h>int main(){ int x,y,z; scanf("%d",&x); y=x/7; z=x%7; printf("%d days are %d weeks, %d days.",x,y,z); } 输入999999 days are 14 weeks, 1 days.----------------------阶梯打印#include<stdio.h>int main(){

2022-04-05 22:01:54 208

原创 c语言编程练习

判断奇偶#include<stdio.h>int main(){ int x; scanf("%d",&x); if(x%2==0) printf("%d是偶数",x); else printf("%d是奇数",x); }输入666666666是偶数------------------输入999999999是奇数-------------阶梯打印#include<stdio.h>int main(){ int

2022-04-04 23:49:06 381

原创 c语言编程练习

读取输入字符的个数#include<stdio.h>int main(){ int x,y,z; x=0;y=0;z=0; char ch; do { scanf("%c",&ch); if(ch==' ') x=x+1; else if(ch=='\n') y=y+1; else z=z+1; }while(ch!='#'); printf("读取的空格数为%d,换行符数为%d,其他字符数为%d",x,y,z); } 运行

2022-04-03 22:21:26 239

原创 c语言编程练习

利用循环结构求10——20的正分解因数#include<stdio.h>int main(){ int i,n,m; for(m=10;m<=20;m++) { n=m,i=2; printf("%d=",n); do { if(n%i==0) { printf("%d*",i); n=n/i; } else i++; }while(n!=i); printf("%d\n",n); } return

2022-04-03 00:07:45 57

原创 c语言编程练习

使用for循环计算阶乘之和#include<stdio.h >int main(){ int i,j; double factorial,s=0; for(i=0;i<=10;i++) { factorial=1; for(j=1;j<=i;j++) factorial=factorial*j; s=s+factorial; } printf("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=%.0f",s);

2022-04-02 00:01:05 226

原创 c语言编程练习

使用switch结构#include<stdio.h>int main(){ int x; scanf("%d",&x); switch((x-1)/3) { case 0: printf("%d是第一季度",x); break; case 1: printf("%d是第二季度",x); break; case 2: printf("%d是第三季度",x); break; case 3: printf("%d是第四季度",

2022-03-31 23:38:27 598

原创 c语言编程练习

练习使用多重分支结构#include<stdio.h>int main(){ int x,y; scanf("%d",&x); if(x>0) y=x*x-x; else if(x=0) y=1; else y=3*x+969; printf("%d",y); }输入58583306------------输入001输入-66-66771--------------...

2022-03-30 23:20:03 620

原创 c语言编程训练

引入for循环对昨天的程序进行改进实现对多个大小写字母的改变#include<stdio.h>int main(){ int i; char ch; for(i=1;i<=5;i++) { scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else ch=ch+32; printf("%c",ch); }}输入wbgGIwbgGI.

2022-03-29 23:22:06 477

原创 C语言程序练习

使用if—else结构实现字母大小写转化#include<stdio.h>int main(){ char ch; scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else ch=ch+32; printf("%c",ch); }输入wwW-------输入YYy-------...

2022-03-28 22:50:02 538

原创 c语言编程训练

替换输入字母,非字母不变#include<stdio.h>#include<ctype.h>int main(){ char ch; while((ch=getchar()) !='\n') { if(isalpha(ch)) putchar(ch+1); else putchar(ch); } putchar(ch); return 0; } 输入my is manmy is man,nime is wang zhi y

2022-03-27 21:18:04 778

VID_20220628_185730.mp4

VID_20220628_185730.mp4

2022-06-28

VID_20220628_185659.mp4

VID_20220628_185659.mp4

2022-06-28

空空如也

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

TA关注的人

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