自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 51单片机P0端口的驱动能力、上拉电阻、限流电阻、下拉电阻

认识上拉电阻R1 和限流电阻R2、下拉电阻R3抛出一个小问题: 上图的LED1、LED2 能点亮吗???一、不接上拉电阻时实验测试:当51单片机只给供电的情况下,实测P0 的电压为1.91V ,电流大小0.23MA。证明:如果单片机P0口不接上拉电阻的话为高阻态。 注:高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测...

2021-10-23 20:12:15 12302 12

原创 51单片机之用定时器写呼吸灯(全站解释最细节)

基础知识介绍:PWM:一般指脉冲宽度调制。 个人理解:在一个周期内,高电平和低电平持续时间所占总时间的百分比,即占空比,即PWM。 呼吸:一呼一吸即为呼吸。 要实现呼吸的效果,就要在呼气和吸气的这俩个小周期内实现pwm的动态变化,从视觉上看到LED由亮到灭,由灭到亮的过程。 个人理解:在一个呼气或者吸气的过程中,pwm改变速度足够快的情况下,其实对LED管脚电压的积分原理。实际就是求高电平或者低电平波形面积问题。...

2021-10-13 21:11:15 20075 13

原创 51定时器点灯之花样流水(1)

效果描述:初始状态点亮P0端口LED4,LED5两颗LED灯,LED实现从中间流向两边,然后再由两边流回初始状态的效果。LED原理图(效果图):项目采用方案:数组控制8位LED灯,定时器间隔20ms 刷新一次LED状态。代码分享:mian.c#include"reg52.h"#include"TIMERINIT.h"#include"intrins.h"#define uint unsigned int#define uchar unsigned char/****配..

2021-10-13 19:23:03 507 2

原创 按键控制不同频率灯的闪烁

题目要求:三个按键:一个menu键,一个加按键,一个减按键,控制LED的闪烁频率。主函数处理(main.c)#include"reg52.h"#include"TIMERINIT.h"#include"TIMEchange.h"/*****led的配置*****/sbit led1=P1^3;sbit led2=P1^7;void main(void){ T0Init(10); while(1) { ; }}void T0Int(void) i

2021-10-10 15:59:36 2559

原创 删除字符数组中的 * 问题

