上海第二工业大学单片机实验实训实验报告.docx

上传人:b****3 文档编号:4929195 上传时间:2022-12-11 格式:DOCX 页数:21 大小:125.89KB
下载 相关 举报
上海第二工业大学单片机实验实训实验报告.docx_第1页
第1页 / 共21页
上海第二工业大学单片机实验实训实验报告.docx_第2页
第2页 / 共21页
上海第二工业大学单片机实验实训实验报告.docx_第3页
第3页 / 共21页
上海第二工业大学单片机实验实训实验报告.docx_第4页
第4页 / 共21页
上海第二工业大学单片机实验实训实验报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

上海第二工业大学单片机实验实训实验报告.docx

《上海第二工业大学单片机实验实训实验报告.docx》由会员分享,可在线阅读,更多相关《上海第二工业大学单片机实验实训实验报告.docx(21页珍藏版)》请在冰豆网上搜索。

上海第二工业大学单片机实验实训实验报告.docx

上海第二工业大学单片机实验实训实验报告

单片机实验实训实验报告

班级:

10计科A1学号:

20123430074姓名:

贾强强

第一章Keil教程

1.源文件的建立

1)启动uVision后,File->New,打开一个新的文本编辑窗口,在窗口中输入汇编语言程序

2)保存文件,扩展名一般用asm或a51.例如:

exam1.asm

2.建立工程文件

1)点击Project->NewProject,出现对话框,输入工程名。

点击保存。

随后出现第二个对话框,选择CPU(这里选89C51),然后确定

2)工程详细设置

点击Project窗口中的Target1(Project->Optionfortarget’target1’)出现对话框,后面大部分页面默认就行

3.编译、连接

1)将源文件加入到工程

2)选择菜单Project->Buildtarget

3)进入下一步调试

第二章文件的下载操作

1.运行环境:

FLIP2.4.6

2.实验步骤:

1)选择芯片

选择“Selectdevice->AT89C51RC2”

2)选择要烧写的文件

单击LoadHEXFile,在对话框中选择要烧写的HEX文件

3)通信设置

单击“SetCommunication->RS232/com1/9600波特“后单击Connect

4)下载烧写文件

单片机与PC连通后单击Run

5)运行

a.下载成功后,单击Startapplication

b.拔掉w1短接调线,然后执行reset重启操作

 

4.1实验1Keil及FLIP的使用

实验目的:

熟悉Keil2单片机开发软件的使用方法;

熟悉在系统编程下软件FLIP的使用方法,同时利用Keil环境测试汇编语言指令

实验要求:

测试如下指令

MOVA,R0;

MOVA,50H

MOVA,@R0

MOVA,#20H

实验步骤:

(1)在C盘根目录创建test1的文件夹

(2)创建工程,名为:

test1,放于test1文件夹中

(3)创建源文件,名为:

test1.asm,内容如下

(4)将test1.asm加入工程,编译

(5)如有错误进行修改

(6)调试(单击debug菜单下的start/stopdebugesession,并进行单步跟踪,注意咯寄存器及内存单元变化)

实验程序:

ORG0000H

MOVR0,#30H

MOV50H,#3AH

MOVA,R0

MOVA,@R0

MOVA,20H

MOV@R0,A

END

4.2.实验2基本I/O引脚信号的控制

1.实验目的:

熟练掌握对基本I/O口的控制方法,通过编写循环和延时程序控制P1口引脚信号电平的高低,从而实现相对应LED灯的亮灭

2.实验要求:

LED灯的亮灭时间为1秒,并伴随有你蜂鸣器1秒间隔的“嘀”声

3.实验电路(略)

(1)延时程序设计方法

a)原理介绍:

MOVR6,#2001

D1:

MOVR7,#2281

DJNZR7,$2*248

NOP1

DJNZR6,D12

总延迟机器周期为:

2+(2+2*228+2+1)*200=92220

总延迟时间为:

92220*1.085=100057

b)延时子程序:

DELAY:

MOVR5,#10

MOVR6,#200

MOVR7,#228

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

(2)输出控制

