单片机 对外部RAM的读写并进行LED显示课程设计.docx

上传人:b****5 文档编号:8304767 上传时间:2023-01-30 格式:DOCX 页数:12 大小:95.32KB
下载 相关 举报
单片机 对外部RAM的读写并进行LED显示课程设计.docx_第1页
第1页 / 共12页
单片机 对外部RAM的读写并进行LED显示课程设计.docx_第2页
第2页 / 共12页
单片机 对外部RAM的读写并进行LED显示课程设计.docx_第3页
第3页 / 共12页
单片机 对外部RAM的读写并进行LED显示课程设计.docx_第4页
第4页 / 共12页
单片机 对外部RAM的读写并进行LED显示课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

单片机 对外部RAM的读写并进行LED显示课程设计.docx

《单片机 对外部RAM的读写并进行LED显示课程设计.docx》由会员分享,可在线阅读,更多相关《单片机 对外部RAM的读写并进行LED显示课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

单片机 对外部RAM的读写并进行LED显示课程设计.docx

单片机对外部RAM的读写并进行LED显示课程设计

 

课程设计说明书

课程名称:

课程代码:

题目:

学生姓名:

学号:

=

年级/专业/班:

=

学院(直属系):

=

指导教师:

=

目录

1引言1

1.1任务与分析1

1.1.1主要任务1

1.1.2目的1

2单片机系统介绍1

3程序的主要功能2

3.1参数数据功能2

3.2参数显示功能2

3.3数据的写入功能2

3.4数据读出功能2

4程序运行平台3

5总体设计3

6端口定义说明3

7程序分析4

7.1端口设置4

7.2数码管位数的选择4

7.3数据存取5

7.4数据读取5

7.5数据显示5

7.6数据数值选择6

8Proteus仿真7

8结论8

参考文献9

摘要

数据存储器即随机存取器,简称RAM,用于存放可随时修改的数据信息。

对RAM可以进行读、写操作。

RAM为易失性存储器断电后所存信息立即消失。

按其工作方式,RAM又分为动态RAM和静态RAM。

动态RAM一般容量较大,但要定时刷新才能维持所存信息,使用略复杂。

单片机中使用较少。

静态RAM只要电源上电,所存信息就能可靠保存,不需要刷新。

扩展电路简单,单片机中使用较多。

MCS-51单片机基本型只有128字节的RAM,增强型有256字节的RAM。

应用系统需要更多的RAM时,可以片外扩展,可扩展的最大容量为64KB。

 

关键词:

单片机存取器RAM

1引言

1.1任务与目的

1.1.1主要任务

★利用89C51设计一单片机最小系统;

★设计对6116RAM的数据读写操作系统;

  ★在RAM中读出数据并显示在2位数码管上;

  ★实现Proteus仿真;

1.1.2目的

单片计算机即单片微型计算机。

(Single-ChipMicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

2单片机系统介绍

40个引脚按引脚功能大致可分为4个种类:

电源、时钟、控制和I/O引脚。

  ⒈电源:

  ⑴VCC-芯片电源,接+5V;

  ⑵VSS-接地端;

  注:

用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。

但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。

  ⒉时钟:

XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

  ⒊控制线:

控制线共有4根,

  ⑴ALE/PROG:

地址锁存允许/片内EPROM编程脉冲

  ①ALE功能:

用来锁存P0口送出的低8位地址

  ②PROG功能:

片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

  ⑵PSEN:

外ROM读选通信号。

  ⑶RST/VPD:

复位/备用电源。

  ①RST(Reset)功能:

复位信号输入端。

  ②VPD功能:

在Vcc掉电情况下,接备用电源。

  ⑷EA/Vpp:

内外ROM选择/片内EPROM编程电源。

  ①EA功能:

内外ROM选择端。

  ②Vpp功能:

片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

  ⒋I/O线

  80C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

  P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)

MCS-51单片机内部定时器/计数器、中断系统简介

定时/计数器是单片机中重要的功能模块之一,在检测,控制和智能仪器等设备中经常用它来定时。

MCS-51系列中51子系列有2个16位的可编程定时/计数器:

T0和T1;每个定时计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。

T0有4种工作方式,T1有3种工作方式,T2有3种工作方式,可通过编程设定。

每个定时/计数器计数事件到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。

中断系统简介

MCS-51单片机提供5个硬件中断源:

2个外部中断源INT0(P3.2)和INT1(P3.3),2个定时/计数器T0和T1的溢出中断TF0和TF1;1个串行口发送TI和接收RI中断。

