自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第1章:芯片及引脚介绍

STM32入门

2024-04-05 15:14:22 575

原创 07:指针

指针简单来说就是地址(内存单元的编号)int i = 3;int * p;//定义指针变量p,p只能存放整型变量的地址。p = &i;return 0;31、int * p表示定义一个指针变量p,类型为int *代表存放整型变量的地址,p用来存放整型变量的地址。2、p = &i表示把i的地址存放在p变量里面,则p指向i。这就是指针。3、当p指向i时,则*p代表取值,指取出p指向的地址的变量i的值(所有出现*p的地方都可以用i替换)。什么是地址?内存单元的编号,从0开始的非负整数。

2024-02-13 11:17:29 1005 1

原创 18:蜂鸣器

蜂鸣器内部其实是2个金属片,当一个金属片接正电,一个金属片接负电时,2个金属片将合拢,在合拢的一瞬间发生碰撞,如何发出声音。分类:分为有源蜂鸣器和无源蜂鸣器。无源蜂鸣器的发声原理:(1)快速的给2个金属片进行充电和断电进行发出声音,所以通过脉冲波形来控制。(2)音调的控制:音调如何控制,音调受震动频率控制,就等于控制信号的频率。频率越高音调越高,听起越刺耳。(3)声音大小如何控制:由硬件决定的,没法写代码去控制声音大小。

2024-02-08 16:37:33 403

原创 17:定时器编程实战

(3)本节用定时器来定一个时间(譬如0.3s),在这个定时器定时时间内CPU还可以去做主任务,定时时间到产生中断,在中断处理程序isr中让LED闪烁即可。内部时钟频率是1MHz,时钟周期是1us。(2)原来实现闪烁时中间的延迟是用delay函数实现的,在delay的过程中CPU要一直耗在这里不能去做别的事情。如果要定比较长的时间(譬如2s),定时器直接是不能满足的,解决办法是多次定时后加起来构成一个长时间。(2)确定内部时钟周期,因为12T模式,外部晶振12MHz,所以为:1us。(2)主程序该干嘛干嘛。

2024-02-07 20:18:05 470

原创 16:定时器和计数器

(1)定时器是单片机里面的一个内部外设,就是CPU的“闹钟”。CPU定时的时间段里面,CPU也能干别的事。当定的时间到了后,CPU再去干被指定的事。(2)定时器其实就是用计数器实现的,计数器是记录脉冲的个数。计数器可以计算CPU外部脉冲的个数。STC89C52内部一共有3个定时器,分别为T0,T1,T2。T0和T1是16位的定时/计数器,是定时器还是计数器取决于TMOD中的C/T。则一共能计数2的16次方个脉冲。

2024-02-07 16:27:35 1966

原创 15:矩阵按键

(3)单片机CPU继续输出0xf0(1111 0000),既8~5为1 ,4~1为0。(1)单片机CPU先输出(IO引脚输出)0x0f(0000 1111),但是S1,S5,S9,S13按下后也会使4号引脚变成低电平0。,但是S1,S2,S3,S4按下都会使8号引脚变成低电平0。(2)若没有按键按下,则单片机CPU收到的依然是0x0f。(3)按键的物理作用不变:按下接通电路,弹起断开电路。(4)从收到的数据(IO引脚输入)判断哪一列按下了。K1按下:0000 0111。K1按下:0111 0000。

2024-02-05 17:30:53 427

原创 14:中断

每一个外部中断都对应一个特定的单片机IO引脚(譬如INT0对应P3.2,这个是单片机在设计时候定好的,是无法改变的)。当硬件产生了一个外部中断时CPU就会收到一个中断信号,从而转去执行外部中断对应的处理程序(这个处理程序也是我们软件需要去编写提供的)。所以我们要引入中断。所消耗的时间是很长的,假如执行一句代码的时间为1,则执行此段代码的时间是10次循环时间*延迟函数的时间,大约为10x200x200。(3)中断中处理的事件的特点是:无法预料、处理时间短、响应要求急。只需要大约4的时间,所以时间非常短的。

2024-02-04 21:04:30 832

原创 13:使用1个按键使静态数码管数值加1

(3)一般都认为发生了一次完整的按键事件才算是用户操作了一次按键,程序才会去处理按键,所以在一次完整的按键事件中程序只会去处理一次按键。当第一次按下K1时,静态数码管显示数值为1,当第二次按下时,数码管数值变为2,以此类推…(2)一个完整的按键事件包括:按下事件(由高变低)、弹起事件(由低到高)此代码有个缺陷,当一直按着K1时,数码管数值会一直加1。(1)按键事件就是按键操作过程中的不同状态切换。

