自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 初学51单片机之PWM实例呼吸灯以及遇到的问题(已解答)

事实上主函数第一次执行 ConfigPWM()的时候,把PWMOUT赋值为1,是可以进入一次if函数的,然后会经过9ms的等待再次进入中断进入else()函数,从此后就再也无法进入if函数了,后续现象和视频一样。第二:在debug时间误差的时候笔者发现,定时器0中断,程序指针一直无法进入if函数,直接进入了else函数,导致中断时间间隔一直都是1ms,看视频。总结:不知道是keil5软件本身有问题,还是笔者的keil5软件有问题,还是笔者哪里没有考虑到,路过的小伙伴如果知道缘由,

2024-06-19 18:23:33 734

原创 初学51单片机之数字秒表

一开始写大概率这种逻辑的,但是从debug的过程中可以看到,第5次中断的时候会进入if函数,那么时间间隔就会发生变化了,当然这依然可以时间补偿,就是求时间的时候需要注意一下,而且这会导致每5次中断,其中一个数码管的刷新时间变得长一点,虽然不影响显示结果,因此该函数放在LedSCan()后面,而且因为几乎必然发生的显示延迟,对于进位结果下个中断使能,好像也不是很难接受的结果。对于时间流逝流程如下图,(这个过程不太好描述,笔者无法准确表述,各位自己感悟一下,秒表的显示逻辑是这样的,我们肉眼看到也是如此)

2024-06-13 22:20:07 1006

原创 初学51单片机基础知识与步进电机28BYJ-48详解

尽信书,则不如无书。也许有很多优秀的教材在它出现的那个年代是不错的指导,但是随着时代的变化,当初的研究对象可能都已经发生了变化,然而教材却一成不变。引用它的人不去验证,曾经的闪光点都可能变成最大的错误。

2024-06-07 21:44:41 1134

原创 初学51单片机之矩阵按键的应用末篇

形参(形式参数)是在函数或方法定义中用来接收参数值的变量。它们在函数或方法调用时被实参(实际参数)的值赋予,从而在函数或方法体内使用这些值来完成特定的操作。形参在函数或方法定义中声明,可以有多个,每个形参用逗号分隔。形参可以有指定的数据类型,也可以是泛型类型。形参的定义可以包括参数名和数据类型,例如:int x, String name, T item等。实参是在函数调用时传递给函数的输入值,它们是函数定义中的形参的具体值。实参可以是常量、变量、表达式或者其他函数调用的返回值。

2024-05-29 18:05:37 1102

原创 初学51单片机矩阵按键与消抖2

前文我描述过关于按键扫描的方式即4个keyout IO口其中1个取低电平其余三个高电平的方式来扫描按键。

2024-05-22 15:35:28 917

原创 初学51单片机矩阵按键与消抖

通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上就稳定接通,在断开时也不会一下子彻底断开,而且在闭合和断开的瞬间伴随一连串的抖动。而keyin1的电压由开发版上的开关K1,K5控制。对于本案的复位电路来说,当一上电,电容类似一条导线,5V电压全部在R31的电阻上,随着电容充电,电容两端慢慢(这个所谓的慢慢其实极快是微秒级的)变大,这个过程的状态是。在某个系统中,如果需要使用很多的按键,做成独立的按键会大量的占用IO口,因此引入了矩阵按键的涉及。

2024-05-10 23:35:16 983

原创 初学51单片机点阵LED,数码管,流水灯同时工作的程序实现

两句三八译码器从U3切换到U4了,这时点阵LED上的就会显示图象,显示的图像就由前个中断刷新语句ADDR2=0;程序已经实现了三个模块的同时工作,该篇的程序前文都有放出,笔者只是把各个功能模块整合在了一起,在实现这个程序的时候笔者遇到了一个问题导致了鬼影的产生。之前的博文都是放在刷新语句的前面了,现在是放在中断函数里ADDR3和ENLED的前面,因为这两句是切换38译码器U3和U4的语句,举个例子:上图是定时器0的中断函数程序,假设在进入该中断前已经执行了中断1的刷新语句的case3语句,

2024-05-07 16:03:09 684

原创 初学51单片机之点阵LED、数组、变量

1:具有相同的数据类型。2:具有相同的名字。3:在存储器中是被连续存放的数组的初始化数据类型 数组名[数组长度] = [初值列表]举例:unsigned char LedChar[8] ={0xF7,0xF6,0xB6,0xB6,0xB6,0xB6,0x80,0xFF,}1:初值列表里的数据之间要用逗号隔开,最后一个逗号可以取消2:初值列表里的初值数量必须等于或者小于数组长度,当小于数组长度时,数组的后面没有赋值的元素由系统自动赋值为0.3:若给数组的所有元素都赋初值,可以省略数组的长度。

2024-05-06 22:45:52 1076

原创 初学51单片机的灵魂中断以及数码管与C语言实践

这个中断之间干活就像排队打饭,一开始几个中断按照。

2024-04-14 13:02:34 929

原创 初学51单片机定时器数码管及C语言实践

TL0 = 0x00;if(shift1 == 0x01 && shift2 == 0x80) //判断循环变量1到最右端且循环变量2到最 左端。if(shift1 ==0x80 && shift2 == 0x01) //循环变量都移到最左端和最右端。if(shift1 == 0x08 && dir1 == 0) //判断是否 shit1运动到端口4并且是向左移动。if(shift1 == 0x10 && dir1 == 1) //判断是否 shift1运动到端口5并且是向右运动。

2024-04-11 21:11:55 993

原创 初学51单片机流水灯实现及C语言实践相关

不过笔者并没有气馁(一度放弃主要很多时候发现写语句的时候没注意这里少一点那里那个搞错了,逻辑也不是很明朗,最后在debug的时候发现第二版程序P0口变成变量值了而且运行二十几次就超出INt的范围,然后对比老师的程序之前的程序发现P0不是变量不会出现local里面,考虑到可能是输入法造成的果断删掉重写,这次就没这个问题了。if(shift1 == 0x01 && shift2 == 0x80) //判断循环变量1到最右端且循环变量2到最 左端。//shift2在端口5 0x10的位置往右移一位,

2024-04-06 23:06:30 983

原创 VS 2019中文输出乱码问题

我们需要找到这个点C文件右键用笔记本打开然后 文件-另存为-编码方式选择ANSI-保存-选者“是”可以看到除了C字母正确输出,后续的中文输出都已经乱码了。关于vs2019软件输出中文乱码的一种解决方法。然后我们重新CTREL +F5。这时候中文输出就不再乱码了。

2024-04-05 23:03:12 407

空空如也

空空如也

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

TA关注的人

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