PIC16F877单片机的图形液显示模块接口技术

时间:2023年07月16日

/

来源:yfbeyond

/

编辑:本站小编

收藏本文

下载本文

下面小编给大家整理的PIC16F877单片机的图形液显示模块接口技术,本文共7篇,希望大家喜欢!本文原稿由网友“yfbeyond”提供。

篇1:PIC16F877单片机的图形液显示模块接口技术

PIC16F877单片机的图形液显示模块接口技术

摘要:详述PIC16F877单片机的MG-12232图形点阵式液晶显示器的硬件接口电路特点和接口软件编程方法。

关键词:PIC16F877 LCD 接口

引言

由于液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄等其他显示器无法比拟的优点,它广泛用于各种智能型仪器和低功耗电子产品中。点阵式(或图形式)LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。本文在简介液晶显示器MG-12232的驱动器SED1520F0A的结构、功能的`基础上,介绍了PIC16F877单片机的LCD硬件接口电路和软件编程特点。

一、PIC16F877与MG-12232的硬件接口电路

1.SED1520F0A的接口信号

SED1520F0A属行列驱动及控制合一的小规模液晶显示驱动芯片,电路简单,经济实用,内含振荡器,只须外接振荡电阻即可工作。模块工作的稳定性好。SED1520F0A与微处理器的接口信号如下。

DB0~DB7:数据总线。

A0:数据/指令选择信号。A0=1表示出现在数据总线上的是数据;A0=0,表示出现在数据总线上的是指令或读出的状态。

RES:接口时序类型选择。RES=1为M6800时序,其操作信号是E和R/W;RES=0为Intel8080时序,操作信号是RD和WR。

RD(E):在Intel 8080时序时为读,低电平有效;在M6800时序时为使能信号,是个正脉冲,在下降沿处为写操作,在高电平时为读操作。

WR(R/W):在Intel 8080时序时为写,低电平有效;在M6800时序时为读、写选择信号,R/W=1为读,R/W=0为写。

SED1520F0A与两种总线的接口信号和时序的详细资料见液晶显示模块使用手册。

2.MG-12232模块的引脚说明

MG-12232模块共有18个引脚,各引脚定义如表1所列。

表1 MG-12232模块的引脚定义

序  号符  号状  态功  能  说  明1Vcc-逻辑电源正2GND-

[1] [2] [3] [4] [5] [6] [7]

篇2:单片机的图形液显示模块接口技术操作方法

摘要:详述PIC16F877单片机的MG-12232图形点阵式液晶显示器的硬件接口电路特点和接口软件编程方法。

关键词:PIC16F877LCD接口

引言

由于液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄等其他显示器无法比拟的优点,它广泛用于各种智能型仪器和低功耗电子产品中。点阵式(或图形式)LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。本文在简介液晶显示器MG-12232的驱动器SED1520F0A的结构、功能的基础上,介绍了PIC16F877单片机的LCD硬件接口电路和软件编程特点。

一、PIC16F877与MG-12232的硬件接口电路

1.SED1520F0A的接口信号

SED1520F0A属行列驱动及控制合一的小规模液晶显示驱动芯片,电路简单,经济实用,内含振荡器,只须外接振荡电阻即可工作。模块工作的稳定性好。SED1520F0A与微处理器的接口信号如下。

DB0~DB7:数据总线。

A0:数据/指令选择信号。A0=1表示出现在数据总线上的是数据;A0=0,表示出现在数据总线上的是指令或读出的状态。

RES:接口时序类型选择。RES=1为M6800时序,其操作信号是E和R/W;RES=0为Intel8080时序,操作信号是RD和WR。

RD(E):在Intel8080时序时为读,低电平有效;在M6800时序时为使能信号,是个正脉冲,在下降沿处为写操作,在高电平时为读操作。

WR(R/W):在Intel8080时序时为写,低电平有效;在M6800时序时为读、写选择信号,R/W=1为读,R/W=0为写。

SED1520F0A与两种总线的接口信号和时序的详细资料见液晶显示模块使用手册。

2.MG-12232模块的引脚说明

MG-12232模块共有18个引脚,各引脚定义如表1所列。

表1MG-12232模块的引脚定义

序号符号状态功能说明1Vcc-逻辑电源正2GND-逻辑电源地3V0-液晶显示驱动电源4RES-接口时序类型选择5E2输入主工作方式IC使能信号6E2输入从工作方式IC使能信号7R/W输入读/写选择信号8A0输入寄存器选择信号9~16DB0~DB7三态数据总线(低位)17SLA-18SLK-背光灯负电源

3.PIC16F877与MG-12232模块的接口电路

现以功能强、价格低的PIC16F877为例说明PIC与MG-12232模块的硬件接口电路。其接口控制时序采用M6800操作时序,这样SED1520F0A引出的控制信号R/W,A0,E1和E2由PIC16F877的I/O端口portb的4个脚控制。接口电路如图1所示。图中利用可调电阻R3实现液晶的背光亮度调节,直接用电阻R2驱动液晶的背光灯。由于PIC16F877的位操作指令丰富,所以用软件不难模拟出M6800操作时序。

二、接口软件编程

1.SED1520F0A指令集

SED1520F0A液晶显示驱动器有13条指令。表2所列的以与M6800系列MPU接口为例(RES=1)而总结出的指令。

表2SED1520F0A指令集

指令名称控制信号控制代码R/WA0D7D6D5D4D3D2D1D0显示开/关指令001010111I/O显示起始行设置00110显示起行(0~31)设置页地址00101110页地址(0~3)设置列地址00

列地址(0~79)

读状态指令10BUSYADCOFF/ONRESET0000写数据01显示的数据读数据11显示的数据ADC选择指令0010100000/1静态驱动开/关0010100100/1占空比选择0010101000/1改写开始指令0011100000改写结束指令0011101110复位0011100010

2.MG-12232模块的编程

下面是以图1的接口电路为例编写的只含E1主方式的程序(表1中E1=1,E2=0)。E2从方式(表1中E1=0,E2=1)的程序类推。

在系统程序的初始化部分应该对程序中用到的寄存器和临时变量作说明,如:

lcdfialequ0x20;存放标志位

sbdataequlcdflag+1;存放显示数据

clmaddequsbdata+1;存放列地址

pageaddequclmadd+1;存放页地址

pagenumequpageadd+1;存放总页数

clmsumequpagenum+1;存放总列数

intscodeequclmsum+1;存放指令代码

读液晶显示器状态子程序

StebsfSTATUS,RP0;选中存储区1

movlw0xff

movwfTRISD;设置D口为输入

bcfSTATUS,RP0;选中存储区0

bsfPORTB,4;E1=1

bsfPORTB,1;R/W=1

bcfPORTB,0;A0=0

TaemovfPORTD,0;将状态字读入W中

movwflcdfiag;将W中的状态字存入lcdfiag中

btfsclcdflag,7;判断D7位是否为0

gotoTae;D7=1,为忙状态

return

对液晶显示器发指令子程序(指令保存在W寄存器中)

Cwe

Movwfintscode;指令暂存intscode

BcfPORTB,1;R/W=0

BcfPORTB,0;A0=0

mo

vfintscode,0

movwfPORTD

bcfPORTB,4;E1=0写入指令

return

对液晶显示器写数据子程序(数据保存在W寄存器中)

Dwe

Movwfsbdata;数据暂存sbdata

Movfclmadd,0

CallCwe;设置列地址

CallSte

BsfSTATUS,RP0

clrfTRISD;设置D口为输出方式

bcfSTATUS,RP0

bsfPORTB,4;E1=1

bcfPORTB,1;R/W=0

bsfPORTB,0;A0=1

movfsbdata,0

movwfPORTD

bcfPORTB,4;E1=0,写入数据

callSte

inctclmadd,1;列地址加1

return

液晶显示器开显示、关显示和清屏子程序

Disp;开E1显示

movlw0xal;将控制命令放在W中

callCwe

bsfPORTB,4;E1=1

callSte;判是否忙

bsfSTATUS,RP0

clrfTRISD;设置D口输出方式

bcfSTATUS,RP0

bsfPORTB,4;E1=1

bsfPORTB,1;R/W=1

bcfPORTB,0;A0=0

bsfSTATUS,RP0

movlw0xff

movwfTRISD;设置D口输入方式

bcfSTATUS,RP0

movfPORTD,0

movwflcdflag;读入状态并查询

btfsclcdflag,5;是否确定打开

gotoDisp

return

Disoff;关E1显示

movlw0xae;控制命令入在W中

callCwe

bsfPORTB,4;E1=1

bsfPORTB,1;R/W=1

bcfPORTB,0;A0=0

bsfSTATUS,RP0

movlw0xff

movwfTRISD

bcfSTATUS,RP0

movfPORTD,0

movwflcdfiag;读入状态并查询

btfsslcdfiag,5;判是否关闭

gogoDisoff

return

Cler;清屏

movlw0xb8;设置页地址代码

movwfpageadd

movlw0x04

movwfpagenum;设置总页数

clr1movfpageadd,0

callCwe

movlw0x50;设置总列数

movwfclmsum;80或60列

movlw0x00

movwfclmadd;设置起始列

clr2movlw0x00

callDwe;写入00H

clardecfszclmsum,1;本页未清完

gotopageadd,1;页号增1

decfszpagenum,1;4页未清完

gotoclr1;返回继续

return

有了以上的通用子程序,就可以构造出各种显示程序,如字符、汉字、曲线等。当然,在这些程序执行前必须对液晶进行初始化。初始化的顺序为:关显示→正常显示驱动设置→占空比设置→复位→ADC选择→清屏→开显示。程序如下:

初始化子程序

Lcdinit

callDisoff;关显示

movlw0xa4;静态显示驱动

callCwe

movlw0xe2;复位

callCwe

movlw0xa0;ADC选择正常输出

callCwe

movlw0x9;占空比为1/32

callCwe

callCler;清零

callDisp;开显示

return

对于字符、汉字和曲线显示的原理是类似的。它们都是以字节为单位进行显示。关键在于形成字模库时必须保证每个上字节数据的最高位是与每一列最下面一个点相对应,最低位与每一列最上面点相对应。当然,这可以用专门的软件来生成相应的代码,然后再将这些代码逐字节地写到相应的页和列。

结束语

PIC单片机与液晶模块的接口只在硬件上满足液晶模块的接口要求,软件上能够模拟出要求的时序,并且初始化正确后,就可以随心所欲地显示信息了。

以上接口电路和程

序在PIC试验板上调试通过,可作为其他单片机与LCD接口的参考。

[单片机的图形液显示模块接口技术操作方法]

篇3:单片机显示接口实验报告

一、实验目的

1.了解温度传感器电路的工作原理

2. 了解温度控制的基本原理

3. 掌握一线总线接口的使用

二、实验说明

这是一个综合硬件实验,分两大功能:温度的测量和温度的控制。 1.DALLAS最新单线数字温度传感器DS18B20简介

Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

DS18B20测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:

DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625

即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。

例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为

DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的`易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。

