Mkdm的51单片机学习日记
文章平均质量分 72
51单片机,proteus实现所有电路
Mkdm
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mkdm的51单片机学习日记:C语言基础以及流水灯的实现
2 将a的二进制位右移2位,左补0 或者 左补1得看被移数是正还是负。定义:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。原创 2024-06-23 14:58:31 · 264 阅读 · 0 评论 -
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 · 322 阅读 · 0 评论 -
Mkdm的单片机学习日记:数码管的显示
先介绍中断使能寄存器(IE):注意IE的第7位,是总使能位,相当于总开关,而0-5这6个相当于分开关,分别掌管不同的中断开启,如果想要使得定时器0中断,就要:EA=1;ET0=1;这两个使能都要开启当开启中断以后,如果定时器发生溢出,就立即放下main函数中while循环的工作,去执行中断函数的程序,将定时1ms的程序放在中断程序里面。原创 2024-06-25 09:20:45 · 1657 阅读 · 0 评论 -
Mkdm的单片机学习日记:定时器
首先,时钟周期与机器周期是两个不同的概念时钟周期:晶振是11.0592Mhz,时钟周期为1/11059200s机器周期:在51标准架构下,一个机器周期是12个时钟周期,即12/11059200s。原创 2024-06-23 17:16:00 · 104 阅读 · 0 评论 -
Mkdm的51单片机学习日记:硬件基础知识学习
三极管可以分为:PNP型和NPN型(p即positive,n即negative)箭头朝里的就是PNP型(正指向负),一共有三个极:积极(base),发射极(emitter)即带箭头的,集电极(collector)原创 2024-06-23 14:35:27 · 772 阅读 · 0 评论 -
Mkdm的51单片机学习日记:点阵LED
proteus仿真的三极管太sb了,真不想管了。原创 2024-06-25 10:28:24 · 287 阅读 · 0 评论 -
Mkdm的51单片机学习日记:一个交通灯实例
用LED8和7模拟绿灯,1和2模拟红灯,4和5模拟黄灯。原创 2024-07-02 08:41:01 · 85 阅读 · 0 评论 -
Mkdm的单片机学习日记:数码管刷新算法改进与精确秒表实现
举个例子,我们在修改TMOD这个sfr的状态的时候我们不能直接去选址去修改某一位的数值如果我们需要两个Timer同时工作,那么我们不希望在改变Timer0的时候改变Timer1的状态我们如果要修改其中的某一位或者某几位的时候,可以用到按位或和按位与的技巧< & | >//先将后四位统统清零,然后再加上后四位的所需要的值根据这个技巧,我们来改进一下数码管刷新算法:多次重复的switch语句显得非常冗余;原创 2024-06-29 18:27:14 · 371 阅读 · 0 评论 -
Mkdm的单片机学习日记:按键学习
对于STC89C52RC单片机而言正常工作电压是一个范围(3.7V到5.5V),5V是范围内最典型常用的电压器件的正常工作电压并不是一个固定的值,只要在范围内即可。原创 2024-06-27 15:57:11 · 1795 阅读 · 0 评论 -
Mkdm的51单片机学习日记:I2C总线与E2PROM
在前面我们学习了UART串口异步通信,现在我们要学习第二种常用的通信协议I2C,I2C总线是两线式串行总线,两条线可以挂多个参与通信的器件,并且每一个器件都可以作为主机I2C属于同步通信,SCL时钟线负责收发时钟节拍,SDA数据线负责传输数据UART多用于板间通信比如:计算机与单片机I2C多用于板内通信,比如单片机与E2PROM之间的通信。原创 2024-07-15 17:57:59 · 790 阅读 · 0 评论 -
Mkdm的单片机学习日记:步进电机与蜂鸣器
注意:在实际的51单片机中IO口很少使用三极管,一般都是用MOS管,但是这里可以将T2看成NPN,将T1看成PNP先讲:开漏输出就是准双向去掉了内部上拉电阻,但是必须要有外部上拉电阻,如果,没有外部上拉电阻,内部输出高电平,经过反相器变成低电平,MOS管不导通,那么IO口电平就是不确定状态。如图,没有电阻限流,导致电流输出能力较大,驱动能力强通常用来做输入引脚的时候将IO口设为高阻态。原创 2024-06-27 20:30:12 · 1030 阅读 · 0 评论 -
Mkdm的51单片机学习日记:UART串口通信
单片机要与传感器,外围芯片,其他单片机等进行通信UART串行通信是单片机常用的通信技术,即Universal Asynchronous Receiver/Transmitter,通常用于单片机之间或者单片机与电脑之间的通信。原创 2024-07-04 20:12:27 · 502 阅读 · 0 评论 -
Mkdm的51单片机学习日记: PWM < Pulse Width Modulation脉冲宽度调制 >
需要使用两个定时器,Timer0负责输出PWM,当检测到高电平就按需输出低电平,检测到高电平就按需输出高电平,Timer1负责每过一段时间就要改变占空比。举个例子,如果低电平可以使得LED点亮,如果波形点亮6ms,熄灭4ms,另外一个波形点亮4ms,熄灭6ms,第一个波一定比第二个波要亮。由上面的程序启发我们,如果可以将多种亮度等级连续起来,就可以实现亮度的渐变,俗称“呼吸灯”写一个程序,在一个小灯上依次实现三种占空比,就会实现三种亮度等级。脉冲宽度调制就是改变脉冲宽度来实现不同效果。原创 2024-07-01 16:23:27 · 375 阅读 · 0 评论 -
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 · 725 阅读 · 0 评论 -
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 · 280 阅读 · 0 评论 -
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 · 267 阅读 · 0 评论 -
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 · 956 阅读 · 0 评论
分享