第一种:题目:删除前部的 * 号思路:程序代码:void fun( char *a ,int n){ int i=0; int k=0; char *p,*t; p=t=a; while(*t=='*') //用 k 来统计前部 * 的个数 { k++; t++; } if(k>n) { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]='\0'; }}...

2021-10-10 15:29:32 243

原创 数组0号元素丢失问题

同学写的代码:#include <stdio.h>int main(){ int i,j,t,a[11]; printf("请输入10个数:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); //从键盘中输入要排序的10个数字 for(i=1;i<=9;i++) for (j=i+1;j<=10;j++) i

2021-10-03 10:43:19 306

原创 51单片机在无源蜂鸣器上循环演奏低音“DO、RE、MI、FA、SO、LA、SI”这7个音调。

题目:在无源蜂鸣器上循环演奏低音“DO、RE、MI、FA、SO、LA、SI”这7个音调。音调表:编程思路:#include <reg52.h>#include "TimeInit.h"#define Fosc (11059200L)unsigned char i=0£»unsigned char cnt=0; //char Tone[]={'D','R','M','F','S','L','x'};code unsigned char FreqH[]={0xF.

2021-09-29 21:45:33 13045 4

原创 二维数组与指针

详细解释在这里:(我只分享,摘录我所欠缺的知识)C语言二维数组指针(指向二维数组的指针)详解https://blog.csdn.net/weixin_43323830/article/details/106386859?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163231513016780264050861%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D.

2021-09-22 21:07:27 89

原创 将字符串 转化成 数字

long fun(char *p){ int i,len; long x=0; len =strlen(p); while(*p!=0) { x=*p-'0'+10*x; p++; } return x;}

2021-09-22 17:58:00 228

原创 用链表存放数据,计算平均值

代码分享:double fun(STREC *h){ int i; double sum=0.0; STREC *p; //定义一个空的结构体 p=h->next; while(p!=NULL) { sum+=p->s; p=p->next; } return sum/N;}

2021-09-22 17:00:53 473

原创 求一维数组中的元素的最大值和他的下标,通过指针传给主函数

代码与思路分享:// 函数功能:求一维数组中的元素的最大值和他的下标,通过指针传给主函数// 入口参数:int a[] 待查找的目标数组// int n 数组中的个数// int *MAX 数组中的最大值// int *d 数组的下标// 返回值:无void fun(int a[],int n, int *MAX,int *d){ int i=1; *MAX=a[0]; *d=0; for(i;i&

2021-09-22 16:36:57 2009 3

原创 C语言中求素数问题

写一个例程:函数fun,思路一://入口参数:lim 界限,aa[MAX] 存放素数的数组int fun(int lim, int aa[MAX]){ int i=0; int j=0; int k=0; for(i=2;i<=lim;i++) //遍历小于等于lim的数 { for(j=2;j<i;j++) //遍历素数 if(i%j==0) //有能被整除的数,就跳出循环 break; if(j==i) //判断有没

2021-09-19 20:57:29 174

原创 定义一个字符指针去删除数组中目标元素

功能函数分享:void fun( char s[],int c){ int i=0; char *p; //定义一个指针 p=s; //指向s while(*p) /*判断是否为结束符*/ { if(*p!=c) /*判断字符串中字符是否与指定字符相同*/ { s[i]=*p; /*不同将重新组合字符串,*/ i++; } p++; /*相同则处理下一

2021-09-18 21:39:11 744

原创 从结构体中寻找满足范围数值的数

结构体数组中包括:学生学号num和成绩stypedef struct{ char num[10]; int s;} STREC;寻找结构体中成绩满足要求的元素函数int fun( STREC *a,STREC *b,int l, int h ){ int i=0; int j=0; int temp=a[0].s; for(i;i<N;i++) { if((a[i].s>=l) && (a[i].s<=h)) b

2021-09-17 17:40:54 178

原创 从结构体数组中寻找最小值问题

结构体数组中包括:学生学号和成绩typedef struct{ char num[10]; int s;} STREC;寻找结构体中成绩最小的元素函数int fun( STREC *a, STREC *b ){ int i=0; int j=0; int min = a[0].s; for(i;i<N;i++) { if(min>a[i].s) min = a[i].s; } for(i=0;i<N;i++) { if

2021-09-17 16:48:30 476

原创 找出二维数组每列中最大元素,并依次放入pp数组中

代码:void fun(int tt[M][N],int pp[N]){ int i=0;int j=0; int temp; for(i=0;i<N;i++)//遍历列 列下标为i { temp=tt[0][j]; for(j=0;j<M;j++)//遍历行 行下标为j { if(temp<tt[j][i]) { temp=tt[j][i]; } pp[i]=temp; } }}运行结果:...

2021-09-09 12:16:08 394

原创 选择排序__从小到大排序无序数组

//用C语言 编写程序:将[3,5,12,8,20,10,17,4,2,11]这几个数组进行从小到大排序#include <stdio.h> int main (){ int i=0; int j=0; int k; int x; int a[10]={3,5,12,8,20,10,17,4,2,11}; for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) { if(a[j]<a[k]) {.

2021-09-07 19:49:51 869

原创 从结构体中查询是否有已存在的数据

题目要求:学生成绩由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)strcmp()函数 :字符串比较函数//头文件: #include <string.h>//入口参数: s1,s2 指向字符串的指针//function: 比较字符串s1和s2。//返回值: 如果..

2021-09-07 10:34:02 1081

原创 函数fun功能是:计算出x所指数组中n个幂数之和并返回

结构体数组的相关知识可以参考 :结构体数组#include <stdio.h>#pragma warning (disable:4996)#define N 5//结构体数组struct mpow{ double a; int t;};//结构体struct mpow两个成员的意义是: a为幂的底,t为幂的指数。double fun(struct mpow *x,int n){ int i,j; double sum=0.0; for(i=0;i&...

2021-09-05 16:48:44 1533 5

原创 初始单片机(以51单片机谈谈单片机的位数,单片机的概念)

1.1单片机:单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。简而言之:单片机就是一块微型计算机。

2021-09-05 12:01:16 1011

原创 数组中元素的移动

题目要求:代码 :void fun(int *w, int p, int n){ //数组w ,数组下标,数组个数 int i=1; int m; char ch; for(t=0;t<p+1;t++)//移动p+1个字符 { ch=w[0]; //把数组的零号元素取出来 for(i=1;i<n;i++) { w[i-1] = w[i]; //将后一个数赋值给前一个数 } w[n-1]=ch; //

2021-09-03 18:21:12 622

原创 关于对return语句的理解

概念:函数是C语言的基本构件,一个C程序可以由一个主函数和若干个子程序函数构成,由主函数调用其它子程序函数,其他子程序函数也可以互相调用。通常希望通过函数调用使主函数能得到一个确定的值,这就是函数的返回值。注意:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。return语句的意义:在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方

2021-09-02 23:55:46 488

原创 函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。

程序代码:void fun ( char *ss ){ int i=0; for(i;ss[i];i++) { if( (i%2)==1 && ( ss[i] >= 'a' ) && ( ss[i] <= 'z' )) ss[i]=ss[i]-32; }}结果显示:

2021-09-02 19:31:48 5324

转载 编写函数 fun 功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)

三种思路分析:int fun(char *t){ int flag=1,i; char before_ch=t[0]; //将数组t中第一个元素,存起来方便与下一个元素作比较 char current_ch; //定义一个字符变量 int len=strlen(t); //求字符串t的长度 if(len<2) { return 0; } for(i=1;t[i]!='\0';i++) .

2021-08-31 00:11:23 1186 1

原创 编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+ 1到最后的字符移到字符串的前部。

void fun (char *w,int m){ int i,j; char t; for(i=1;i<=m;i++) /*进行m次的循环左移*/ { t=w[0]; //将数组w的第一个字母暂存到t变量中 for(j=1;w[j]!='\0';j++) /*从第2.

2021-08-30 23:25:25 4774

原创 指针 *p

指针:一种特殊的变量。指针保存的值是内存地址,那么我们就用指针来通过内存地址访问程序元素。访问变量的方式有俩种:1.通过变量名直接访问2.通过内存地址访问。内存地址:本质:无符号整数(unsigned int )(32位系统可访问的最大字节为4 , 64位系统可访问的最大字节为8 )通过内存地址+长度确定一个变量中保存的值。(先访问低字节,再访问高字节)书写命名规则:type * Pointer;%p :格式控制符“%p”中的p是pointer(指针)的缩写...

2021-08-20 19:16:52 488

原创 利用宏定义一个函数

代码#include<stdio.h>#define SWAP(a,b) {int t=a;a=b;b=t;} //宏定义一个swap函数 int main(){ int x = 1; int y = 2; printf("x=%d,y=%d \n", x,y); SWAP(x,y); printf("x=%d,y=%d \n", x,y); printf("\n"); return 0;}运行结果:函数中 形参的值只会..

2021-08-18 16:26:37 2016

原创 递归数列: 累加数列 斐波拉契数列

累加函数:int sum(int n){ int ret = 0; if( n == 1 ) ret = 1; else ret = n + sum(n-1); return ret;}斐波拉契数列int fac(int n){ int ret = 0; if( n == 1 ) ret = 1; else if( n == 2 ) ret = 1; e

2021-08-18 12:18:26 139

原创 将字符串转换成整形数

代码:#include <stdio.h>//遍历字符串中的字符int str2int(char str[]){ int ret = 0; int sign = 0; int i = 0; if( getNumber(str[0]) != -1 ) { sign = 1; i = 0; } else if( str[0] == '+' ) { sign = 1;

2021-08-18 11:42:55 324

原创 静态局部变量static

代码:#include <stdio.h>int m;int func(int x){ static int s_var; // 全局数据区中的变量,默认初始化为 0,并且,只做一次初始化 s_var += x; return s_var;}int main(){ int i = 0; for(i=1; i<=5; i++) { printf("func(%d) = %d\n", i, func

2021-08-16 19:52:26 71

原创 实践编程 区分 局部变量和全局变量

实践编程 区分 局部变量和全局变量在不同作用域的体现观察局部变量的作用范围,何时生效,何时失效???答:局部变量的值只作用于所定义他的这个大括号内,跳出方括号将失去他所被定义的值全局变量不会受局部的改变而导致全局变量的值发生改变。#include <stdio.h>int var = 1; //全局变量 void func(){ printf("var = %d\n", var);}int main(){ int var = 2; ...

2021-08-16 19:20:43 179

原创 对数组中的元素进行大小排序

选择数组 a[] 中 b 到 e 的最小元素/*************************@function: 选择数组 a[] 中 b 到 e 的最小元素 @return: 最小元素在数组中的下标 @函数类型 int ; @入口参数 数组a[] 数组中的b,到 e,@author:奋青 *************************/int Min (int a[],int b,int e){ int r=b; int i=0; for(i=b;..

2021-08-16 15:42:55 1553

原创 去除字符数组元素中的某个 ‘ 字符 ‘

代码:去除'\0’ 0等价于'\0' 大家可以试一下效果一样 //去除字符数组元素中的某个 '字符' char m[]="abcde\0fg\0" ; int size = sizeof(m); int i=0; int j=0; while( i<size ) { if( m[i] == 0 ) //去除\0 { for(j=i+1;j<size;j++) //迁移后面的元素 { m[j-1]=m[j]; } ...

2021-08-15 19:21:42 304

原创 从键盘获取矩阵 然后 转置矩阵

从键盘中获取一个二维数组见上一篇博客https://blog.csdn.net/qq_46136319/article/details/119714610在此基础上对行列变换 ,if i<j 交换位置 //转置 printf("change \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i<j) { int t=arr[i][j]; arr[i][j]=arr[j][i]; ...

2021-08-15 15:44:12 192

原创 按矩阵形式打印数组

代码: // 依次输入一个二维数组,然后按矩阵形式打印 int arr[3][3]; int i=0; int j=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("input arr[%d][%d] = ",i,j); scanf("%d",&arr[i][j]); } } printf("Matrix:\n"); for(i=0;i<3;i++) { for(j=0;j&l

2021-08-15 15:36:34 553

原创 查询数组中元素出现的次数

方法一: int arr[]={0,0,2,4,4,5,6,7}; int len = sizeof(arr)/sizeof(arr[0]); //求数组中变量的个数 int i=0; int j=0; int n=0; for(i=0;i<len;i++) { n = 0; for(j=0;j<len;j++) { if( i==arr[j] ) n++; } printf("%d : %d \n",i,n); } 方.

2021-08-15 15:32:56 910

原创 数组内存的大小

sum [ ] 数组变量定义见上一篇博客 int s = sizeof(sum); printf("s = %d",s);运行结果:(sum数组大小)分析:int 占 4字节,101个 int 型变量,所以sum数组内存大小为404个字节。

2021-08-12 17:12:36 1474

原创 i++ 和 ++i 的区别

i++ 和 ++iint i = 0;i++;printf("%d",i);int i = 0;++i;printf("%d",i);结果均为:但是在你参与循环并且判断的时候就要体现是先自加还是现参与运算。看for循环的值到底为什么,每循环一次值的变化/* 看for循环的值到底为什么,每循环一次值得变化 int i; for(i=1;i<3;i++) printf("i = %d \n",i);*/结果:...

2021-08-12 15:44:26 286

原创 常量和变量的区别

// 常量 不可改变 //1.字面量(直接表示值含义的符号) eg: 字符,字符串//2.宏常量(符号化的字面量) eg :#define temp 5//3.枚举常量 eg:(只能是int型) enum { man = 1, woman = 0, }; ...

2021-08-12 15:21:18 180

原创 C语言__如何给数组赋值__累加法制作一个数组字典

先通过累加法将结果存到数组中,然后要哪个结果调用哪个结果。减少了计算机每次计算的运算过程。// 累加问题,将计算得到的值存到数组中 int sum[101]; int n=0; int i=0; for(n=0;n<101;n++) { sum[n]=0; for(i=0;i<=n;i++) { sum[n]+=i; } printf("sum[ %d ] = %d\n",n,sum[n]); } printf("input n :"); s.

2021-08-12 15:13:48 499 1

2021竞赛题目(本科).zip

2021全国大学生电子设计竞赛试题全集

2021-11-04

空空如也

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

TA关注的人

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