低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

2.本实验在读取温度的基础上,完成类似空调恒温控制的实验。用加热电阻代替加热电机。温度值通过LED静态显示电路以十进制形式显示出来,制冷采用自然冷却。

三、实验内容及步骤

本实验需要用到单片机最小应用系统(F1区)、串行静态显示(I3区)和温度传感器模块(C3区)。

1.DS18B20的CONTROL接最小应用系统P1.4,OUT接最小应用系统P2.0,最小系统的P1.0,P1.1接串行静态显示的DIN,CLK端。

2.用串行数据通信线连接计算机与仿真器,然后将仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加TH44_ DS18B20.ASM源程序,进行编译,直到编译无误。

4.编译无误后,全速运行程序。程序正常运行后,按下自锁开关‘控制’SIC。LED数显为 “XX”为十进制温度测量值, “XX”为十进制温度设定值,按下自锁开关“控制”SIC则加热源开始加热,温度也随着变化,当加热到设定的控制温度时如40度时,停止加热。

5.也可以把源程序编译成可执行文件,用ISP烧录器烧录到89S52/89S51芯片中。(ISP烧录器的使用查看附录二) 四、源程序

;单片机内存分配申明!

TEMPER_L EQU 29H  ;用于保存读出温度的低8位TEMPER_H EQU 28H  ;用于保存读出温度的高8位FLAG1 EQU 38H  ;是否检测到DS18B20标志位A_BIT EQU 20H  ;数码管个位数存放内存位置B_BIT EQU 21H  ;数码管十位数存放内存位置LEDBUF EQU  30HTEMPEQU  55HDIN  BIT  P1.0CLK BIT  P1.1

