程序设计
久邦科技
这个作者很懒,什么都没留下…
展开
-
STM32点亮一盏灯
使用`GPIO_SetBits()`函数将对应的GPIO位设置为1,此时LED就会被点亮;- 在while循环中,周期性地调用上述函数切换LED状态,如`GPIO_ToggleBits()`可以在每次循环中改变状态。- 设置GPIO的模式为推挽输出(设置为AF_PP或AF_OD),并禁用中断。// LED的GPIO引脚。原创 2024-08-06 22:15:08 · 450 阅读 · 0 评论 -
STM32开发环境配置
选择IDE时,我们就像挑选一件合身的衣服,需要考虑个人的习惯和项目的需求。在安装驱动程序时,我们需要像对待珍贵的瓷器一样小心翼翼,确保驱动程序与操作系统的兼容性,以及与开发板的匹配性。开发环境的重要性不言而喻,它就像是一座桥梁,连接着开发者的思想与实际的硬件设备。对于STM32而言,其开发环境不仅包括了编程所需的软件工具,还涉及到硬件的支持和相应的驱动程序。最后,当我们完成所有配置并开始编程时,就会像指挥家挥动指挥棒,乐队中的每个成员都按照既定的节奏演奏,整个项目也将在开发者的指尖下生动地展开。原创 2024-02-17 19:32:14 · 278 阅读 · 0 评论 -
熄灭第一个LED实验
bit和sbit都是C51扩展的变量类型。sbit用法: sbit 变量名=地址值;实现现象:下载程序后D11指示灯熄灭。在给某个引脚取名的时候经常会用到。原创 2024-02-16 23:21:08 · 111 阅读 · 0 评论 -
LCD12864液晶实验
在主函数中,首先初始化12864液晶显示屏,然后清空屏幕。在循环内部,首先清空屏幕,然后调用Lcd12864_Write16CnCHAR函数在屏幕上显示一段文字"技科邦久",最后调用Delay10ms函数延时10ms。reg51.h是针对8051单片机的寄存器定义,st7565.h是针对12864液晶显示屏的驱动函数定义。程序的主要功能是在屏幕上显示一段文字,并实现文字的垂直滚动效果。最后,定义了一个延时函数Delay10ms,该函数接受一个无符号整数参数c,表示延时的次数。原创 2024-02-16 22:58:50 · 841 阅读 · 0 评论 -
交通灯实验
这段代码是用于控制单片机(如51系列)上的交通灯系统。主要功能是通过数码管显示倒计时,同时控制交通灯的状态。实现现象:下载程序后,呈现交通灯现象。原创 2024-02-16 21:29:40 · 446 阅读 · 0 评论 -
定时器1中断实验
在这个函数中,首先给定时器赋初值,然后计数器i自增,当i等于1000时,将i重置为0,并改变数码管显示的数字。在主函数中,首先调用Timer1Init()函数进行定时器1的初始化,然后进入一个无限循环。是一个定时器1初始化的函数,通过设置TMOD、TH1、TL1、ET1、EA和TR1来实现。是对数据类型进行声明定义,u16表示无符号16位整数,u8表示无符号8位整数。是定义一个数组smgduan,存储了数码管显示0~F的值。原创 2024-02-16 21:22:51 · 623 阅读 · 0 评论 -
定时器0中断实验
在这个函数中,首先给定时器赋初值,然后计数器i自增,当i等于1000时,将i重置为0,并改变LED灯的状态。在主函数中,首先调用Timer0Init()函数进行定时器0的初始化,然后进入一个无限循环。是一个定时器0初始化的函数,通过设置TMOD、TH0、TL0、ET0、EA和TR0来实现。是对数据类型进行声明定义,u16表示无符号16位整数,u8表示无符号8位整数。是定义一个位变量led,它对应单片机的P2口的第0位,用于控制LED灯的状态。原创 2024-02-16 21:19:58 · 441 阅读 · 0 评论 -
外部中断1实验
在这个函数中,首先进行延时消抖,然后检测按键K4的状态,如果按键被按下,就改变LED灯的状态。是主函数,程序的执行从这里开始。这段代码主要功能是通过外部中断1来检测按键K4的状态,当按键被按下时,LED灯的状态会发生改变。是定义一个位变量led,它对应单片机的P2口的第0位,用于控制LED灯的状态。是定义一个位变量k4,它对应单片机的P3口的第3位,用于检测按键K4的状态。是一个设置外部中断1的函数,通过设置IT1、EX1和EA来实现。原创 2024-02-16 21:12:39 · 382 阅读 · 0 评论 -
外部中断0实验
在这个函数中,首先进行延时消抖,然后检测按键K3的状态,如果按键被按下,就改变LED灯的状态。在主函数中,首先调用Int0Init()函数设置外部中断0,然后进入一个无限循环。这段代码是通过外部中断0来检测按键K3的状态,当按键被按下时,LED灯的状态会发生改变。是定义一个位变量led,它对应单片机的P2口的第0位,用于控制LED灯的状态。是定义一个位变量k3,它对应单片机的P3口的第2位,用于检测按键K3的状态。原创 2024-02-16 21:01:00 · 388 阅读 · 0 评论 -
步进电机实验
在主函数中,首先将P1口的所有引脚设置为低电平,然后进入一个无限循环,在循环中,按照一定的顺序和速度控制四个电机的开启和关闭。这段代码是让这四个电机按照一定的顺序和速度进行开启和关闭,形成一种特定的运动模式。是定义四个位变量,它们对应单片机的P1口的第0、1、2、3位,分别控制四个电机。是一个延时函数,参数i决定了延时的时间。这个函数通过一个while循环实现延时。实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转。是定义一个宏,表示电机的运行速度。原创 2024-02-16 20:55:08 · 376 阅读 · 0 评论 -
直流电机实验
是主函数,程序的执行从这里开始。在主函数中,首先关闭电机,然后进入一个循环,循环100次,每次循环都会开启电机,然后延时大约50ms,最后关闭电机。最后的while(1)是一个无限循环,防止程序结束。是一个延时函数,参数i决定了延时的时间。这个函数通过一个while循环实现延时。实现现象:下载程序后,按照光盘内操作视频接线,直流电机旋转大约5S,然后停止。这段代码主要是让电机开启一段时间,然后关闭一段时间,这个过程重复进行。是定义一个位变量moto,它对应单片机的P1口的第0位。原创 2024-02-16 20:41:54 · 382 阅读 · 0 评论 -
LED点阵--显示汉字实验
这段代码是用于控制LED点阵显示汉字的。主要功能是通过74HC595模块驱动LED点阵,实现汉字的显示。代码中定义了两个汉字“久"和"邦"的点阵数据,通过循环扫描的方式在LED点阵上显示这两个汉字。注意事项:必须将74HC595模块的JP595短接片短接,否则不会出现现象。实现现象:下载程序后,按照光盘内操作视频接线,LED点阵显示汉字。原创 2024-02-16 19:45:18 · 996 阅读 · 1 评论 -
LED点阵--点亮一个点实验
代码首先定义了一些数据类型和IO口,然后定义了一个函数Hc595SendByte,这个函数的作用是通过595发送四个字节的数据。在主函数main中,调用了这个函数,传入了四个参数,分别是0xff, 0xfe, 0x00, 0x01,这四个参数分别对应LED点阵的四个位置,其中第一个位置的LED被点亮。最后是一个无限循环,程序会一直运行下去。这段代码是用于控制LED点阵的,通过74HC595模块来驱动。主要功能是点亮LED点阵左上角的第一个点。实现现象:下载程序后,LED点阵左上角第一个点的LED被点亮果。原创 2024-02-16 18:45:54 · 536 阅读 · 0 评论 -
矩阵按键实验
当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。实现现象:下载程序后数码管显示0,按下矩阵按键上的按键显示对应的数字。原创 2024-02-02 19:58:11 · 419 阅读 · 0 评论 -
独立按键实验
实现现象:下载程序后按下K1按键可以对D11小灯状态取反。在主函数中,通过调用keypros()函数来实现按键处理,当按键K1被按下时,LED灯的状态会取反。同时,使用delay()函数进行延时,以实现按键消抖的效果。整个程序通过无限循环不断检测按键状态,并根据按键操作来控制LED灯的状态。原创 2024-02-02 19:39:21 · 428 阅读 · 0 评论 -
动态数码管实验
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。实现现象:下载程序后数码管从左至右显示0-7。原创 2024-02-02 19:05:42 · 421 阅读 · 0 评论 -
静态数码管显示实验
数码管静态显示原理 LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、TFT液晶显示器等。LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。LED数码管根据LED的不同接法可以分为2类:共阴和共阳。原创 2024-02-02 18:24:55 · 368 阅读 · 0 评论 -
继电器实验
继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器内部含有线圈和触点,当线圈得电就会使触点吸合。实现现象:下载程序后继电器模块指示灯DK亮,会听到继电器吸合的声音。原创 2024-02-02 17:19:48 · 414 阅读 · 0 评论 -
蜂鸣器实验
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过放大电路放大驱动电流就能使蜂鸣器发出声音,非常简单。在主函数中,通过循环不断切换蜂鸣器的开关状态,并通过调用delay函数实现延时,从而控制蜂鸣器的发声效果。改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。实现现象:下载程序后蜂鸣器发声。原创 2024-02-02 16:20:21 · 404 阅读 · 0 评论 -
LED流水灯实验
首先将led设置为0x01,即二进制的00000001,表示点亮第一个LED灯,并延时大约450毫秒。接下来进入一个无限循环,循环内部有两个for循环,分别用于将led左移和右移。在每个for循环中,使用相应的函数()来实现led的位移操作,并在每次位移后延时大约450毫秒。这样就实现了LED灯的闪烁效果。将P0口定义为led,后面就可以使用led代替P0口。然后定义了一个延时函数。实现现象:下载程序后LED呈现流水灯效果进行左移右移滚动。表示延时的时间,单位为微秒(us)。原创 2024-02-02 14:22:03 · 384 阅读 · 0 评论 -
LED闪烁实验
typedef:对数据类型进行申明定义,C语言的数据类型的关键词的位宽是不一样的。while语句语义:计算表达式的值,当值为真(非0)时,执行循环语句。实现现象:下载程序后D11指示灯闪烁。原创 2024-02-02 13:45:06 · 348 阅读 · 0 评论 -
点亮第一个LED实验
bit和sbit都是C51扩展的变量类型。sbit用法: sbit 变量名=地址值;实现现象:下载程序后D11指示灯点亮。在给某个引脚取名的时候经常会用到。原创 2024-02-02 12:03:58 · 337 阅读 · 0 评论