
51学习笔记
摇滚马侬
知识的广度来自知识的深度。
展开
-
十二、IIC总线和EEPROM
一、IIC总线简介IIC总线主要用于板内通信和外围设备,特别是外部存储,有数据线SDA和时钟SCL。IIC总线可以并联多个设备,有起始信号,数据传输和停止信号。从IIC总线中可以看出,组成为线与的关系,任何一个器件都可以拉低电平。二、IIC通信时序解析起始信号:SCL保持高电平,当SDA产生一个下降沿时,表示通讯开始。数据:当SCL为低电平时,SDA信号可以发生改变,表示数据部分。当...原创 2020-02-16 19:16:59 · 1233 阅读 · 0 评论 -
十一、通讯时序分析和多.c文件
一、通信时序分析单片机在和外设进行通信时,需要一定的操作时序,并且操作时序之间具有一定的时间间隔,具体数值要求可与查阅相关资料。二、多.c文件在一个大的项目中,如果把所有的模块都放在同一个.c文件中,代码就会显得特别繁琐,修改代码时也很不方便,为了解决这一问题,可以将不同的功能放入不同的.c文件中,这样,代码不仅更加有条理,也更加便于修改。extern的使用:在主程序中,如果要引用其...原创 2020-02-14 21:22:08 · 336 阅读 · 0 评论 -
十、指针基础和1602液晶的初步认识
一、指针基础该单片机中,总内存大小为512M,其中片内216M,片外216M。指针,以字节为寻址单位。char:1字节int:2字节long:4字节定义一个指针:*P去一个变量的地址:&P指针也是一个变量,只不过这个变量存放的是一个地址,并且,布置直接给指针赋值sizeof是一个常量,他返回的是一个变量的字节大小。实例一:#include<reg52.h&...原创 2020-02-12 21:17:42 · 383 阅读 · 0 评论 -
九、串口通信
一、串口通信实例:#include<reg52.h>sbit PIN_RXD = P3^0;//receive the pinsbit PIN_TXD = P3^1;//the out pinbit RxdEnd = 0;bit RxdOrTxd = 0; //0是接收,1是发送bit TxdEnd = 0;unsigned char RxdBuf = 0;un...原创 2020-02-11 23:53:06 · 546 阅读 · 0 评论 -
八、实例综合
一、强制类型转换在进行数据运算的时候,有时候会出现数据溢出现象,为了解决这一问题,可采用数据强制转换的方法。二、实例实例一:数字秒表实例#include <reg52.h>sbit ADDR3 = P1^3;sbit ENLED = P1^4;sbit KEY1 = P2^4;sbit KEY2 = P2^5;sbit KEY3 = P2^6;sbit KEY4...原创 2020-02-11 20:54:15 · 170 阅读 · 0 评论 -
七、步进电机和蜂鸣器
一、步进电机简介步进电机工作时,有四拍和八拍两种模式,八拍是在四拍的基础上,同时接通两个相邻引脚,是步进电机转动一个中间角度从而形成八拍。在该步进电机中,转动一个定子角度需要八个脉冲,转动一圈需要64个脉冲,由于减速比是1:64,所以,实际上外部齿轮转动一圈需要4096个脉冲。但是,这里的1:64只是一个近似值,所以当转动多圈时,就会产生明显的偏差。代码一:让电机转起来#include...原创 2020-02-10 22:59:46 · 1353 阅读 · 0 评论 -
六、函数进阶与按键
一、单片机最小系统解析1、电源常用的单片机电源系统有5V和3.3V,但是这只是一个范围,并不是绝对的,超过这个范围,单片机就会烧坏,低于这个范围,单片机就无法正常工作。2、晶振晶振分有源晶振和无源晶振,有源晶振更加准确。3、复位复位时间:t = 1.2RC二、函数调用三、独立按键原理要想能够正确读取外部按键,内部输出必须是高电平,取反后为低电平,NPN型三极管不导通,当按键为...原创 2020-02-09 16:15:31 · 384 阅读 · 0 评论 -
五、变量进阶与LED点阵
一、局部变量和全局变量局部变量一般存在函数的内部,不占用内存,全局变量的作用范围为整个工程,占用内存,一般情况下,能使用局部变量就不适用全局变量,减少内存占用,并且,使用全局变量会使代码变得更加复杂,降低移植性。二、自动变量和静态变量自动变量是可以变动的变量,通常用auto进行声明,可以省略。自动变量在代码每次运行到该位置的时候都会对其进行重新赋值,例如在程序的开头处声明的变量,都是动态...原创 2020-02-07 23:23:00 · 323 阅读 · 0 评论 -
四、中断与数码管动态显示
一、C语言知识1、数组数组初始化的时候,可以不指定数组长度,但是指定数组长度后,必须保证数组的初始化长度小于等于指定长度,未初始化的元素默认值为0。2、if语句3、switch语句如果不加break,则会继续执行剩下的语句。二、中断中断解决了多线程工作的问题,通过设置或默认中断优先级可以控制多个任务同时进行,在使用中断的过程中,一定先使能中断。三、实例//使用中断控制数...原创 2020-02-06 16:37:01 · 3001 阅读 · 0 评论 -
三、定时器和计数器
一、逻辑运算分逻辑运算和按位运算二、定时器原理每一个单片机都含有晶振,比如本次学习的51单片机,他的晶振频率为11.0592MHZ。时钟周期:1/频率S机器周期:单片机完成一个操作的最小时间,该单片机为12个时钟周期定时器:打开定时器后,定时器的存储寄存器每经过一个机器周期数值自动加一三、定时器使用方法1、模式选择GATE:常用于检测脉冲宽度,当TR0为1时,INT1为1时...原创 2020-02-06 13:11:38 · 370 阅读 · 0 评论 -
二、流水灯实现
一、C语言数据类型C语言有四种数据类型,字符型并不是用来表示字符,他只是一种表示,代表数据的取值范围,在编程的过程中,因尽量选择较小的数据范围,这样可以节省空间,同时,在选择数据格式的时候,要满足程序设计要求,防止数据溢出。二、C语言语法函数值类型代表的是函数的返回值类型。三、实例#include<reg52.h>sbit ADDR0 = P1^0;sbit ADD...原创 2020-02-06 00:12:26 · 297 阅读 · 0 评论 -
一、点亮你的LED小灯
一、单片机的三大资源1、FLASH:程序存储空间,可读可写,相比于ROM,速度更快,并且可以写入2、RAM:内存,用来存储用户数据等,可读可写。3、SFR:特殊功能寄存器,在单片机的内存分派中,往往是连续的一段内存负责某一功能,因此,将具有某一特殊功能的内存成为特殊功能寄存器,为了方便开发人员,有是嵌入式开发人员会事先声明一部分内存,比如‘reg2.h’头文件,包含了很多的特殊功能寄存...原创 2020-02-04 22:51:59 · 362 阅读 · 0 评论