开机次数记忆器设计24c02和1602.docx
- 文档编号:10859675
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:34
- 大小:765.96KB
开机次数记忆器设计24c02和1602.docx
《开机次数记忆器设计24c02和1602.docx》由会员分享,可在线阅读,更多相关《开机次数记忆器设计24c02和1602.docx(34页珍藏版)》请在冰豆网上搜索。
开机次数记忆器设计24c02和1602
目录
目录1
1.课程设计与实现的要求与目的2
1.1课程设计与实现的要求2
1.2课程设计与实现的目的2
2.组员分工2
2.1任务分配2
3.开机次数记忆器的设计2
3.1总体设计思路2
3.2单片机的工作原理和工作设计3
3.2.1单片机的引脚3
3.2.2单片机的端口的匹配6
3.324c02的工作原理6
3.3.1AT24c02的基本介绍6
3.3.2IIC总线的介绍7
3.3.3AT24c02的具体介绍7
3.3.4AT24c02的存、取编程9
3.41602液晶简介11
3.4.1.1602的特点11
3.4.2引脚功能12
3.4.31602指令简述如下:
12
3.4.51602液晶与51单片机的接线14
4.开机次数记忆器的实现14
4.1硬件实现14
4.1.1复位电路的实现14
4.1.2显示电路的实现15
4.1.3串行EPROM读写电路实现15
4.1.4整体电路实现16
4.2软件实现17
5.测试21
5.1电路仿真测试21
5.1.1开关机测试21
5.1.2复位测试22
6.总结24
7.参考文献24
1.课程设计与实现的要求与目的
1.1课程设计与实现的要求
以单片机51为核心,使用24C02品行EEPROM进行存储开机次数,用LCD1602显示存储的开机次数,并且单片机复位1次,从24C02中读取数据,然后加1。
1.2课程设计与实现的目的
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广,发展很快。
单片机体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电子电力、机电一体化设备等各个方面。
而此次设计与实现的目的是通过对单片机机与24C02存储芯片串行通信设计,结合以前所学的专业知识,通过这次的设计,把理论联系到实际。
通过对课题的分析,了解课题的任务,进行实际操作,从而更好的地锻炼我们的实际动手操作能力。
另外,提高学习能力,提高对一个陌生的芯片从查找到学习,到会运用的能力。
2.组员分工
2.1任务分配
成员一:
主要搜集存储器24C02的相关资料及电路设计和程序设计全过程的的讨论。
成员二:
主要搜集显示器1602的相关资料及电路设计和程序设计的全过程的讨论。
成员三:
为该组组长,主要搜集与本设计与实现相关的单片机知识,及电路设计和程序设计的全过程的讨论。
3.开机次数记忆器的设计
3.1总体设计思路
该系统的功能概括起来就是能测量开机次数。
要完成此功能,关键在次数的写入和读出,因此只要能累计关机或复位次数,并且能在开机后读出来,即可实现记录的功能。
我们采用89C52和24C02作为基本元件.以口P2.1和P2.0来控制24C02的时钟信号线SCL和数据线SDA,在按下开关或复位键后,通过这两个口来使24C52达到数据的接收和写入的目的,在电路重新工作的时候,又从24C52中读数并通过显示电路显示显示出来。
载入程序,自动初始化,在数码管上显示开机次数,将程序烧入到芯片时,显示的第一次为0。
然后进行判断是否有操作:
若是复位,则存储在24C02中的数据加1,然后立即读出显示在数码管上;若是关机,则24C02里面的数据加1,在再次开机时将数据读出显示在数码管上。
其整个流程图如图3.1-1主程序流程图
图3.1-1主程序流程图
3.2单片机的工作原理和工作设计
强大功能的单片机是此课程设计的主要芯片之一,它的工作原理影响到整个课程设计,因此,我进行设计前我们有必要了解下单片机的基本知识。
在了解了单片机的基本知识后,我们对单片机各引脚进行相应的设计。
3.2.1单片机的引脚
单片机有40只引脚,图3.2.1-1单片机引脚。
引脚功能介绍如下:
⑴电源引脚
电源引脚接入单片机的工作电源
①(40引脚):
接+5V电源。
②
(20引脚):
接地
⑵时钟引脚
2个时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成了1个振荡器,它为单片机提供了时钟控制信号。
2个时钟引脚也可外接独立的晶体振荡器。
①XTAL1(19引脚):
接外部晶体的1个引脚。
该引脚内部是1个反相放大器的输入端。
这个反相放大器构成成了片内振荡器。
如果采用外接晶体振荡器时,此引脚应接地。
图3.2.1-1单片机引脚
②XTAL2(18引脚):
接外部晶振的另一端,在该引脚内部接至内部反相放大器的输出端。
若采用外部时钟振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。
⑶控制引脚
①RST/
(9引脚):
RST(RESET)是复位信号输入端,高电平有效。
当单片机运行时,在此引脚加上持续时间大于2小机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
在单片机正常工作时,此引脚应为
0.5V低电平。
为本引脚的第二功能,即备用电源的输入端。
当主电源
发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM中的信息不丢失,从而使单片机在复位后能继续正常运行。
②ALE/
(30引脚):
ALE引脚输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。
当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器锁存控制信号。
即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率
的1/16。
如果想初步判断单片机芯片的好坏,可以用示波器查看ALE端是否有正脉冲信号输出。
如果有脉冲信号输出,则单片机基本上是好的。
应该注意的是,每当MCS-51访问外部数据存储器时,有1个机器周期中ALE只出现1次,即丢失1个ALE脉冲。
因此,严格来说,用户不宜用ALE作精确的时钟源或定时信号。
ALE端可以驱动8个LS型TTL负载。
为本引脚的第二功能。
在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。
③
(29引脚):
程序存储器允许输出控制端。
在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。
此引脚接外部程序存储器的
端。
端可以驱动8个LS型TTL负载。
如要检查一个MCS-51单片机应用系统上电后,CPU能否正常到外部程序存储器读取指令码,可用示波器查
端有无脉冲输出。
④
/
:
功能为内外程序存储器选择控制端。
当
引脚为高电平时,单片机访问片内程序存储器,但在PC值超过0FFFH时,即超出片内程序存储器的4KB地址范围时,将自动转向执行外部程序存储器内的程序。
当
引脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器。
为本引脚的第二功能,其编程电压为+12V或+5V。
⑷I/O引脚
①P0口:
双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。
②P1口:
8位准双向I/O,可驱动4个LS型TTL负载
③P2口:
8位准双向I/O,与地址总线(高8位)复用,可驱动4个LS型TTL负载。
④P3口:
8位准双向I/O,双功能复用口,可驱动4个LS型TTL负载。
3.2.2单片机的端口的匹配
P0.0~P0.7:
P0口8位口线,用于控制1602的显示,端口连接见表3.2.2-1
单片机端口名
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
连接1602的端口名
D0
D1
D2
D3
D4
D5
D6
D7
表3.2.2-1
P3.3控制1602的数据与命令的选择、P3.4控制1602的读写、P3.5控制1602的使能信号,端口连接见表3.2.2-2
单片机端口名
P3.3
P3.4
P3.5
连接1602的端口名
RS
RW
E
表3.2.2-2
P2.0控制24C02的读写、P2.1控制24C02的时钟脉冲,端口连接见表3.2.2-3
单片机端口名
P2.0
P2.1
连接24C02的端口名
SDA
SCK
表3.2.2-3
3.324c02的工作原理
3.3.1AT24c02的基本介绍
AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。
而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。
AT24C02中带有的片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
为降低总的写入时间,一次操作可写入多达8个字节的数据。
I2C总线是一种用于IC器件之间连接的二线制总线。
他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。
AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。
主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。
无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。
AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。
3.3.2IIC总线的介绍
IIC即Inter-IntegratedCircuit,这种总线类型是由菲利普半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS),IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实施数据传输的控制源。
这种方式简化了信号传输总线。
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
起始和终止信号:
SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
数据传送格式:
字节传送与应答
每一个字节必须保证是8位长度。
数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。
3.3.3AT24c02的具体介绍
⑴特性
◆与400KHzI2C总线兼容
◆1.8到6.0伏工作电压范围
◆低功耗CMOS技术
◆写保护功能当WP为高电平时进入写保护状态
◆页写缓冲器
◆自定时擦写周期
◆1,000,000编程/擦除周期
◆可保存数据100年
◆8脚DIPSOIC或TSSOP封装
◆温度范围商业级工业级和汽车级
⑵管脚配置
⑶管脚描述
管脚名称
功能
A0A1A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟
WP
写保护
Vcc
+1.8V6.0V工作电压
Vss
地
SDA串行数据/地址
CAT24WC01/02/04/08/16双向串行数据/地址管脚用于器件所有数据的发送或接收SDA是一个开漏
输出管脚可与其它开漏输出或集电极开路输出进行线或wire-OR
A0A1A2器件地址输入端
这些输入脚用于多个器件级联时设置器件地址当这些脚悬空时默认值为024WC01除外
当使用24WC01或24WC02时最大可级联8个器件如果只有一个24WC02被总线寻址这三个地
址输入脚A0A1A2可悬空或连接到Vss如果只有一个24WC01被总线寻址这三个地址输入
脚A0A1A2必须连接到Vss
当使用24WC04时最多可连接4个器件该器件仅使用A1A2地址管脚A0管脚未用可以连
接到Vss或悬空如果只有一个24WC04被总线寻址A1和A2地址管脚可悬空或连接到Vss
当使用24WC08时最多可连接2个器件且仅使用地址管脚A2A0A1管脚未用可以连接到
Vss或悬空如果只有一个24WC08被总线寻址A2管脚可悬空或连接到Vss
当使用24WC16时最多只可连接1个器件所有地址管脚A0A1A2都未用管脚可以连接到
Vss或悬空
WP写保护
如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP管脚连接到Vss或悬空允许
器件进行正常的读/写操作
极限参数
工作温度工业级-55+125
商业级0+75
贮存温度-65+150
各管脚承受电压-2.0Vcc+2.0V
Vcc管脚承受电压-2.0+7.0V
封装功率损耗Ta=251.0W
焊接温度(10秒)300
输出短路电流100mA
⑷分布电容
TA=25℃,f=1.0MHz,Vcc=5V
符号
测试项
最大
单位
条件
CI/O
I/O电容(SDA脚)
8
PF
VI/O=0V
CIN
CIN输出电容(A0A1A2SCLWP)
6
PF
VIN=0V
3.3.4AT24c02的存、取编程
AT24C02的芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,TX-1B实验板上三根地址线都为0。
最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入,1为读出。
⑴任一地址读取数据格式
voidinit()//初始化
{
SCL=1;
delay();
SDA=1;
delay();
}
voidstart()//启动信号
{
SDA=1;
delay();
SCL=1;
delay();
SDA=0;
delay();
}
voidstop()//停止信号
{
SDA=0;
delay();
SCL=1;
delay();
SDA=1;
delay();
}
voidrespons()//回应信号
{
uchari=0;SCL=1;delay();
while((SDA==1)&&(i<255))i++;
SCL=0;delay();}
voidwritebyte(uchardate)//写一个字节
{
uchari,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
SCL=0;
delay();
SDA=CY;
delay();
SCL=1;
delay();
}
SCL=0;
delay();
SDA=1;
delay();
}
(2)任一地址写入数据格式
ucharreadbyte()
//读一个字节
{
uchari,j,k;
SCL=0;
delay();
SDA=1;
for(i=0;i<8;i++)
{
SCL=1;
delay();
if(SDA==1)
j=1;
else
j=0;
k=(k<<1)|j;
SCL=0;
delay();
}
delay();
returnk;
}
Voidwrite_add(ucharaddress,
ucharinfo)
//指定地址写一个字节数据
{
start();
writebyte(0xa0);
respons();
writebyte(address);
respons();
writebyte(info);
respons();
stop();
}
ucharread_add(ucharaddress)
//指定地址读一个字节数据
{
uchardd;
start();
writebyte(0xa0);
respons();
writebyte(address);
respons();
start();
writebyte(0xa1);
respons();
dd=readbyte();
stop();
returndd;
}
3.41602液晶简介
3.4.1.1602的特点
⑴液晶显示屏是以若干个58或511点阵块组成的显示字符群。
每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。
⑵主控制驱动电路为HD44780或其他全兼容电路,如SED1278(SEIKOEPSON)、KS0066(SAMSUNG)、NJU6408(NERJAPANRADIO)。
⑶具有字符发生器ROM可显示192种字符(160个57点阵字符和32个510点阵字符。
⑷具有64个字节的自定义字符RAM,可自定义8个58点阵字符或四个511点阵字符。
⑸具有80个字节的RAM。
⑹单+5V电源供电。
3.4.2引脚功能
共16个引脚,各引脚详情见表3.4.2-11602引脚功能
表3.4.2-11602引脚功能
3.4.31602指令简述如下:
⑴清屏(0x01)
把空码20H写入DDRAM的全部单元。
地址计数器AC清零,光标归位。
设置I/D=1,使AC处于自动加1模式。
⑵归位(0x02)
使AC清零,还可以使发生位移的画面返回00H处显示,光标或是闪烁将回到原点00H处。
输入方式(0000,01,I/D,S)
该指令设置单片机读、写DDRAM或CGRAM后,AC的变化方向,该指令有两个参数:
I/D:
I/D=1AC自动加1,光标右移;I/D=0AC自动减1,光标左移。
S:
设置在写入DDRAM数据后,显示屏上的画面全部向左或向右平移一个字符位。
S=0:
无效,S=1有效。
S=1、I/D=1,画面左移。
S=1、I/D=0,画面右移。
⑶显示开关控制(0000,1,D,C,B)
该指令控制显示效果,带有三个参数:
D:
显示开关,D=1时,允许显示屏显示;D=0,不允许显示屏显示。
C:
光标开关,C=1时,允许显示屏显示光标;C=0时,不允许显示光标。
光标位置由AC控制。
B:
闪烁开关,使一个字符位交替全亮或是全暗,闪烁频率为2.4Hz。
闪烁位置由AC控制。
B=1,闪烁;B=0,不闪烁。
⑷光标或画面位移(0001,S/C,R/L,0,0)
执行该指令时,光标或显示屏上的画面将左移或右移一个字符位置。
S/C:
位移对象选择,S/C=1时,画面位移,S/C=0时光标位移。
R/L:
位移方向选择,R/L=1时为右移,R/L=0时为左移。
⑸功能设置(001,DL,N,F,00)
该指令HD44780的初始化设置指令,单片机必须使用这条指令初始化HD44780,该指令有三个参数:
DL:
总线数据位数,DL=0,总线为4位,DL=1,总线为8位。
N:
显示屏显示行数,N=0为1行,N=1为2行。
F:
字符格式,F=0为5×7点阵,F=1为5×10。
⑹CGRAM地址设置(指令码:
01A5,A4,A3,A2,A1,A0)
该指令将CGRAM的6位地址码00H~3FH写入地址计数器AC内,随后单片机将对CGRAM操作。
⑺DDRAM地址设置(指令码:
0A6,A5,A4,A3,A2,A1,A0)
该指令将DDRAM的7位地址码送入地址计数器AC内,随后单片机对DDRAM操作,DDRAM的地址范围是:
N=0(1行字符)00H~4FH
N=1(2行字符)第1行:
00H~27H,第2行:
40H~67H
⑻DF与AC
当单片机读操作时(RS=0,R/W=1),读出1位忙标志(BF)和7位地址计数器AC的组合,格式为:
其中AC的值可以是DDRAM的地址,也可以是CGRAM的地址。
⑼写入DDRAM或是CGRAM
单片机把要写入DDRAM或CGRAM的数据写入HD44780中,需要首先写入地址设置指令,选择DDRAM或是CGRAM,然后是设置地址计数器AC的自动修改方式。
⑽读取DDRAM或是CGRAM
3.4.51602液晶与51单片机的接线
从查找的资料来看,51单片机的有两种连接方式,我们采用下面的连接方式,见图3.4.5-11602液晶与51单片机的接线
4.开机次数记忆器的实现
4.1硬件实现
4.1.1复位电路的实现
复位电路是使单片机初始化,即使单片机重新开始执行程序。
当复位开关按下,RST由高电平变为低电平,则程序从头开始执行。
通常选择C=10~30μF,R=1K,本设计采用的电容值为10μF的电容和电阻为10k电阻。
在此次课程设计电路中复位实现次数加一。
电路
参考如下图4.1.1-1复位电路。
图3.4.5-11602液晶与51单片机的接线
图4.1.1-1复位电路
4.1.2显示电路的实现
根据51单片机与1602的连接参考图例,见图4.1.2-151单片机与1602连接示例。
注意:
在Protues仿真中,以及实物连接中,VL并不有连接,而是悬空。
4.1.3串行EPROM读写电路实现
串行EPROM读写电路,可参考传统的EPROM与51单片机的连接电路图例,见图4.1.3-151单片机与串行EPROM参考连接
4.1.4整体电路实现
图4.1.3-151单片机与串行EPROM参考连接
图4.1.2-151单片机与1602连接示例
综合上述,得到开机次数记忆器的设计与实现,见如图4.1.4-1整体电路。
图4.1.4-1Protues仿真
4.2软件实现
经过综合分析,得到主要的参考程序如下:
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharNUM,n,m=233;
sbitscl=P2^1;
sbitsda=P2^0;
sbitrs=P3^3;
sbitrw=P3^4;
sbitlcde=P3^5;
voiddelay()
{;;}
voiddelay1(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidstart()//开始
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
voidstop()//停止
{
sda=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开机 次数 记忆 设计 24 c02 1602
![提示](https://static.bdocx.com/images/bang_tan.gif)