电子科技大学单片机原理与应用实验.docx

上传人:b****9 文档编号:26288793 上传时间:2023-06-17 格式:DOCX 页数:19 大小:29.51KB
下载 相关 举报
电子科技大学单片机原理与应用实验.docx_第1页
第1页 / 共19页
电子科技大学单片机原理与应用实验.docx_第2页
第2页 / 共19页
电子科技大学单片机原理与应用实验.docx_第3页
第3页 / 共19页
电子科技大学单片机原理与应用实验.docx_第4页
第4页 / 共19页
电子科技大学单片机原理与应用实验.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

电子科技大学单片机原理与应用实验.docx

《电子科技大学单片机原理与应用实验.docx》由会员分享,可在线阅读,更多相关《电子科技大学单片机原理与应用实验.docx(19页珍藏版)》请在冰豆网上搜索。

电子科技大学单片机原理与应用实验.docx

电子科技大学单片机原理与应用实验

 

教师备课教案本

(实验课程)

 

系别:

电子工程系

课程名称:

单片机原理与应用

教师姓名:

张正明

授课时间:

2018-2019学年第1学期

 

电子科技大学中山学院

实验课程授课计划

课程名称

单片机原理与应用

总学时数

16

授课班级

系别:

15级电子系专业班级:

电子信息工程,通信工程

授课地点

A304

编号

实验项目名称

计划学时

周次

1

Keil集成开发环境练习和编程调试

4

2

走马灯实验

4

3

串口通信

4

4

并行模数转换

4

考核要求

每次实验占25分。

注:

如授课时间适逢节假日冲突则顺延或另行安排。

填表日期:

2008年8月3日

项目名称

Keil集成开发环境练习和编程调试

实验类别

必做

课时安排

4

授课班级

电子信息工程05级

授课时间

授课人数

分组情况

教学

目的

了解Keil系统的环境和程序调试

预习

要求

1编写程序,完成内存中两个字节内容的交换。

建立工程文件。

双击桌面的Keil快捷图标,进入Keil集成开发环境。

点击工具栏的Project选项,在弹出的下拉菜单中选择NewProject命令,建立一个新的µVision2工程,为工程取一个名字,并选择将要使用的器件的型号(Philips公司的P80/87C52X2CPU)。

编写程序,加入到刚才建立工程文件中。

在File下采用New命令,建立新文件,送入程序内容,并保存为ASM类型文件。

在ProjectWindos窗口内,选中SourceGroup1后点击鼠标右键,在弹出的快捷菜单中选择AddfilestoGroup“SourceGroup1”(向工程中添加源程序文件)命令,选择刚才创建单击Add命令即可把源程序文件添加到项目中。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H;SP=?

MOVR0,#30H;R0=?

MOVR1,#40H;R1=?

MOV@R0,#55H;(30H)=?

MOV@R1,#0AAH;(40H)=?

MOVA,@R1;A=?

XCHA,@R0;A=?

(30H)=?

XCHA,@R1;A=?

(40H)=?

;下面是另一种方法

MOV@R0,#33H;(30H)=?

MOV@R1,#44H;(40H)=?

MOVA,@R0;A=?

PUSHACC;SP=?

(61H)=?

MOVA,@R1;A=?

PUSHACC;SP=?

(62H)=?

NOP

POPACC;SP=?

A=?

MOV@R0,A;(30H)=?

POPACC;SP=?

A=?

MOV@R1,A;(40H)=?

NOP

SJMP$

END

选择Project下的Rebuildalltargetfiles对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示没有错误,表明程序没有语法错误,可以进行动态调试了。

选择Project下的Optionsfortarget‘Target1’进行动态调试的参数设置,点击debug,再点击UseSimulator,最后点击完成。

对程序进行动态调试,查看相关寄存器、内存和外部存储器的内容。

常用的工具条上的命令有开始/暂停动态调试

,单步执行

,执行到光标处

等。

查看存储器内容的方式是在存储区地址写上要查看的初始地址就可以了。

比如D:

0000H,C:

0000H,X:

0000H。