ORG 0000HLJMP STARTORG 0100H START: SETBP1.4 MAIN:

LCALL GET_TEMPER;调用读温度子程序

;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度 ;显示范围00到99度,显示精度为1度

;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位

;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度

;这个转化温度的方法可是我想出来的哦~~非常简洁无需乘于0.0625系数

MOV A,29H

MOV C,40H;将28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,A

LCALL DISPLAYRESULT

LCALL DISPLAYLED;调用数码管显示子程序LCALL DELAY1 AJMP MAIN

; 这是DS18B20复位初始化子程序 INIT_1820:SETB P2.0NOPCLR P2.0

;主机发出延时537微秒的复位低脉冲MOV R1,#3 TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1

SETB P2.0;然后拉高数据线NOPNOPNOPMOV R0,#25H TSR2:

JNB P2.0,TSR3;等待DS18B20回应DJNZ R0,TSR2

LJMP TSR4 ; 延时 TSR3:

SETB FLAG1; 置标志位,表示DS1820存在LJMP TSR5 TSR4:

CLR FLAG1 ; 清标志位,表示DS1820不存在

篇4:单片机接口技术课程教学新方法探索

单片机接口技术课程教学新方法探索

本文针对当前单片机课程教学过程中普遍存在的.问题,结合自己多年来从事单片机的教学和科研经验,提出了以项目设计为主线,以Keil、Proteus等仿真软件平台为手段的单片机课程教学新方法.通过对相关专业的教学实践表明:新方法能有效提高学生的学习兴趣,激发学生学习的主动性和创造性.