2024-02-03 19:25:19 415

原创 12:按键检测与显示

(2)在正式的比较庞大的程序中,按键的检测部分和处理部分都是隔开的。这两部分隔开有利于各自部分的程序编写,两部分之间用键值来连接。按键监测部分负责监测按键,一旦发生一个按键事件就产生一个键值,然后将键值传递给按键处理部分。(1)一般的产品中按键都有很多,对于整个程序来说一般都是把按键进行编码,给每个按-一个对应的编码值,就叫做按键的键值。此代码有缺陷,有按键冲突,按下第一个按键时,在按下一个按键,则第二个按键不显示,冲突了。另一部分负责将接收到的键值显示在独立数码管上。一部分做按键监测并且发出键值。

2024-02-03 16:10:01 324

原创 11:按键

(2)按键这个设备对我们的意义:按键对于我们CPU来说是一个输入设备,输入的是人的操作。CPU通过监测按键连接的IO引脚的电平输入是1还是0就知道外部有没有人按下这个按键。(1)使用轮询法来处理独立按键K1,单片机在循环中每隔很短的时间就检测K1对应的P1.0引脚的输入电平是1还是0,如果是1则表示按键没有按下,延时等待下一次检验;(1)轮询式:所谓轮询式就是CPU不断的隔很小时间去查看有没有按键被按下,如果按下就处理按键,如果没按下就过一会再来查看。按下K1时LED1亮,按下K2时LED2亮,以此类推。

2024-02-03 09:53:01 432

原创 10:LED点阵显示汉字

(1)如何记录组成字的LED点阵亮灭信息(16x16点阵一共有256点,显示一个特定的字需要其中有些点亮而另一些不亮,如何记录哪些点亮哪些点不亮?用字模)字模如何工作?所以一个大小为16*16的字的字模是32个字节大小。(2)字模如何获取.一般都是用专门的字模提取软件去提取的:这种软件的作用就是给一1字就能自动得到这个字对应的32个字节的字模编码。(3)规律3:shixu一次送16个LED的亮灭信息(2字节),所以必须调用shixu函数16次,才能把整个点阵全部点亮完毕。

2024-02-02 13:09:02 739

原创 09:对点阵规律的探索

让右下角的点整亮,其余的点整灭。

2024-02-01 20:09:42 176 1

原创 08:LED点阵

如图为16x16的LED点阵,每一个点里面都有一个LED灯上图为一个8x8点阵LED原理图(横向为正极,纵向为负极);点阵的优势就是8+8个IO口独立控制8*8个LED亮灭。

2024-02-01 19:15:22 1073 1

原创 07:使用38译码器驱动动态数码管

原来不用38译码器时,8个动态数码管一共使用2个IO端口(16个引脚),现在使用了38译码器后,我们可以用38译码器的3路输入来控制数码管的8路位码,这样总共只需要3+8=11个IO引脚就可以来驱动8个动态教码管了,省了5个IO口。(1)38译码器的作用:用3个IO口来控制8路输出。J15连接J16,J6连接单片机的P1引脚。C接P1.2,B接P1.1,A接P1.0。8个联排数码管依次显示12345678。有图得:C是高位,A是低位。

2024-01-31 19:31:47 497

原创 6:动态数码管

(1)数码管还是原来的数码管(共阳极或共阴极均可)记住:数码管有2端:COM端(共极)和段码端(IO口)(2)段码一侧还是接一个单片机端口(3) COM(共极)接单片机一个IO口(J16),多个联排数码管的COM共同接一个IO端口分析对比静态和动态数码管,发现本质区别是:静态数码管中只要给了段码数码管就一定工作i(显示只取决于段码端),动态数码管中段码端给了段码值后还需要coM端配合才能点亮数码管。

2024-01-31 18:27:40 401

原创 05:静态数码管

作用:数码管是显示器件,用来显示数字或字母的分类:单个(1位)联排(2位、4位、8位)

2024-01-31 11:44:20 694

原创 02:keil软件的使用

(3)编译的时候有可能会报错(Errors)和报警告(Warnnings),错误就是有很严重的问题,此时编译无效并不能生成最终需要的可烧录的程序文件,必须去排除错误重新编译才可以;编译时生成的文件有很多,但是只有这个.hex文件才是我们最终需要的,可以用来烧录的文件。(2)我们工程刚创建好(空工程)时只有工程文件,此时我们要去编写添加源代码,代码写好后就有了工程文件和源文件,此时点编译操作就可以得到目标文件。(3)现在可以自己开始写代码,或者直接复制一个已经写好的代码文件进来,并且添加到我们的工程项目中。