将每行程序执行后的结果写到该行程序的注释部分。

2编写一个数据填充和数据块搬移程序。

仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#30H;R0指向30H单元

MOVR2,#16;R2作循环计数器

NEXT1:

MOV@R0,#'*';填充当前单元

INCR0;指针下移一个单元

DJNZR2,NEXT1;未填完16个单元,继续

;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中

MOVR1,#30H

MOVDPTR,#0100H

MOVR3,#10H

NEXT2:

MOVA,@R1

MOVX@DPTR,A

INCR1

INCDPTR

DJNZR3,NEXT2

SJMP$

END

3编写一个多字节的算术运算程序。

仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,将运行结果写到程序的注释部分。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H

MOVR1,#12H

MOVR0,#34H;R1R0=?

MOVR2,#21H

MOVR3,#0EFH;R3R2=?

;下面是加法运算

MOVA,R0

ADDA,R2;低8位相加

MOVR4,A;

MOVA,R1

ADDCA,R3;高8位相加

MOVR5,A

MOVA,#0

ADDCA,#0

MOVR6,A;R6存放进位R6R5R4=?

NOP

;以下是减法运算

CLRC

MOVA,R2

SUBBA,R0

MOVR4,A

MOVA,R3

SUBBA,R1

MOVR5,A

MOV,#00H

SUBBA,#00H

MOVR6,A;R6R5R4=?

;以下是乘法运算

NOP

MOVA,R0

MOVB,R2

MULAB

MOVR4,A

MOVR5,B

MOVA,R1

MOVB,R2

MULAB

ADDA,R5

MOVR5,A

MOVA,B

ADDCA,#00H

MOVR6,A

NOP

MOVA,R0

MOVB,R3

MULAB

ADDA,R5

MOVR5,A

MOVA,B

ADDCA,R6

MOVR6,A

MOVA,R1

MOVB,R3

MULAB

ADDA,R6

MOVR6,A

MOVA,B

ADDC,#00H

MOVR7,A;R7R6R5R4=?

SJMP$

END

教学

后记

项目名称

实验二走马灯实验

实验类别

必做

课时安排

4

授课班级

电子信息工程05级

授课时间

授课人数

分组情况

教学

目的

1、学会DP-51PRO实验仪监控程序下载、动态调试功能的使用;

2、理解和学会单片机并口的作为通用I/O的使用;

3、理解和学会单片机外部中断的使用;

4、了解单片机定时器/计数器的应用。

预习

要求

1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。

仿照实验一的过程,编写程序、汇编、连接、软件仿真,基本达到功能要求。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVA,#0FEH;准备点亮第一只发光管

NEXT:

MOVP1,A

ACALLDELAY

RLA;准备点亮下一只发光管

SJMPNEXT

;延时子程序

DELAY:

MOVR2,#5

DELAY2:

MOVR3,#100

DELAY3:

MOVR4,#100

DJNZR4,$

DJNZR3,DELAY3

DJNZR2,DELAY2

RET

END

调试成功以后,将程序中的ORG部分的偏移地址再加上8000H,重新编译。

按照原理图,将A1区P1口的引线分别连接到D1区J52上。

下载监控程序到实验仪上。

短接A1区的JP15,连接实验仪串口和主机的串口,将MOD-SW1拨到LOAD一边,FLASH-E和SRAM-E断开,运行主机上DPFLASH,下在MON51.HEX到实验仪上。

在Keil系统上,完成程序的动态调试。

在主菜单DEBUG下的OptionsforTarget‘Target1’,点击Debug,选择UseKeilMonitor-51Driver,并且设置其他参数,将MOD-SW1拨到RUN一边,就可以进行动态调试了。

观察和记录各个寄存器内容的变化,端口P1的内容变化,以及对应的LED的变化。

全速运行时,观察LED的变化。

2.编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。

用外部中断0控制走马灯的暂停/继续。

ORG0000H

LJMPMAIN

ORG0003

LJMPZEX0

ORG0100H

MAIN:

MOVSP,#60H

CLRIT0

SETBEX0