P1.0=1时,灯亮

P2.7=0时,蜂鸣器响

5.程序框图:

6.汇编源程序:

ORG0000H

START:

CLRP1.0

CLRP2.7

LCALLDELAY

SETBP1.0

SETBP2.7

LCALLDELAY

LJMPSTART

DELAY:

MOVR5,#10

D1:

MOVR6,#200

D2:

MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

 

4.3实验3基本分支与循环程序设计

实验目的:

掌握基本分支与循环程序设计方法

实验要求:

(1)有一变量在片内RAM的20H单元。

取值范围:

00H~05H。

编制一段程序,根据变量值求其平方值,并存入片内RAM的21H单元。

实验程序:

(2)设变量x以补码形式存放在片内RAM的30H单元,变量y与x的关系是:

当x大于0时,y=x;当x=0时,y=20H;当x小于0时,y=x+5.编制程序,根据x的大小球y并送回单元。

程序流程图:

程序源代码:

ORG0000H

MOV30H,#88H

START:

MOVA,30H

JZNEXT

ANLA,#80H

JZLP

MOVA,#05H

ADDA,30H

MOV30H,A

SJMPLP

NEXT:

MOV30H,#20H

LP:

SJMP$

END

4.4实验4定时器的使用

实验目的:

掌握定时器的使用方法,能够根据定时时间正确设置定时器相关的寄存器,能够正确编写定时器的中断服务程序。

程序设计步骤:

实验程序:

ORG0000H

LJMPMAIN

ORG000BH

LJMPINTT0

MAIN:

MOVTMOD,#01H

MOVTH0,#0C3H

MOVTL0,#0FFH

SETBEA

SETBET0

SETBTR0

MOVR0,#60

SJMP$

INTT0:

MOVTH0,#0C3H

MOVTL0,#0FFH

DJNZR0,RT

CPLP1.0

CPLP2.7

RT:

RETI

END

实验总结:

1)工作方式寄存器TMOD89HGATEC|TM1M0GATEC|TM1M0其中高4位是定时器T1,低4位是定时器T0区别:

T0:

方式0、1、2、3T1:

方式0、1、2

2)开中断EA:

中断总控制位ET0ET1:

定时器中断控制位TR0,TR1:

定时器0、1使能

3):

中断服务

入口地址

优先级顺序

1外部中断0

0003H

2定时|计数器0

000BH

3外部中断1

0013H

4定时|计数器1

001BH

5串行口中断

0023H

4)中断理解:

CPU暂停正在执行的操作,去执行中断服务程序,待执行完毕后再返回断点处继续执行。

 

4.5实验五数码管显示

实验目的:

掌握数码管的编码方法。

实验要求:

(1)实现在数码管上DS1、DS2、DS3、DS4上显示数字1、2、3、4。

(2)利用中断的方法实现准确的秒表程序,并在数码管上显示。

要求开始时DS1、DS2显示分钟,DS2小数点点亮,DS3、DS4显示秒,初始时都显示0;运行后DS每隔一秒钟数字加1,加到10后变0,DS3加1,DS3、DS4加到60后,切换到小时状态:

DS1、DS2显示小时,DS2的小数点点亮,DS3、DS4显示分钟,DS4的小数点每隔一秒亮灭一次,亮灭分别30次后,DS4加1。

实验流程图:

程序源代码:

ORG0000H

LJMPMAIN

ORG000BH

LJMPDVT0

MAIN:

MOVR0,#30

MOVR1,#59

MOVR2,#23

MOVR5,#00

MOVR6,#00

MOVDPTR,#TAB

MOVTMOD,#01H

MOVTH0,0C3H

MOVTL0,0FFH

SETBET0

SETBEA

SETBTR0

LOOP:

CJNER2,#00,LOOP1

MOVA,R1

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP2,#0FEH

MOVP0,A

ACALLDELAY

MOVA,B

MOVCA,@A+DPTR

MOVP2,#0FDH

ANLA,#7FH

MOVP0,A

ACALLDELAY

MOVA,R0

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP2,0FBH

MOVP0,A

ACALLDELAY