作 者:宋志平 作者单位:安徽大学物理与材料科学学院,安徽,合肥,230031 刊 名:中国电力教育 英文刊名:CHINA ELECTRIC POWER EDUCATION 年,卷(期): “”(3) 分类号:G71 关键词:单片机   教学方法   仿真软件平台  

篇5:加速图形接口

AGP(AccelerateGraphicalPort),加速图形接口,随着显示芯片的发展,PCI总线日益无法满足其需求。英特尔于7月正式推出了AGP接口,它是一种显示卡专用的局部总线。严格的说,AGP不能称为总线,它与PCI总线不同,因为它是点对点连接,即连接控制芯片和AGP显示卡,但在习惯上我们依然称其为AGP总线。AGP接口是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz。AGP总线直接与主板的北桥芯片相连,且通过该接口让显示芯片与系统主内存直接相连,避免了窄带宽的PCI总线形成的系统瓶颈,增加3D图形数据传输速度,同时在显存不足的情况下还可以调用系统主内存。所以它拥有很高的传输速率,这是PCI等总线无法与其相比拟的,

由于采用了数据读写的流水线操作减少了内存等待时间,数据传输速度有了很大提高;具有133MHz及更高的数据传输频率;地址信号与数据信号分离可提高随机内存访问的速度;采用并行操作允许在CPU访问系统RAM的同时AGP显示卡访问AGP内存;显示带宽也不与其它设备共享,从而进一步提高了系统性能。AGP标准在使用32位总线时,有66MHz和133MHz两种工作频率,最高数据传输率为266Mbps和533Mbps,而PCI总线理论上的最大传输率仅为133Mbps。目前最高规格的AGP8X模式下,数据传输速度达到了2.1GB/s。AGP接口的发展经历了AGP1.0(AGP1X、AGP2X)、AGP2.0(AGPPro、AGP4X)、AGP3.0(AGP8X)等阶段,其传输速度也从最早的AGP1X的266MB/S的带宽发展到了AGP8X的2.1GB/S。

篇6:MultiMediacard及其与单片机接口

MultiMediacard及其与单片机接口

摘要:MultiMediaCard是Sandisc公司推出的大容量串行Flash存储卡,外形尺寸为32mm×24mm×1.4mm,质量小于2g,7针引脚,便于开发设计小型的移动数码设备。本文重点介绍此类存储器与PIC单片机的接口,给出实际的电路设计和软件代码示例。

关键词:MultiMediaCard 串行Flash存储卡 PIC单片机 接口

1 概述

Sandisc公司推出的大大容量串行Flash存储器产品――MultiMediaCard(MMC),通常叫作多媒体卡。它的体积比SmartMedia还要小,(本网网收集整理)不怕冲击,可反复读写记录30万次,驱动电压2.7~3.6V,可变时钟频率范围为0~20MHz,目前常见的容量为64MB/128MB。ATP Electrionics公司已经率先推出了1GB的高容量MMC。除了体积小、寿命长、容量大等特性外,还具备存储区纠错能力;低功耗;5ms内没有接收到命令字后,自动转入休眠状态;支持热插拔等优点。MMC可以格式化为FAT文件系统,便于上位机读写。

2 MMC简介

2.1 引脚排列及功能