SETBEA

MOVA,#0FEH;准备点亮第一只发光管

MOVR5,#00H

NEXT:

CJNER5,#00H,NEXT;00表示继续,FF表示暂停

MOVP1,A

ACALLDELAY

RLA;准备点亮下一只发光管

SJMPNEXT

;延时子程序

DELAY:

MOVR2,#5

DELAY2:

MOVR3,#100

DELAY3:

MOVR4,#100

DJNZR4,$

DJNZR3,DELAY3

DJNZR2,DELAY2

RET

;外部中断0服务子程序

ZEX0:

PUSHACC

MOVA,R5

XRLA,#0FFH

MOVR5,A

POPACC

RETI

END

将A1区P1口的引线分别连接到D1区J52上,将D1区的J53的KEY1连接到A1区的外部中断0上。

3.编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。

用定时/计数器0控制走马灯的闪烁速度。

ORG0000H

LJMPMAIN

ORG000BH

LJMPZIT0

ORG0100H

MAIN:

MOVSP,#60H

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVR6,#20

MOVR7,#0FEH;准备点亮第一只发光管

SETBET0

SETBEA

SETBTR0

SJMP$

;定时中断0服务子程序

ZIT0:

DJNZR6,ZRET

MOVA,R7

MOVP1,A

RLA

MOVR7,A

MOVR6,#20

ZRET:

RETI

END

改变程序中R6的值,观察走马灯的移动速度。

教学

后记

项目名称

实验三串口通信

实验类别

必做

课时安排

4

授课班级

电子信息工程05级

授课时间

授课人数

分组情况

教学

目的

1、学会实验仪用户程序的下载和执行;

2、理解单片机的串口通信原理,学会单片机串行口的使用;

3、学会单片机串行口中断的使用。

预习

要求

1、编写一段程序,利用单片机的串行口向PC机发送字符串。

在下面的原理图中,短接JP15就将单片机的串口,通过MAX232和插座连接到主机的串口信号线上了。

编写程序,成功通过KEIL系统的编辑、编译和部分程序的动态调试。

ORG0000H

LJMPMAIN

ORG0050H

DB'WELCOMETOZSC'

ORG0100H

MAIN:

CLREA

MOVSP,#60H;给堆栈指针赋初值

MOVTMOD,#20H;设置T1为方式2

MOVTH1,#0FDH;设置波特率为9600

MOVTL1,#0FDH

MOVSCON,#40H;设置串口位方式1

MOVPCON,#00H

SETBTR1;定时器1开始计数

MOVR7,14

MOVDPTR,#0050H

LOOP:

MOVA,#00H

MOVCA,@A+DPTR

MOVSBUF,A;开始发送

JNBTI,$

CLRTI

INCDPTR

DJNZR7,LOOP

SJMP$

END

连接实验仪的串口和主机的串口,参照实验二中的方法将用户程序下载到单片机的FLASH中。

运行主机上的DPFLASH,点击主菜单上的串口调试器,并设置相应的参数。

将MOD-SW1拨到RUN一边,按一下复位键,程序就开始运行了。

观察主机上接收到的字符串。

2、编写一段程序,接收主机串行口发送来的字符,在单片机接收到‘A’的时候返回一个‘T’表示正确,否则返回一个‘F’表示错误。

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

CLREA

MOVSP,#60H;给堆栈指针赋初值

MOVTMOD,#20H;设置T1为方式2

MOVTH1,#0FDH;设置波特率为9600

MOVTL1,#0FDH

MOVSCON,#50H;设置串口位方式1

MOVPCON,#00H

SETBTR1;定时器1开始计数

LOOP:

JNBRI,$

CLRRI

MOVA,SBUF

CJNEA,#'A',FSEND

MOVA,#'T'

AJMPSEND

FSEND:

MOVA,#'F'

SEND:

JNBTI,$

CLRTI

MOVSBUF,A;开始发送

SJMPLOOP

END

3、采用串行口中断方式,实现实验内容和步骤2的要求。

ORG0000H

LJMPMAIN

ORG0023H

LJMPZRS232