T0中断服务程序流程图如图11.3。

3程序的主要功能

3.1参数数据功能

设置和修改存入6116芯片的数据。

3.2参数显示功能

显示当前数据到2位数码管上。

3.3数据的写入功能

把当前数据写入6116芯片中。

3.4数据读出功能

把6116芯片中的数据读出。

4程序运行平台

Keil软件、Proteus7Professional

5总体设计

6端口定义说明

I/O端

程序中控件名

I/O端

程序中控件名

P1

LED显示

P2.6

read

P3.4

LED1

P3.1

add

P3.5

LED2

P3.2

choice

P2.4

lear

P3.3

sub

P2.5

write

7程序分析

7.1端口设置

程序如下:

##include

#include

#defineram6116XBYTE[0x1000]

sbitled1=P3^4;

sbitled2=P3^5;

sbitadd=P3^0;

sbitchoice=P3^1;

sbitsub=P3^2;

sbitzd=P3^3;

sbitwrite=P2^5;

sbitread=P2^6;

unsignedintnumber[2],i=1;

unsignedcharcodedispcode[]={0XC0,0XF9,0xA4,0xB0,0x99,0X92,0X82,0XF8,0X80,0X90,0XFF};

7.2数码管位数的选择

按下个、十位选择按钮,选择数码管的位数

程序如下:

voidnumberset()

{if(choice==0)

TR1=1;

if(i==1&&add==0)/设定为个位

TR1=1;/计数器1

if(i==1&&sub==0)

TR1=1;

if(i==2&&add==0)/设定为十位

TR1=1;

if(i==2&&s

7.3数据存取

将数据写入6116芯片中

程序如下:

voidcc()

{

inti=0;

i=number[0]*10+number[1];

ram6116=i;/将数据写入6116

}

7.4数据读取

从6116芯片中读出数据。

程序如下:

voidqz()

{

inti=0;

i=ram6116;/从6116中读出数据

number[0]=i/10;

number[1]=i%10;

}

7.5数据显示

将数据大小显示在2位数码管上。

程序如下:

voidmain(void)

{

read=write=add=sub=choice=1;

TMOD=0x10;//置定技术器T0为方式1

TL1=0XF0;//设定初值

TH1=0XD8;

EA=1;//开总中断

ET1=1;//开T1中断

while

(1)

{if(read==0)

qz();

if(write==0)

cc();

numberset();

P1=0xff;//p1口送初值

P1=dispcode[number[0]];led1=1;led2=0;timedely(5);

P1=0xff;

P1=dispcode[number[1]];led1=0;led2=1;timedely(5);

}

}

7.6数据数值选择

设置数据的大小值

程序如下:

voidtimer1()interrupt3//中断服务程序

{

TL1=0XF0;//重置定时器初值

TH1=0XD8;

count--;

if(count==0)

{count=25;

if(choice==0)

{i=i+1;

if(i==3)

i=0;

TR1=0;}

if(i==1&&add==0)

{number[0]=number[0]+1;

if(number[0]>9)

number[0]=0;

TR1=0;

}

if(i==1&&sub==0)

{number[0]=number[0]-1;

if(number[0]<1)

number[0]=9;

TR1=0;

}

if(i==1&&lear==0)

{number[0]=0;

number[1]=0;

TR1=0;

}

if(i==2&&add==0)

{number[1]=number[1]+1;

if(number[1]>9)

number[1]=0;

TR1=0;

}

if(i==2&&sub==0)

{number[1]=number[1]-1;

if(number[1]<1)

number[1]=9;

TR1=0;

}

if(i==2&&lear==0)

{number[0]=0;

number[1]=0;

TR1=0;

}

}

}

8Proteus仿真

系统硬件图

仿真图

8结论

这次课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

在这期间,我得到了很多同学的帮助。

我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。

以前的汇编语言没学好,一开始的程序这块儿就要令我束手无策了。

后来请教我们班的一个同学,看他边做边给我讲解。

最后在计算机上调试成功,后来自己又从头到尾做了一遍,完成了本程序。

最后说明自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。

而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。

参考文献

[1]黄惟公.单片机原理与应用技术:

西安电子科大出版社2007

[2]张毅刚,MC-51单片机应用设计(二版):

哈工大出版社2005

[3]李广第.单片机基础.北京:

北京航天航空大学出版社

[4杨文龙.单片微机原理及应用.西安电子科技出版社

[5]周航慈.单片机程序设计基础.北京:

北京航天航空大学出版社

[6]胡汉才.单片机原理及接口技术.北京:

清华大学出版社

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1