2024-01-22 21:39:33 940

原创 01:单片机上电前的准备工作

当我们拿到普中科技开发板的时候,如何使用呢?下面我们将带领大家一步一步的操作:(HC-6800-EM3 V3.0;芯片是STC89c516)

2024-01-22 21:32:07 395

原创 04:LED闪烁,流水灯,跑马灯

(1)跑马灯和流水灯非常像,不同的是:流水灯是8颗ED其中7灭1亮,亮的在移动;(1)流水灯的本质其实就是不同的亮的状态相互间隔一定时间。闪烁的本质:亮----延时----灭----延时。第1个状态等于0x80(1000 0000)第2个状态等于0x40(0100 0000)第3个状态等于0x20(0010 0000)第4个状态等于0x10(0001 0000)第5个状态等于0x08(0000 1000)第7个状态等于0x02(0000 0010)第8个状态等于0x01(0000 0001)

2024-01-22 21:20:18 941

原创 06:函数

是一种工具,能够完成独立功能的代码块,每个独立的功能都可以用一种函数去实现。避免了重复性操作,有利于程序的模块化。/*比较2个数之间的最大值*/if(i>j)elseif(k>m)elseif(n>h)elsereturn 0;max(k,m);max(n,h);return 0;246。

2024-01-21 22:11:47 406

原创 04:循环语句

先执行for里面的 i=1 语句,然后去判断是否 i<=4,是就执行语句1,然后在执行++i,标志这第一次循环结束。循环的次数:4-1+1。和while,for的区别:先执行一次语句才进行判断,而for和while 可能语句一次都不执行。由此可见,一个for的控制范围为之后的一个语句。break只能终止距离他最近的循环。break不能直接用于if,除非if属于循环内部的一个子句。用于跳过本次循环余下的语句,转去判断是否需要执行下次循环。break如果用于循环是用来终止循环。循环的次数:3-1+1。

2024-01-21 11:59:30 884

原创 03:流程控制语句(选择语句)

由此可得出if如果有{},那if的作用范围是整个大括号;若无{},则作用范围为之后的一个语句。----某些代码可能执行,可能不执行,选择性执行。case是程序的入口,而break是程序的退出,----代码执行的顺序。顺序 ,选择, 循环。

2024-01-21 10:57:23 371

原创 02:printf,scanf,运算符

【注】除法/的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;3、printf("输出控制符1 输出控制符2 …【注】取余%的运算对象必须是整数,结果是整除后的余数,其余麦的符号与被除数相同。4、printf(“输出控制符 非输出控制符”,输出参数);2、scanf(“非输出控制符 输入控制符”,取地址变量);2、printf(“输出控制符”,输出参数);1、scanf(“输入控制符”,取地址变量);----将变量的内容输出到显示器上。

2024-01-20 23:04:30 876

原创 01:C语言的预备知识

int i = 3;return 0;i = 33最终是存放在内存中,程序终止后3所占的空间被释放所以“int i” 表示在内存条的空闲的空间的地址和i产生一种关联,然后将3存放在此空间中。数据类型 变量名 = 值;int i = 3;等价于数据类型 变量名;变量名 = 值;int i;i = 3;字节就是存储数据的单位,并且是硬件所能访问的最小单位。1字节 = 8位1k = 1024字节1m = 1024k1g = 1024m规定了不同的字符是用哪个整数值来表示的。

2024-01-20 22:27:25 352

原创 03:单片机控制第一个外设LED

打开keil uvision5软件:project–>New uvision project–>填写文件名–>Atmel–>AT89c51。②:右键source group–>add File,把LED.c文件添加到文件夹。找到自己的芯片型号,对应的串口,然后打开程序文件找到.hex文件 ,然后点击下载。①:File–>New–“保存”–输入文件名为LED.c。选中HEX File后点击编译生成HEX文件进行烧录。

2024-01-20 20:20:14 337

原创 05:数组

该二维数组右下角位置的元素只能是a[m-1][n-1]。a[i][j]表示第i+1行第j+1列的元素。请输入5个整数,中间以空格隔开。

2024-01-20 17:47:17 340

原创 第5章:线性调制与解调,混频

2023-12-01 20:34:04 345

原创 第4章:正弦波振荡电路

2023-11-29 22:51:40 398

原创 第三章:高频功率放大器

2023-11-29 19:35:49 370

原创 第2章:小信号选频率放大器

2023-11-29 16:53:35 368

空空如也

空空如也

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

TA关注的人

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