ORG0100H

MAIN:

CLREA

MOVSP,#60H;给堆栈指针赋初值

MOVTMOD,#20H;设置T1为方式2

MOVTH1,#0FDH;设置波特率为9600

MOVTL1,#0FDH

MOVSCON,#50H;设置串口位方式1

MOVPCON,#00H

SETBES

SETBTR1;定时器1开始计数

SETBEA

SJMP$

ZRS232:

JBRI,ZR

ZT:

CLRTI

AJMPZEND

ZR:

CLRRI

MOVA,SBUF

CJNEA,#'A',FSEND

MOVA,#'T'

AJMPSEND

FSEND:

MOVA,#'F'

SEND:

MOVSBUF,A;开始发送

ZEND:

RETI

END

教学

后记

项目名称

实验四并行模数转换

实验类别

必做

课时安排

4

授课班级

电子信息工程05级

授课时间

授课人数

分组情况

教学

目的

1、了解系统设计的基本概念;

2、掌握A/D芯片ADC0809与单片机的接口方法及ADC0809芯片性能;

3、了解单片机实现数据采集的方法。

预习

要求

1.编写一段程序,使P3.5口输出不同频率的脉冲,控制蜂鸣器发出不同的音调,并且输入0~255用以改变蜂鸣器的音调;将P3.5和J8相连接。

DACDATA30H

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDAC,#44

LOOP:

MOVR7,DAC

SETBP3.5

LOOP1:

MOVR6,#3

DJNZR6,$

DJNZR7,LOOP1

MOVR7,DAC

CLRP3.5

LOOP2:

MOVR6,#3

DJNZR6,$

DJNZR7,LOOP2

AJMPLOOP

END

改变DAC的值,观察声调的变化。

2.AD0809DATA7000H

DACDATA30H

TIME0HEQU00H

TIME0LEQU00H

ORG0000H

LJMPMAIN

ORG0003H

LJMPZEX0

ORG000BH

LJMPZINT0

ORG0100H

MAIN:

MOVSP,#60H

SETBIT0

SETBEX0

SETBEA

MOVDPTR,#AD0809

MOVX@DPTR,A

MOVTMOD,#01H

MOVTH0,#TIME0H

MOVTL0,#TIME0L

MOVDAC,#44

LOOP:

MOVR7,DAC

SETBP3.5

LOOP1:

MOVR6,#3

DJNZR6,$

DJNZR7,LOOP1

MOVR7,DAC

CLRP3.5

LOOP2:

MOVR6,#3

DJNZR6,$

DJNZR7,LOOP2

AJMPLOOP

ZEX0:

PUSHPSW

PUSHACC

MOVDPTR,#AD0809

MOVXA,@DPTR

MOVDAC,A

POPACC

POPPSW

RETI

ZINT0:

CLRTR0

MOVTH0,#TIME0H

MOVTL0,#TIME0L

MOVDPTR,#AD0809

MOVX@DPTR,A

SETBTR0

RETI

END

ADC0809的时钟从B2区的时钟源获取,选用时钟源的1/32分频(也可以通过D触发器将单片机ALE信号分频获取)。

使用导线把A2区的J66接口与B4区的J1接口从A0~A2到ADDA~ADDC分别对应相连;使用导线把A2区的J63接口的A15与B4区J1接口的/0809CS相连;使用导线把A2区的J58接口的INT0与B4区J1接口的/EOC相连;使用导线把A2区的J58接口的T1与D4区的J8接口的BUZZ相连;使用导线把B4区的J1接口的+Vref、-Vref分别与VCC、GND相连;使用导线把B4区的J44接口的IN0与D2区的J18中间接口相连;将B2区J112的1/32分频与B4区J1的AD_CLK连接,短接B2区JP20跳线,X2上接上晶振;使用短路片把W2电位器与VCC、GND相连;

编写汇编程序,实现本实验的模拟要求;

下载程序,运行程序,调节电位器电压,观察蜂鸣器声调的变化;

教学

后记

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

当前位置:首页 > 成人教育 > 成考

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

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