根据存储容量的不同,MMC有SMDB和SDMJ两种构成技术。SMDB即二进制NAND技术(Binary NAND),16MB和32MB容量的MMC卡采用此技术。目前常用的64MB和128MB的MMC采用SDMJ,即MLC(Multi Level Cell)NAND技术。各容量的'MMC卡,其外形尺寸及引脚排列相同,如图1所示。

MMC读写接口可以在MMC和SPI两种通信 协议下工作。MMC是由MMCA协会开发的高性能三线制通信协议,即CMD、CLK、DAT线,最大可寻址64000张MMC卡,单个物理地址可叠放30张卡,支持顺序读写及单/多数据块读写操作,是MMC卡默认的通信协议。SPI协议为可选协议,工作效率不及MMC协议;但SPI协议简单易用,兼容性好,便于和单片机连接使用。本设计采用SPI通信协议,下文将详细介绍。

2.2 内部逻辑结构

MMC卡的内部逻辑结构可分为四部分:MMC/SPI接口、单芯片控制器、数据闪存模块、控制线和数据线。MMC/SPI接口实现与主控制器的通信。单芯片控制器完成接口协议、数据存储检索、纠错码算法、故障诊断处理、电源管理和时钟控制功能。数据内存模块可以实现整个存储空间内的单字节访问,它不是简单的字阵列,而是被分成了多种结构。512个字节构成1个扇区(sector)。根据MMC卡容量的不同,16或32个扇区构成1个擦除族(erase group)。32个擦除族构成1个写保护族(write protect group)。此设计使MMC操作灵活,使用方便。控制线和数据线实现数据存储区的访问,其内部逻辑结构如图2所示。

3 MMC/SPI通信协议

MMC卡上电后,默认进入MMC模式。如果转入SPI模式下工作,需进行模式切换。SPI模式设定流程如图3所示。

如需从SPI模式转入MMC模式,只能切断电源,重新上电,进入默认MMC模式。从实际应用角度出发,SPI模式设计简单,操作方便,但数据传输速率逊于MMC模式。基于设计要求,笔者采用了SPI通信协议。

4 存储器读写接口

4.1 SPI接口及操作模式

SPI接口是一种通用同步串行接口总线,字长为8位,用来与外部设备进行通信。SPI接口利用CLK、DataIn和DataOut三根线进行数据的读写。其中,CLK为时钟信号,有外部控制器提供;Datain和DataOut为数据输入和输出线。CS是MMC片选信号线,在整个SPI操作过程中,必须保持低电平有效信号。

SPI接口共有四种操作模式,分别为0、1、2和3。SPI操作模式决定了设备接收和发送数据时的时钟相位和极性,即决定了时钟信号的上升和下降沿与数据流动方向之间的关系,如图4所示。本设计采用模式3。

4.2 MMC卡命令及答复信号

所有MMC卡命令字长度均为6个字节,传输从高位开始,且包含一个CRC校验字。

命令字索引采用二进制编码。比如CMD0的索引位是000000,CMD39的索引位是100111。MMC卡命令字分为10个命令组,每组由多个命令字组成,完成MMC卡功能设定。SPI模式下的Sandisc MMC卡支持其中的6个命令组,可实现基本设定、数据块读、数据块写、擦除、写保护、MMC卡锁定功能。

MMC卡有多种应答信号格式,传输从高位开始。SPI模式下,存在5种应答信号格式,分别为R1、R2、R3、Busy、R1b。

接收到每个命令后,MMC卡都发送一个格式为R1的应答信号,卡状态查询命令字CMD13除外。此应答信号占1字节,最高位为0,低7位为错误标志。若某位为1,表示存在相应错误。

Busy应答信号长度为多个字节。各位都为0,表示卡正忙。存在非零位表明卡已经准备好接收下一命令。

R2格式应答信号长度为2字节,用于答复卡状态查询命令字CMD13。首字节格式同R1,第2个字节表示的错误类型。

R3格式应答信号长度为5字节,答复卡内OCR豁口读命令CMD58。首字节格式同R1,其余4字节为OCR豁口内容。

R1b格式应答信号包括两部分,R1格式部分和Busy格式可选附加部分。

4.3 MMC在SPI模式下的传输时序

MMC在SPI协议下读写时序如图5所示。主控制器发送读/写命令,当收到OUT传输互上正确的应答信号后,OUT/IN传输线开始读/写操作。

5 MMC卡与单片机接口实例

