存储器检测Word格式文档下载.docx
- 文档编号:15781771
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:13
- 大小:47.59KB
存储器检测Word格式文档下载.docx
《存储器检测Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《存储器检测Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
(1)系统元件的结构图
图124c02引脚图
图2单片机与外接器件连接图
图374HC573与单片机连接图图4GAL16V8与单片机连接图
(2)系统流程图:
开始
24C02初始化
LCD初始化
调用LCD子程序
向24C02写入数值
读24C02所有单元值
判断是否相等
显示结果
3:
源程序清单
/*********************************************************************/
//字符型LCD液晶显示模块
//适用型号:
并口LCD
//日期:
2009-7-16
#include<
reg52.h>
#include<
intrins.h>
stdio.h>
absacc.h>
key.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineLCDCOM0XBYTE[0X9000]
#defineLCDCOM1XBYTE[0X9400]
#defineLCDDATAXBYTE[0X9800]/*LED数据寄存器地址*/
#defineLCDDATA_READXBYTE[0X9800]
sbitscl=P3^4;
//24c02的时钟
sbitsda=P3^5;
//24c02的数据线
uchark;
sbitbflag=ACC^7;
voidwait(void)//等待
{do{ACC=LCDCOM1;
}while(bflag==1);
}
voidinit_lcd()//初始化LCD
{
wait();
LCDCOM0=0x38;
LCDCOM0=0x06;
LCDCOM0=0x0c;
LCDCOM0=0x01;
}
/*********************************************/
voidinit_command(ucharcommand)/*发送新命令,一般用于给出新的显示地址*/
{wait();
LCDCOM0=command;
}/*首行地址0x80~0xa7,次行地址0xc0~0xe7*/
voidledoutchar(uchara)
{wait();
LCDDATA=a;
}/*将读出数据输出到数据寄存器*/
//sbitmax24c02_wp=P3^3;
ucharx24c02_read(ucharaddress);
//从24c02的地址address中读取一个字节数据
voidx24c02_write(ucharaddress,ucharinfo);
//向24c02的address地址中写入一字节数据info
voidx24c02_init();
//24c02初始化子程序
voiddelay1(uintx);
voidx24c01_init();
voidstart();
voidstop();
voidwritex(ucharj);
ucharreadx();
voidclock();
voiddelay1(uintx)//延时
uinti;
for(i=0;
i<
x;
i++);
//24C02初始化
voidx24c02_init()
//max24c02_wp=0;
scl=1;
sda=1;
//总线的起始位
voidstart()
sda=0;
scl=0;
//C总线的结束位
voidstop()
//输出函数
voidwritex(ucharj)
ucharidatai,temp;
temp=j;
for(i=0;
8;
i++)
{
temp=temp<
<
1;
scl=0;
sda=CY;
scl=1;
}
sda=1;
//输入函数
ucharreadx()
ucharidatai,j,k=0;
{
if(sda==1)j=1;
elsej=0;
k=(k<
1)|j;
}
return(k);
//总线时钟相当ACK信号
voidclock()
uintidatai=0;
for(;
(sda==1)&
&
(i<
1000);
//从地址中读取一字节数据
ucharx24c02_read(ucharaddress)
ucharidatai;
start();
writex(0xa0);
clock();
writex(address);
writex(0xa1);
i=readx();
stop();
delay1(100);
return(i);
//写字节信息至地址中
voidx24c02_write(ucharaddress,ucharinfo)
EA=0;
writex(info);
EA=1;
delay1(500);
main()
{
uchark1;
x24c02_init();
init_lcd();
/*初始化LED*/
while
(1){
k1=GetKey(20);
if(k1==0x01)
{Delay1ms(100);
{uchari,j;
for(i=0;
255;
x24c02_write(i,0x00);
/*将存储器所有单元写入00*/
for(i=0;
j=x24c02_read(i);
/*读存储器的值*/
if(j==0x00)/*如果读出的值为00*/
{init_command(0x80);
/*显示屏上显示00000000*/
ledoutchar(0x30);
ledoutchar(0x30);
}
else/*如果读出值不为00*/
{init_command(0x80);
/*显示当前单元HUAIDIAN*/
ledoutchar('
H'
);
U'
A'
I'
ledoutchar('
D'
N'
/*************键盘子程序*************************************/
#defineulongunsignedlong
voidDelay1ms(uintcount)
uinti,j;
count;
{for(j=0;
j<
120;
j++);
ucharkchange(ucharkey){
uinti,a,b;
4;
i++){
if((key&
0x01)==1)a=i;
key=key>
>
0x01)==1)b=i;
returna*4+b;
//是a*4+b还是b*4+a;
看情况
ucharGetKey(uintpress_time){
ucharsccode;
ucharrecode;
ucharkey=0xff;
uintm,pressRelease=1;
intn=1;
uchara;
P1=0xf0;
a=P1;
if(a!
=0xf0){
Delay1ms(10);
P1=0xf0;
if(a!
sccode=a;
P1=0x0f;
a=P1;
recode=a;
key=~(sccode+recod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储器 检测
![提示](https://static.bdocx.com/images/bang_tan.gif)