
51单片机驱动
总结了一些单片机驱动知识
文质彬彬online
人生苦短,我爱Python!
展开
-
MCS-51单片机总结——No5.存储之MMC存储卡
MMC存储卡基础知识当单片机需要存储大量数据时,可以使用MMC(Multimedia Card)存储卡。MMC存储卡有7个引脚,支持MMC和SPI(Serial PeripheralInterface)两种串行数据通信模式,在SPI模式中,MMC存储卡可以通过4条信号线完成数据的传输,完全符合SPI数据的规范,这四条信号线为SCK、MISO、MOSI、CS。SPI模式的通信速率比MMC模式通信...原创 2020-04-26 23:04:02 · 1189 阅读 · 0 评论 -
MCS-51单片机总结——No4.存储之AT24C04A
AT24C04A芯片基础知识当51单片机应用系统需要存放一些在掉电后需要保存的数据时,可以使用E2^{2}2PROM。AT24C04是很常用的E2^{2}2PROM芯片。AT24C04A是Atmel公司出品的I2^{2}2C总线接口E2^{2}2PROM,有8KB的内部存储空间,采取8字节/页、256页、2个块的分页方式。AT24C04A的电路简图如上所示,主要有A1、A2、WP、SDA、...原创 2020-04-24 12:25:44 · 4889 阅读 · 0 评论 -
MCS-51单片机总结——No3.存储之62256
8051单片机存储器的基本知识51系列单片机应用系统的存储器可以分为两种:一种是系统代码在运行时所需要的程序变量空间,这种存储器可以称为“程序内存”,类似PC的内存,通常包括各种RAM芯片;另一种是用于短时间或永久存放系统相应的各种数据,这种存储器可以成为“数据内存”,类似PC的硬盘,通常包括E2E^{2}E2PROM、MMC卡等。半导体存储器按读写工作方式可分为两种:只读存储器ROM(Rea...原创 2020-04-23 21:45:47 · 4344 阅读 · 0 评论 -
MCS-51单片机总结——No2.串口应用
8051单片机串口的基本知识51单片机有一个全双工的串行模块,该模块可以通过编程控制为异步工作方式或同步工作方式,是51单片机最常用于和外部设备交互的数据通道。串行控制寄存器 : SCON (地址为 : 0x98)串行数据寄存器 : SBUF (地址为 : 0x99)电源管理寄存器 : PCON (地址为 : 0x97)SCON : 用于对串行模块进行相应控制,支持位寻址,当...原创 2020-04-23 08:30:47 · 1255 阅读 · 0 评论 -
MCS-51单片机总结——No1.定时器/计数器应用
8051单片机定时器/计数器的基本知识概述:51单片机内部集成了两个16位定时/计数器T0和T1,他们可以单独配置为定时器或计数器。当它们被配置为定时器时,将按照预先设置好的长度运行一段时间后产生一个溢出中断;当他们被配置为计数器时,在单片机的外部中断引脚上检测到一个脉冲信号后计数器将加1,如果达到预先设置好的事件数目,就将产生一个中断事件。处于计数工作模式时, 加法计数器对芯片端子T0...原创 2020-03-25 13:55:57 · 2325 阅读 · 0 评论 -
LCD12864经典驱动(详细注释)
#include "bsp.h"/* RW = 1 :读数据 RW = 0 : 写数据 RS = 1 :数据D0-D7与显示RAM交互 RS = 0 :数据D0-D7与指令寄存器交互 E = 1 :读写是能有效(即可以读写)操作的基础 E :下降沿:锁定数据 CS1 = 0:选择LCD的前64位显示 CS2 = 0:选择LCD的后原创 2018-01-16 16:46:02 · 12020 阅读 · 1 评论 -
关于CT107D开发板矩阵按键前两列不工作问题的研究
CT107D开发板矩阵按键原理图如下所示:其中CON3的1引脚和2引脚相连构成矩阵键盘。//经典矩阵按键处理函数unsigned char keyProcess(void){ unsigned char keyTemp = 0; unsigned char keyValue = 0; unsigned char P3_Value = 0; P3...原创 2018-02-26 19:10:54 · 1042 阅读 · 1 评论 -
关于单片机引脚排列方式的最终研究结果
以单片机P1寄存器为例,有以下两种排列方式:第一种:P1^7是高位,即:P1^7 P1^6 P1^5 P1^4 P1^3 P1^2 P1^1 P1^0第二种:P1^0是高位,即:P1^0 P1^1 P1^2 P1^3 P1^4 P1^5 P1^6 P1^7以上两种排列方式对于新手来说总是容易混淆,不知道到底哪一个是正确的,因此,可以使用流水灯测试代码进行验证。 使用CT107D...原创 2018-02-26 20:47:54 · 1702 阅读 · 0 评论 -
51单片机读写EEPROM(AT24C02)
AT24C02的存储容量为2K bit,内容分成32页,每页8Byte,共256Byte,操作时有两种寻址方式:芯片寻址和片内子地址寻址。 (1)芯片寻址:AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0R/W。其中A2,A1,A0可编程地址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为芯片读写...原创 2018-03-18 10:52:14 · 13729 阅读 · 3 评论 -
51单片机C语言编程中对单片机绝对地址访问的两种方法
在进行8051单片机应用系统程序设计时,编程都往往少不了要直接操作系统的各个存储器地址空间。C51程序经过编译之后产生的目标代码具有浮动地址,其绝对地址必须经过BL51连接定位后才能确定。为了能够在C51程序中直接对任意指定的存储器地址进行操作,可以采用扩展关键字“at”、指针、预定义以及连接定位控制命令。在这些方法中,本人认为最简单而有效的方法是用“ _at_ ”关键字来对指定变量存储器空原创 2018-01-31 14:54:45 · 9011 阅读 · 0 评论 -
intrins.h文件解读
文件内容#ifndef __INTRINS_H__#define __INTRINS_H__extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsign原创 2017-12-03 18:01:28 · 14047 阅读 · 4 评论 -
对51系列单片机SPI总线的认识
* UART、 I2C 和 SPI 是单片机系统中最常用的三种通信协议。*1、SPI简介: SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。 SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是原创 2017-12-03 16:00:03 · 1084 阅读 · 0 评论 -
51单片机最简LED驱动
得到8盏LED交替亮灭的实验效果#include void Delay10ms(unsigned int c); // 延时10msvoid main() { while(1) { P0 = 0x00; // 设置 P0 为低电平 Delay10ms(50); // 延时 P0 =转载 2016-11-20 22:58:02 · 1563 阅读 · 0 评论 -
LCD1602驱动程序
文章出处:http://blog.youkuaiyun.com/lczdk/article/details/53224714LCD1602driver_inside.c/*本驱动依赖reg51.h头文件*/#include/*根据实际电路连接修改宏定义和sbit语句*/#define D0_D7 P3 //数据通讯总线,用于写或读指令、显示地址和显示数据sbit转载 2016-11-27 17:35:27 · 1347 阅读 · 0 评论 -
左右循环代码
“crol” 与“cror”其实就是左右循环代码,其具有程序代码简单执行效率高的优点! 现实中的应用很多,例如我们经常见到的流水灯,广告牌,马路上的红绿灯 等。。。 下面是最基本的流水灯代码,流水灯移动的快慢可以改变“void delay()”子程序进行修改,例如:你选用的是20M的精震,你要改成一秒移动一格,那么你就将“for(x=50;x>0;x–)”和“for(y=100;y>0;y–)原创 2016-12-27 21:35:33 · 1441 阅读 · 0 评论 -
关于汉字字库与结构体的一些想法(未完待续)
汉字字库很庞大,如何进行编写汉字字库呢,下面我来讨论讨论如何进行编写。原创 2017-10-01 01:45:57 · 670 阅读 · 0 评论 -
SAA3010T红外解码
SAA3010T使用RC-5编码,有2位起始位(11)、1位控制位(X)、5位系统码(00000)、6位指令码(XXXXXX)。一帧数据共占14位,在第一次按下遥控按键后芯片要经过16位的防抖时间和2位扫描时间才会发送一帧数据,发送的信号被调制在37.91KHz: 起始位是11;控制位1或0交替变化,就是每按下一次按键,控制位交替变化;系统码是00000;指令码是解码的关键,每个按键的指令码原创 2017-11-28 15:08:48 · 975 阅读 · 0 评论 -
两种红外解码方法(RC-5)
外部中断0服务程序内处理:/****************************************************************************函数功能: 外部中断0终端服务初始化函数****************************************************************************/void ispIn原创 2017-11-30 19:24:59 · 2689 阅读 · 0 评论 -
51单片机定时器和波特率
1.引言: 在串行通信中,收发双方发送或接收的数据速率要有一定的约定,我们通过软件对MCS-51串行口编程可以约定四种工作方式。其中,方式0和方式2的波特率时固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。 串行口的四种工作方式对应这三种波特率,由于输入的移位时钟的来源不同,所以各种方式的波特率的计算公式也不同。2.各种方式的波特率介绍工作方式0 方式0时,原创 2017-12-10 10:22:17 · 6772 阅读 · 0 评论 -
8051单片机波特率计算公式(配套C语言例程)
8051单片机使用定时器1工作在方式2的情况下作为串口波特率发生器,其波特率=(2smod /32)×(定时器T1溢出率),其中smod是PCON<7>,表示是否波特率加倍,Fsoc是系统的晶振大小。 波特率公式中:T1溢出率=溢出周期的倒数;溢出周期=(256-TH1)×12/Fosc; 最终公式: 波特率:Baud=(2smod × Fsoc)/(32 ×12×(256-TH1)) 我们原创 2017-12-10 10:31:29 · 4611 阅读 · 0 评论 -
LCD1602知识详解(很详尽的)
1602液晶知识详解:1、1602液晶基础*VSS:电源地信号引脚;*VDD:电源信号引脚;*VEE:液晶对比度调节引脚,接0~5V以调节液晶的显示对比度;*RS:寄存器选择引脚:RS = 1时为数据寄存器;RS = 0时为指令寄存器;*RW:读写选择引脚:RW = 1时,选择读操作;RW = 0时,选择写操作;*E:读写操作选择引脚,下降沿时,数据被写原创 2016-11-14 22:22:44 · 56842 阅读 · 3 评论