- 博客(19)
- 收藏
- 关注
原创 让蜂鸣器报警并退出
单片机不能通过引脚直接驱动蜂鸣器(大约30mA才能驱动),需要通过一个ULN2003来间接控制,由图可知BEEP与ULN2003中的12管脚相连,其作用可以类似于一个非门,当输入P2.5低电平,OUT5输出高电平,当输入P2.5高电平,OUT5输出低电平。无源蜂鸣器需要提供一定的脉冲信号(通常1.5~5KHz之间)才能发出声音,有缘蜂鸣器只需要提供电源就能发出声音。有源蜂鸣器上电之后,音色和声音大小就是固定了,当然也有特定的,取决于厂家。图一为无源蜂鸣器,图二是有源蜂鸣器,
2025-05-21 15:37:03
533
原创 使用keil自带左右移库函数来实现流水灯
extern关键字外部使用类型是unsigned char,_corl_(需要移动的初始值,移动几位);使用库函数来实现流水灯需要使用keil5自带的左移函数(_crol_)右移函数(_cror_)使用左右库函数需要包含intrins.h,里面定义了该函数。
2025-05-21 13:38:48
477
原创 51单片机实现流水灯
我们想实现流水灯,即D1亮D2~D8灭,延时一会,再让D2亮,D1,D3~D8灭延时一会,一次循环,但不推荐这样操作,我们可以利用左移来实现流水灯。
2025-05-19 14:04:20
274
原创 51单片机点亮一个LED介绍
LED就是发光二极管,一般来说如果是直插式的,那就是长正短负,如果是贴片式的,那就带彩色标记是阴极,如果是三角形的,水平箭头指的就是阴极,通常一般的工作电压在3mA~20mA,当发光的时候,两端电压为1.7V这是我们此次实验51单片机LED硬件资源,由图中可知,D1接在单片机P2.0口,并且LED采用共阳极接法,只需要让P2.0口接低电平就可以让LED点亮,RP9和RP10就是排阻,就是让一个个电阻组装到一个排阻里,可以使用更简单。
2025-05-19 11:17:53
560
原创 VS2022中监视窗口使用
如果遇到scanf函数或者getchar可以先输入然后再最小化,这个不弄成最小化,直接点F10 的话 会直接卡住的。输入进去,然后电机F10会对每一行代码逐行分析,也可在前面添加断点,当编译器执行到这里时会自动停下。还有一个就是很多小伙伴找不到监视窗口,那是因为被隐藏了。出现这种情况需要点击F10 ,在窗口里找到监视就行了。单击F10,在监视窗口里添加需要监视的项。
2025-04-29 15:25:23
303
原创 函数(二)
在使用函数解决问题时候,难免会将数组作为参数传递给函数,在函数内部对数组进行操作。比如:写一个函数将一个整型数组的内容,全部置为-1,再写一个函数打印数组的内容。这里的set_arr函数要能够对数组进行设置,就得把数组作为参数传递给函数,同时函数内部在设置数组每个元素的时候,也得遍历数组,需要知道数组的元素个数。素以我们需要给set_arr传递2个参数,一个是数组,另外i一个是数组元素的个数。仔细分析print_arr也是一样的,只有拿到了数组和元素个数,才能遍历打印数组的每个元素。
2025-04-29 09:25:46
607
原创 函数(一)
ret_type fun_name(形式参数)ret_type 是用来表示函数计算结果的类型,有时候返回类型可以是 void ,表示什么都不返回fun_name 是为了方便使用函数;就像人的名字一样,有了名字方便称呼,函数有了名字方便调用,所以函数名尽量要根据函数的功能起的有意义。函数的参数就相当于,工厂中送进去的原材料,函数的参数也可以是 void ,明确表示函数没有参数。如果有参数,要交代清楚参数的类型和名字,以及参数个数。{}括起来的部分被称为函数体,函数体就是完成计算的过程。
2025-04-25 10:20:31
678
原创 基于数组的练习
题⽬:给定⼀个升序的整型数组,在这个数组中查找到指定的值n,找到了就打印n的下标,找不到就打印:"找不到"。编写代码,演⽰多个字符从两端移动,向中间汇聚。练习1:多个字符从两端移动,向中间汇聚。
2025-04-23 13:15:18
160
原创 C语言二维数组
前面学习的数组称为一维数组,数组的元素都是内置类型的,如果我们把一维数组做为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组称为三维数组,二维数组以上的数组统称为多维数组。
2025-04-22 14:05:54
1130
原创 猜数字游戏实现逻辑
2.玩游戏并不是只要打印就行得需要实际代码实现,此处再封装一个game()函数,方便后面调用。1.首先主函数部分用do while循环先上来执行一次根据输入的值来决定是否在循环。但是这样写不够美观,为了便于阅读代码,可以封装一个函数将上面要打印的内容封装起来。
2025-04-21 14:19:43
532
原创 零基础C语言一维数组
学习了⼀维数组的基本语法,⼀维数组可以存放数据,存放数据的⽬的是对数据的操作,那我们如何使⽤⼀维数组呢?有了下标访问操作符,我们就可以轻松的访问到数组的元素了,⽐如我们访问下标为7的元素,我们就。存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的大小和数组元素的类型。数组也是又类型的,数组算是一种自定义类型,去掉数组名留下的就是数组的类型。[]中的常量值是用来指定数组的大小的,这个数组的大小是根据实际的需求指定就行。数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。
2025-04-17 10:51:20
1160
原创 分支和循环(下)以及实现猜数字游戏
如果再深入了解一下,我们就不难发现,其实rand函数生成的随机数是伪随机的,伪随机数不是真正的随机数,是通过某种算法生成的随机数。真正的随机数是无法预测下一个值是多少的。程序中在调用rand函数之前先调用srand函数,通过srand函数的参数seed来设置rand函数生成 随机数的时候的种子,只要种子在变化,每次生成的随机数序列也就变化起来了。之所以前面每次运行程序产生的随机数序列是一样呢的,那是因为rand函数生成随机数的默认种子是1.如果要生成不同的随机数,就要让种子是变化的。
2025-04-16 10:57:52
1064
原创 break和continue语句
在循环执行过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应用到循环中的。break的作用是永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。continue的而作用是跳过本次循环中continue后边的代码,在for循环和while循环中有所差异的。
2025-04-14 15:13:07
1341
原创 循环语句的使用
1.switch语句switch语句是一种特殊形式的if ...else结构,用于判断条件有多个结果的情况。它把多重的else if改成更易用,更可读的形式。根据expression表达式结果的不同,执行相应的case分支。如果摘不到对应的值就执行default分支。注意:1 switch后加的expression必须是整形表达式2 case后的值,必须是整形常量表达式1.1if和switch语句的对比练习:输入任意一个整数值,计算除3之后的余数if语句switch语句。
2025-04-12 17:41:06
1190
原创 分支和循环(上)
表达式中&&的左操作数是month >=3,右操作数是month <=5,当左操作数month >=3的结果是0的时候,即使不判断month <=5,整个表达式的结果也是0。&&是一个双目运算符,使用方式是a&&b,&&两边的表达式都是真的时候,整个表达式都是真的时候,整个表达式才为真,只要有一个是假,整个表达式为假。||就是或运算符,也是一个双目操作符,使用方式是a||b, ||两边的表达式只要有一个是真,整个表达式就是真,两边的表达式都为假的时候才为假。比如,20>12返回1,12>20返回0。
2025-04-11 16:44:53
1222
原创 printf()函数简单用法
首先第一行就是原样输出,第二行%s意思是这个位置可以用字符串来代替,字符串必须在双引号内,第三行就是%d这个地方可以用有整数代替。输入一个getchar()函数表示从键盘输入一个字符,但并没有输入,此时程序运行并没有结束,随意输入一个字符后才运行结束。举例来说,希望⼩数点后⾯只保留两位,占位符可以写成 %.2f。%6.2f中6表示最小输出宽度为6为,2表示只能输出两位小数,所以0.50空出两个字符。%5d表示最小输出5个字符,不够左边用空格补;%-5d表示最小输出5个字符,不够空格补后面;
2025-04-02 09:56:25
391
原创 VS2022上各种数据类型占多长字节
括号里可以是变量,数据类型,也可以是表达式,只有里面是表达式的时候括号不可省略。可见在VS2022中(1字节等于8为,二进制0或1存储需要1个位)当然要注意一下,上面头文件要加上布尔类型头文件,查看运行结果。sizeof与之对应要打印的格式是%zd或者%zu。sizeof函数用法是计算数据类型的长度。长双精度浮点型长8字节。单精度浮点型长4字节。双精度浮点型长8字节。
2025-03-30 21:17:41
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