MOVA,B

MOVCA,@A+DPTR

MOVP2,#0FCH

MOVP0,A

ACALLDELAY

LJMPLOOP

LOOP1:

MOVA,R2

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP2,#0FEH

MOVP0,A

ACALLDELAY

MOVA,B

MOVCA,@A+DPTR

MOVP2,#0FDH

ANLA,#7FH

MOVP0,A

ACALLDELAY

MOVA,R1

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP2,#0FBH

MOVP0,A

ACALLDELAY

MOVA,B

MOVCA,@A+DPTR

MOVP2,#0F7H

MOVB,A

MOVA,R0

ANLA,#01H

JZDOT

MOVA,B

SJMPSHOWDOT

DOT:

MOVA,B

ANLA,#7FH

SHOWDOT:

MOVP0,A

ACALLDELAY

LJMPLOOP

DELAY:

MOVR6,#10

DEL:

MOVR7,#100

NOP

DEL1:

DJNZR7,DEL1

DJNZR6,DEL

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

DVT0:

INCR4

MOVTH0,#0C3H

MOVTL0,#0FFH

CJNER4,#60,RT

MOVR4,#00

INCR0

CJNER0,#60,RT

MOVR1,#00

INCR2

CJNER2,#24,RT

MOVR2,#00

RT:

RETI

END

4.6实验6键盘扫描

实验目的:

掌握对键盘的扫描方法,编写键盘的扫描程序。

实验要求:

(1)矩阵按键编程1

实验电路:

如图

实验要求:

编写程序,要求按KB1键时,在数码管上显示1,按KB2键时在数码管上显示2,以此类推,按KB6键时在数码管上显示6。

程序源代码:

ORG0000H

SMKEY:

MOVP1,#03H

MOVA,P1

ANLA,#0FH

CJNEA,#03H,HKEY

SJMPSMKEY

HKEY:

LCALLDELAY10

MOVA,P1

ANLA,#0FH

MOVB,A

CJNEA,#03H,WKEY

SJMPSMKEY

WKEY:

MOVP1,#1CH

LCALLDELAY10

MOVA,P1

ANLA,#1CH

ORLA,B

CLRP2.3

CJNER4,#1AH,PKEY0

LJMPPKEY2

PKEY0:

CJNEA,#1AH,SMKEY

MOVR4,#1AH

PKEY2:

CJNEA,#16H,PKEY3

MOVP0,#0A4H

PKEY3:

CJNEA,#0EH,PKEY4

MOVP0,#0B0H

PKEY4:

CJNEA,#19H,PKEY5

MOVP0,#99H

PKEY5:

CJNEA,#15H,PKEY6

MOVP0,#92H

PKEY6:

CJNEA,#0DH,SMKEY

MOVP0,#82H

RETI0:

SJMPSMKEY

DELAY10:

MOVR6,#100

DEL:

MOVR7,#50

DEL1:

DJNZR7,DEL1

DJNZR6,DEL

RET

END

(2)矩阵按键编程2

实验电路:

如图

实验要求:

通过按键修改秒表程序,具体按键功能如下:

KB1:

启动秒表设置程序,不先按KB1,其他按键无效,再次按KB1,保存设置结果;

KB2:

对时间清零,回到初始态00:

00:

00:

00;

KB3:

在小时模式和分钟模式直接切换;

KB4:

小时加1;

KB5:

分钟加1;

KB6:

秒加1。

 

4.7实验7串行通信程序设计

实验目的:

掌握固定和可变波特率串行通信的方法,能够按照给定的波特率设置相关的寄存器,实现串行通信。

实验要求:

(1)编写单片机与PC之间通过串口通信的程序,编写串口通信程序,要求PC机先发送02H,单片机发送“HELLO”,如果PC及发送55H,单片机发送“THISISAWELLBEGIN!

”(注:

PC机发送由串口工具完成,要求波特率为9600bit/s)

(2)编写单片机与单片机之间进行串口通讯的程序。

改写李全利编著《单片机原理及应用》一书中6.3单片机串行口应用举例。

实验电路图:

程序源代码:

编写单片机与PC之间通过串口进行通讯的程序,编写串口通信程序

要求PC机先发送02H,单片机发送“HELLO”,如果PC机发送55H

单片机发送“THISISAWELLBEGIN!

”(注:

PC机发送由串口工具完成,要求波特率为9600bit/s)

ORG0000H

LJMPMAIN

ORG0023H

LJMPDIV0

ORG0100H

MAIN:

MOVTMOD,#20H

MOVTH1,#0FDH

MOVTL1,#0FDH

MOVSCON,#50H

MOVR0,00H

MOVR1,00H

SETBEA

SETBTR1

SETBES

SJMP$

DIV0:

JNBRI,RT

CLRRI

MOVA,SBUF

CJNEA,#31H,LOOP2

CLRES

AGAIN:

MOVA,R0

MOVDPTR,#BUF1

MOVCA,@A+DPTR

MOVSBUF,A

JNBTI,$

CLRTI

INCR0

CJNER0,#06H,AGAIN

SETBES

SJMPRT

LOOP2:

CJNEA,#32H,RT

CLRES

AGAIN2:

MOVA,R1

MOVDPTR,#BUF2

MOVCA,@A+DPTR

MOVSBUF,A

JNBTI,$

CLRTI

INCR1

CJNER1,#05H,AGAIN2

SETBES

RT:

RETI

ORG2000H

BUF1:

DB"HELLO!

"

BUF2:

DB"GOOD!

"

END

 

4.8实验8A/D转换器的使用1

实验目的:

掌握ADC0809的工作原理。

实验要求:

编写0809A/D转换程序,每隔1秒将A/D转换的结果显示在DS3和DS4两位上,以十六进制形式显示。

程序设计:

由于读A/D转换的结果和刷新LED都要用到的P0口,因此,如果读取A/D转换结果频率太快,就会出现无法正确显示的现象,解决办法是由定时器T1,定时1秒,每秒启动A/D转换一次。

因为T0中断太频繁,为保证T1进入中断可将T1和INT0中断设为高优先级。

程序源代码:

ORG0000H

LJMPSTART

ORG0003H

LJMPPINT0

ORG000BH

LJMPPPT0

ORG001BH

LJMPPPT1

ORG0100H

START:

SETBIT0

SETBEA

SETBEX0

SETBPX0

MOVTMOD,#12H

MOVTH0,#0FBH

MOVTL0,#0FBH

SETBTR0

SETBET0

MOVTH1,#0FH

MOVTL1,#00H

SETBET1

SETBPT1

SETBTR1

SETBP3.6

SETBP1.4

CLRP3.6

CALLDELAY1MS

SETBP3.6

MOV20H,#50H

MOVR7,#20

LOOP:

CALLDISPLAY

AGAIN:

AJMPLOOP

DELAY1MS:

MOVR0,#100

LOOP1:

MOVR1,#10

LOOP2:

DJNZR1,LOOP1

DJNZR0,LOOP1

RET

DISPLAY:

MOVDPTR,#DPDATA

MOVA,20H

ANLA,#0FH

CLRP2.1

MOVCA,@A+DPTR

MOVP0,A

CALLDELAY1MS

SETBP2.1

MOVA,20H

ANLA,#0F0H

SWAPA

CLRP2.0

MOVCA,@A+DPTR

MOVP0,A

CALLDELAY1MS

SETBP2.0

RET

DPDATA:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H

DB0F8H,80H,98H,88H,83H,0E2H,0A1H,86H8EH

PINT0:

CLRP3.7

MOVP0,#0FFH

MOVA,P0

SETBP3.7

MOV20H,A

RETI

PPT0:

CPLP3.3

RETI

PPT1:

MOVTH1,#0FH

MOVTL0,#00H

CLRTF1

DJNZR7,RETN

MOVR7,#20

SETBP3.6

SETBP1.4

CLRP3.6

CALLDELAY1MS

SETBP3.6

RETN:

RETI

END

实验心得:

回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。

第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。

我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

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

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

这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。

同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!

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

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

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

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