51单片机实验报告上传.docx

上传人:b****6 文档编号:13080432 上传时间:2023-06-10 格式:DOCX 页数:19 大小:1.13MB
下载 相关 举报
51单片机实验报告上传.docx_第1页
第1页 / 共19页
51单片机实验报告上传.docx_第2页
第2页 / 共19页
51单片机实验报告上传.docx_第3页
第3页 / 共19页
51单片机实验报告上传.docx_第4页
第4页 / 共19页
51单片机实验报告上传.docx_第5页
第5页 / 共19页
51单片机实验报告上传.docx_第6页
第6页 / 共19页
51单片机实验报告上传.docx_第7页
第7页 / 共19页
51单片机实验报告上传.docx_第8页
第8页 / 共19页
51单片机实验报告上传.docx_第9页
第9页 / 共19页
51单片机实验报告上传.docx_第10页
第10页 / 共19页
51单片机实验报告上传.docx_第11页
第11页 / 共19页
51单片机实验报告上传.docx_第12页
第12页 / 共19页
51单片机实验报告上传.docx_第13页
第13页 / 共19页
51单片机实验报告上传.docx_第14页
第14页 / 共19页
51单片机实验报告上传.docx_第15页
第15页 / 共19页
51单片机实验报告上传.docx_第16页
第16页 / 共19页
51单片机实验报告上传.docx_第17页
第17页 / 共19页
51单片机实验报告上传.docx_第18页
第18页 / 共19页
51单片机实验报告上传.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机实验报告上传.docx

《51单片机实验报告上传.docx》由会员分享,可在线阅读,更多相关《51单片机实验报告上传.docx(19页珍藏版)》请在冰点文库上搜索。

51单片机实验报告上传.docx

51单片机实验报告上传

 

本科生实验报告

实验课程单片微机原理与应用

学院名称ZZZZZ学院

专业名称电气工程及其自动化

学生姓名ZZZZ

学生学号ZZZZZ

指导教师ZZZ

实验地点6c902

实验成绩

 

二〇一六年三月二〇一六年五月

实验一单片机集成开发环境应用

一实验目的

熟悉单片机集成开发软件(Keil);

掌握单片机实验板的使用;

掌握单片机P1口使用;

二实验内容

1、集成开发环境Keil介绍及开发流程

KEILuVISION4是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM(产品全生命周期管理),汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。

KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。

安装好后,让我们一起来建立一个小程序项目吧。

即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。

首先当然是运行KEIL51软件。

运行几秒后,出现如图1-1的屏幕。

图1-1

2、建立第一个项目

点击工程菜单,选择弹出的下拉式菜单中的NewuVisionProject,如图1-2。

接着弹出一个标准Windows文件对话窗口,如图1-3。

在“文件名”中输入您的第一个C程序项目名称,“保存”文件。

这是KEILuVision4项目文件,以后我们可以直接点击此文件以打开先前做的项目。

图1-2NewProject菜单

图1-3文件窗口

3、选择所要的单片机

选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。

此时屏幕如图1-4所示。

完成上面步骤后,就可以进行程序的编写了。

4、在项目中创建新的程序文件

首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。

如果您没有现成的程序,那么就要新建一个程序文件。

点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键CTRL+N来实现。

在这个窗口我们可以用c语言或者汇编语言编写程序。

5、编写程序,调试程序

可以用c语言或者汇编语言编写程序,编写好之后点击保存,并且文件后缀名是.c或者.ASM,并且在项目中添加写好的程序,如图所示,

保存好c文件后,双击源组1,找到c程序,点击添加即可。

此时再点击1键,选择Output,在CreatHEXFile前面打勾,让程序

编译生成用于芯片烧写的HEX文件。

 

设置好后,依次点击编译按钮,此时我们可以在最下面看到有无错误,有无警告,是否生成HEX文件。

6、下载到单片机的内部运行

选择好下载软件,用STC-ISP软件