5.1 硬件电路设计

图6为笔者采用Sandisc公司容量为32MB的MMC卡设计的便携式数据采集系统的一部分。单片机采用美国Microchip公司推出的PIC16F73B。单片机的工作频率为4MHZ,采用Port C的硬件SPI接口进行MMC卡的读写操作。

5.2 软件设计

访问MMC卡存储单元前,需要设定访问块长度。默认长度为512字节。本设计是通过写缓存芯片FM24CL64,达到512字节后转入主存MMC的(硬件电路图应作相应的修改),所以读写长度不再设定。MMC格式化为FAT文件系统的结构后,数据以文件的形式为上位机所读取。

MMC接口部分软件设计流程如图7所示。

5.3 MMC卡SPI初始化与写子程序

因为MMC可以在两种协议下工作,且默认为MMC操作模式,所以必须经过初始化才能在SPI模式下工作。初始化和写子程序代码见收集整理。

图7

篇7:MultiMediacard及其与单片机接口

MultiMediacard及其与单片机接口

摘要:MultiMediaCard是Sandisc公司推出的大容量串行Flash存储卡,外形尺寸为32mm×24mm×1.4mm,质量小于2g,7针引脚,便于开发设计小型的移动数码设备。本文重点介绍此类存储器与PIC单片机的接口,给出实际的电路设计和软件代码示例。

关键词:MultiMediaCard 串行Flash存储卡 PIC单片机 接口

1 概述

Sandisc公司推出的大大容量串行Flash存储器产品――MultiMediaCard(MMC),通常叫作多媒体卡。它的体积比SmartMedia还要小,不怕冲击,可反复读写记录30万次,驱动电压2.7~3.6V,可变时钟频率范围为0~20MHz,目前常见的容量为64MB/128MB。ATP Electrionics公司已经率先推出了1GB的高容量MMC。除了体积小、寿命长、容量大等特性外,还具备存储区纠错能力;低功耗;5ms内没有接收到命令字后,自动转入休眠状态;支持热插拔等优点。MMC可以格式化为FAT文件系统,便于上位机读写。

2 MMC简介

2.1 引脚排列及功能

根据存储容量的不同,MMC有SMDB和SDMJ两种构成技术。SMDB即二进制NAND技术(Binary NAND),16MB和32MB容量的MMC卡采用此技术。目前常用的64MB和128MB的MMC采用SDMJ,即MLC(Multi Level Cell)NAND技术。各容量的MMC卡,其外形尺寸及引脚排列相同,如图1所示。

MMC读写接口可以在MMC和SPI两种通信 协议下工作。MMC是由MMCA协会开发的高性能三线制通信协议,即CMD、CLK、DAT线,最大可寻址64000张MMC卡,单个物理地址可叠放30张卡,支持顺序读写及单/多数据块读写操作,是MMC卡默认的通信协议。SPI协议为可选协议,工作效率不及MMC协议;但SPI协议简单易用,兼容性好,便于和单片机连接使用。本设计采用SPI通信协议,下文将详细介绍。

2.2 内部逻辑结构

MMC卡的`内部逻辑结构可分为四部分:MMC/SPI接口、单芯片控制器、数据闪存模块、控制线和数据线。MMC/SPI接口实现与主控制器的通信。单芯片控制器完成接口协议、数据存储检索、纠错码算法、故障诊断处理、电源管理和时钟控制功能。数据内存模块可以实现整个存储空间内的单字节访问,它不是简单的字阵列,而是被分成了多种结构。512个字节构成1个扇区(sector)。根据MMC卡容量的不同,16或32个扇区构成1个擦除族(erase group)。32个擦除族构成1个写保护族(write protect group)。此设计使MMC操作灵活,使用方便。控制线和数据线实现数据存储区的访问,其内部逻辑结构如图2所示。

3 MMC/SPI通信协议

MMC卡上电后,默认进入MMC模式。如果转入SPI模式下工作,需进

[1] [2] [3]

信息显示与光电技术专业大学生个人职业规划

液相色谱技术进行食品安全检验思考论文

不同方法鉴定差异显示技术RAP-PCR得到差异基因的比较

一种基于KEELOQ的改进加密算法及其在单片机中的实现技术

下载PIC16F877单片机的图形液显示模块接口技术(共7篇)
PIC16F877单片机的图形液显示模块接口技术.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
最新范文更多
    热门文章
      猜你喜欢
      点击下载本文文档