- 博客(22)
- 收藏
- 关注
原创 Mkdm的51单片机学习日记:模数转换A/D 与 数模转换D/A
A/D:模拟量到数字量,依靠模数转换器ADCD/A:数字量到模拟量,依靠数模转换器DAC。
2024-10-24 21:46:16
1032
原创 Mkdm的51单片机学习日记:实时时钟DS1302
SPI:Serial Peripheral Interface 串行外围设备接口,是一种全双工,同步的通信总线。SSEL:从设备片选使能信号,如果从设备是低电平使能,当拉低这个引脚时,从设备就会被选中。常用于单片机与EEPROM,FLASH,实时时钟,数字信号处理器等器件的通信。单片机常用的通信协议有三种:SPI,UART,I2C。SCLK:时钟信号,主机产生,类似于I2C的SCL。MOSI:主机给从机发送指令或者数据的通道。MISO:主机读取从机的状态或者数据的通道。
2024-10-22 21:46:50
171
原创 Mkdm的STM32单片机学习日记:中断 + 用中断控制灯亮灭
ISER:中断使能寄存器,32*8=256个位,每个位控制一个中断,但是只有240个中断,所以有16个位保留ICER:中断除能寄存器,一个位控制一个中断AIRCR:应用程序中断及复为控制寄存器,共有32位,但是只用到了8,9,10三个位,控制优先级分组IPR:中断优先级寄存器,8个位对应一个中断优先级,但是这八个位实际只使用高四位。
2024-10-06 19:47:58
2078
原创 Mkdm的STM32单片机学习日记:GPIO简介 + 点亮LED + 按键控制LED
快速翻转,只需要两个时钟周期就可以完成一次翻转(如果是F1,最大工作频率是72MHz,而GPIO的频率是36MHz)每一个端口都可以中断1.工作电压范围:2V到3.6V(一般接3.3V)2.GPIO识别电压范围:CMOS端口(不能兼容5V):-0.3V到1.164V是低电平识别范围,1.833V到3.6V是高电平识别范围,在两者之间的电压是不确定值TTL端口(可以兼容5V,在手册中标着FT)3.GPIO输出电流:单个IO口,最大输出25mA(芯片的总输入输出电流最大是150mA)
2024-10-06 15:36:23
1080
原创 Mkdm Verilog:入门第一节
Veilog有一个特定的模块结构:module 模块名(端口列表);端口声明;参数声明;接一些语句endmoduleeg:端口列表:是所有输入与输出端口,逗号隔开端口信号声明:输入输出属性(input,output,inout),信号数据类型(reg寄存器,wire线,默认为wire),信号的位宽(一次能传输的信号量,默认为1)(位宽:reg[3:0] Q1 :表示定义一个reg类型的Q1,位宽是4,索引是0到3)
2024-09-25 09:30:56
560
原创 Mkdm的51单片机学习日记:I2C总线与E2PROM
在前面我们学习了UART串口异步通信,现在我们要学习第二种常用的通信协议I2C,I2C总线是两线式串行总线,两条线可以挂多个参与通信的器件,并且每一个器件都可以作为主机I2C属于同步通信,SCL时钟线负责收发时钟节拍,SDA数据线负责传输数据UART多用于板间通信比如:计算机与单片机I2C多用于板内通信,比如单片机与E2PROM之间的通信。
2024-07-15 17:57:59
696
原创 Mkdm的51单片机学习日记:1602液晶与串口应用
我们下面将学习时序图的理解:上面是1602液晶显示屏的读写时序图,一般会有一个表格表明这些标号的意义tc:E的周期不可以小于400ns,但是由于单片机的一个机器周期约为1us,所以完全没有问题tpw:pulse width E的高电平最小也要持续150nstR,tF:即rise和fall两个沿的时间不可以超过25nstsp1:RS和RW引脚必须保持30ns,然后E才可以变成高电平(没有30nsE变成高电平可能就检测RS和RW出错了)
2024-07-12 10:43:13
159
原创 Mkdm的51单片机学习日记:指针基础与1602液晶的初步认识
1602液晶就是16*2,有两行,每一行有16个字符,实际工作电流不止2mA,因为除了液晶工作过需要2mA以外,还有黄绿色的背光的LED,所以总电流有大约10-20mA1602液晶一共有16个引脚引脚1,2,15,16就分别接电源和地就可以引脚3:液晶偏压信号,用来调整显示的黑点与不显示的黑点之间的对比度,可以通过电位器调整电压来改变对比度引脚4:数据命令选择段,RS,如果要写入或者读取数据就用High高电平,如果是命令就用低电平引脚5:读写选择端:高电平就读,低电平就写。
2024-07-09 10:25:25
674
原创 Mkdm的51单片机学习日记:UART串口通信
单片机要与传感器,外围芯片,其他单片机等进行通信UART串行通信是单片机常用的通信技术,即Universal Asynchronous Receiver/Transmitter,通常用于单片机之间或者单片机与电脑之间的通信。
2024-07-04 20:12:27
292
原创 Mkdm的51单片机学习日记:RAM区域划分与长短按键的应用
STC89C52一共有512字节的RAM,这512字节是分块的,块与块之间物理结构和用法有区别51单片机的RAM分为片内和片外,片内RAM地址:0x00H到0x7F,一共128B同时加上扩展片内RAM,总共是0x00到0xFF一共256B片外RAM地址:0x0000到0xFFFF,一共64KB在如今的51单片机内,片外RAM也一般封装在芯片内我们可以使用以下关键字来实现数据存储到相应的RAM区域内:data:片内,0x00到0x7F,默认位置,执行速度最快。
2024-07-02 10:48:27
808
原创 Mkdm的51单片机学习日记: PWM < Pulse Width Modulation脉冲宽度调制 >
需要使用两个定时器,Timer0负责输出PWM,当检测到高电平就按需输出低电平,检测到高电平就按需输出高电平,Timer1负责每过一段时间就要改变占空比。举个例子,如果低电平可以使得LED点亮,如果波形点亮6ms,熄灭4ms,另外一个波形点亮4ms,熄灭6ms,第一个波一定比第二个波要亮。由上面的程序启发我们,如果可以将多种亮度等级连续起来,就可以实现亮度的渐变,俗称“呼吸灯”写一个程序,在一个小灯上依次实现三种占空比,就会实现三种亮度等级。脉冲宽度调制就是改变脉冲宽度来实现不同效果。
2024-07-01 16:23:27
310
原创 Mkdm的单片机学习日记:数码管刷新算法改进与精确秒表实现
举个例子,我们在修改TMOD这个sfr的状态的时候我们不能直接去选址去修改某一位的数值如果我们需要两个Timer同时工作,那么我们不希望在改变Timer0的时候改变Timer1的状态我们如果要修改其中的某一位或者某几位的时候,可以用到按位或和按位与的技巧< & | >//先将后四位统统清零,然后再加上后四位的所需要的值根据这个技巧,我们来改进一下数码管刷新算法:多次重复的switch语句显得非常冗余;
2024-06-29 18:27:14
332
原创 Mkdm的单片机学习日记:步进电机与蜂鸣器
注意:在实际的51单片机中IO口很少使用三极管,一般都是用MOS管,但是这里可以将T2看成NPN,将T1看成PNP先讲:开漏输出就是准双向去掉了内部上拉电阻,但是必须要有外部上拉电阻,如果,没有外部上拉电阻,内部输出高电平,经过反相器变成低电平,MOS管不导通,那么IO口电平就是不确定状态。如图,没有电阻限流,导致电流输出能力较大,驱动能力强通常用来做输入引脚的时候将IO口设为高阻态。
2024-06-27 20:30:12
887
原创 Mkdm的单片机学习日记:简易加法运算器(2024.07.03更新:加减乘除运算器)
main函数中的循环内调用函数KeyDriver,实现按键动作检测,如果发生变化,在KeyDriver中调用函数keyAction,根据检测到的按键的变化去决定实现什么样的功能,比如数字按键被按下了,就在数码管上显示数字。数字键0,ESC(清0),回车(=),向右键。在中断函数中,分别实现数码管led的扫描刷新,以及矩阵按键的扫描刷新。数字键4,5,6,向左键。数字键7,8,9,向下键。既要实现矩阵键盘的扫描,又要完成数码管的动态显示。矩阵按键:数字键1,2,3,向上键(+)
2024-06-27 17:27:14
235
原创 Mkdm的单片机学习日记:按键学习
对于STC89C52RC单片机而言正常工作电压是一个范围(3.7V到5.5V),5V是范围内最典型常用的电压器件的正常工作电压并不是一个固定的值,只要在范围内即可。
2024-06-27 15:57:11
1717
原创 Mkdm的单片机学习日记:数码管的显示
先介绍中断使能寄存器(IE):注意IE的第7位,是总使能位,相当于总开关,而0-5这6个相当于分开关,分别掌管不同的中断开启,如果想要使得定时器0中断,就要:EA=1;ET0=1;这两个使能都要开启当开启中断以后,如果定时器发生溢出,就立即放下main函数中while循环的工作,去执行中断函数的程序,将定时1ms的程序放在中断程序里面。
2024-06-25 09:20:45
1585
原创 Mkdm的单片机学习日记:定时器
首先,时钟周期与机器周期是两个不同的概念时钟周期:晶振是11.0592Mhz,时钟周期为1/11059200s机器周期:在51标准架构下,一个机器周期是12个时钟周期,即12/11059200s。
2024-06-23 17:16:00
66
原创 Mkdm的51单片机学习日记:C语言基础以及流水灯的实现
2 将a的二进制位右移2位,左补0 或者 左补1得看被移数是正还是负。定义:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
2024-06-23 14:58:31
188
原创 Mkdm的51单片机学习日记:硬件基础知识学习
三极管可以分为:PNP型和NPN型(p即positive,n即negative)箭头朝里的就是PNP型(正指向负),一共有三个极:积极(base),发射极(emitter)即带箭头的,集电极(collector)
2024-06-23 14:35:27
697
原创 Mkdm的51单片机学习日记:点亮LED
2.晶振:提供精准时钟信号,芯片的两个引脚接晶振,外加两个电容,电容可以帮助晶振起振,并维持振荡信号稳定。sbit就是对模块里的8个开关进行赋值用的,这条语句以后LED就代表了P0.0口(取了个名字)如图可以看到keil给出的头文件中已经全部定义好了,P0是一个功能模块,住在0x80的房间里。3.SFR:特殊功能寄存器,单片机每一个功能都会对应一或多个sfr。1.FLASH:程序存储空间,可重复擦写且容量较大。3.复位电路:上电复位,手动复位,程序自动复位。1.电源:STC89C52用的是5V电源。
2024-06-22 20:49:27
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人