,界面如图所示:

其中单片机型号选择STC89C52RC系列,并且点击打开程序文件,找到我们保存的HEX文件,打开之后点击下载即可。

三实验步骤

依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则可以仿真测试或者下载到单片机进行实验。

四实验程序

#include

sbitLED2=P2^2;

voidmain()

{

while

(1)

{

P2=0x03;

}

}

实验二单片机I/O口实验

一实验目的

1、熟悉单片机I/O口的特点

2、掌握单片机I/O口的编程

二实验内容

1、P1口流水灯灯程序编写(调试时连接JP3的8个跳线)

2、蜂鸣器发声程序

三实验步骤

调试时连接JP3的8个跳线。

1、蜂鸣器发声:

org0000h

ajmpmain

org0030h

main:

MOVR2,#08H

DLV1:

MOVR3,#0FAH

DLV2:

CPLP1.5

LCALLDELAY1

DJNZR3,DLV2

DJNZR2,DLV1

MOVR2,#10H

DLV3:

MOVR3,#0FAH

DLV4:

CPLP1.5

LCALLDELAY2

DJNZR3,DLV4

DJNZR2,DLV3

ajmpmain

delay1:

movr7,#00h

LLA:

DJNZR7,LLA

ret

delay2:

movr7,#128

LLB:

DJNZR7,LLB

ret

end

2、流水灯:

#include

#include

voidDelay10ms(unsignedint);

voidmain()

{

unsignedcharn;

P2=0x01;

while

(1)

{

for(n=0;n<7;n++)

{P2=_crol_(P2,1);

Delay10ms(50);

}

for(n=0;n<7;n++)

{P2=_cror_(P2,1);

Delay10ms(50);

}

}

}

voidDelay10ms(unsignedinta)

{unsignedcharb,c;

for(;a>0;a--)

for(b=38;b>0;b--)

for(c=130;c>0;c--);

}

 

实验三LED显示设计

一、LED显示电路

二、LED译码地址

MCS-51单片机显示部分,外接4片74LS273芯片作为4位LED显示器的静态显示接口,并行输出端分别接LED显示器的各段对应的引脚上。

在单片机应用系统中,显示器显示用静态显示显示。

三、LED显示原理

LED可分为共阳极或共阴极,各段码位和显示段码的对应关系如下图所示:

a~dp依次对应D0~D7。

共阳极或共阴极的十六进制数及空白字符与P的显示段码如下图所示,分别对地址:

8000H,9000H,A000H,B000H赋值可让LED显示出字符。

四、显示子程序

用一个数组DIG_CODE[19]数组来装显示段码,并且对地址赋值即可。

unsignedcharcodeDIG_CODE[19]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xc7,0x8c,};

XBYTE[0xb000]=A[n];

XBYTE[0xa000]=A[n];

XBYTE[0x9000]=A[n];

XBYTE[0x8000]=A[n];

五、显示子程序应用

1.显示HELL:

XBYTE[0XB000]=0X89

XBYTE[0XA000]=0X86;

XBYTE[0X9000]=0XC7;

XBYTE[0X8000]=0XC7;

2.显示P001:

XBYTE[0XB000]=0X8C;

XBYTE[0XA000]=0XC0;

XBYTE[0X9000]=0XC0;

XBYTE[0X8000]=0XF9;

3.显示P232:

XBYTE[0XB000]=0XC8;

XBYTE[0XA000]=0XA4;

XBYTE[0X9000]=0XB0;

XBYTE[0X8000]=0XC8;

4.显示----:

XBYTE[0XB000]=0XBF;

XBYTE[0XB000]=0XBF

XBYTE[0XB000]=0XBF

XBYTE[0XB000]=0XBF

 

实验四键盘输入实验

一、键盘电路

二、键盘译码地址

MCS-51单片机键盘部分,外接1片74LS273芯片作为扫描的输出接口,地址为:

0C000H,输入接口在74HC244对应的引脚上,地址为:

0C000H。

三、键盘原理

当给74LS273芯片赋值为0x07时,为检测键盘第一列,若为K5按下,则74HC244的1A2口的值为0,1A1,1A3,1A4口值为1。

故推出接受到的值为0x0d;反之,若74HC244接受的值为0x0d,则是K5键被按下。

当给74LS273芯片赋值为0x0b时,为检测键盘第二列,原理同第一列。

当给74LS273芯片赋值为0x0d时,为检测键盘第三列,原理同第一列。

当给74LS273芯片赋值为0x0e时,为检测键盘第四列,原理同第一列。

四、键盘子程序

voidKeyDown(void)

{

charm=0,n=0;

XBYTE[0xC000]=0x00;

m=XBYTE[0xC000];

if(m!

=0x0f)

{

Delay10ms();

XBYTE[0xC000]=0X07;

m=XBYTE[0xC000];

m=m&0x0f;

if(m!

=0x0f)

{

if(m==0X0e)KeyValue=1;

if(m==0X0d)KeyValue=5;

if(m==0X0b)KeyValue=9;

if(m==0X07)KeyValue=12;

}

XBYTE[0xC000]=0X0b;

m=XBYTE[0xC000];

m=m&0x0f;

if(m!

=0x0f)

{

if(m==0X0e)KeyValue=2;

if(m==0X0d)KeyValue=6;

if(m==0X0b)KeyValue=0;

if(m==0X07)KeyValue=13;

}

XBYTE[0xC000]=0X0d;

m=XBYTE[0xC000];

m=m&0x0f;

if(m!

=0x0f)

{

if(m==0X0e)KeyValue=3;

if(m==0X0d)KeyValue=7;

if(m==0X0b)KeyValue=10;

if(m==0X07)KeyValue=14;

}

XBYTE[0xC000]=0X0e;

m=XBYTE[0xC000];

m=m&0x0f;

if(m!

=0x0f)

{

if(m==0X0e)KeyValue=4;

if(m==0X0d)KeyValue=8;

if(m==0X0b)KeyValue=11;

if(m==0X07)KeyValue=15;

}

while((n<50)&&(XBYTE[0xC000]!

=0xf0))

{

Delay10ms();

n++;

}}

五、键盘子程序的应用

开机显示HELL,按A显示P001,按数字键则左移,按字母键则返回HELL:

while

(1)

{

KeyDown();

if(KeyValue==10)//按a的时候

{intw=0,x=0,y=0,z=0;

XBYTE[0xB000]=DIG_CODE[18];

XBYTE[0xa000]=DIG_CODE[0];

XBYTE[0x9000]=DIG_CODE[0];

XBYTE[0x8000]=DIG_CODE[1];

Delay10ms(5);

while(f>0)

{KeyDown();

if(KeyValue>=11)

f=-1;

if(KeyValue<=9)

{

w=x;x=y;y=z;z=KeyValue;

XBYTE[0xB000]=DIG_CODE[w];

XBYTE[0xa000]=DIG_CODE[x];

XBYTE[0x9000]=DIG_CODE[y];

XBYTE[0x8000]=DIG_CODE[z];

}

KeyValue=10;

f++;

Delay10ms(20);

}

KeyDown();

if(KeyValue>9)

{

XBYTE[0xB000]=DIG_CODE[16];

XBYTE[0xa000]=DIG_CODE[14];

XBYTE[0x9000]=DIG_CODE[17];

XBYTE[0x8000]=DIG_CODE[17];

}

}

学生实验心得

通过这次单片机实验,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

通过这次实验,我发现了自己的不足之处,比如动手能力还需加强,处理各种问题的能力还需加强,我将不断发展壮大自己,争取在以后的学习生活中有更好的表现。

非常感谢Z老师在本次实验中的精心指导!

学生(签名):

年月日

指导

教师

评语

 

成绩评定:

指导教师(签名):

年月日

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2