单片机原理及应用实验指导书.docx

上传人:b****3 文档编号:4681761 上传时间:2023-05-07 格式:DOCX 页数:30 大小:415.71KB
下载 相关 举报
单片机原理及应用实验指导书.docx_第1页
第1页 / 共30页
单片机原理及应用实验指导书.docx_第2页
第2页 / 共30页
单片机原理及应用实验指导书.docx_第3页
第3页 / 共30页
单片机原理及应用实验指导书.docx_第4页
第4页 / 共30页
单片机原理及应用实验指导书.docx_第5页
第5页 / 共30页
单片机原理及应用实验指导书.docx_第6页
第6页 / 共30页
单片机原理及应用实验指导书.docx_第7页
第7页 / 共30页
单片机原理及应用实验指导书.docx_第8页
第8页 / 共30页
单片机原理及应用实验指导书.docx_第9页
第9页 / 共30页
单片机原理及应用实验指导书.docx_第10页
第10页 / 共30页
单片机原理及应用实验指导书.docx_第11页
第11页 / 共30页
单片机原理及应用实验指导书.docx_第12页
第12页 / 共30页
单片机原理及应用实验指导书.docx_第13页
第13页 / 共30页
单片机原理及应用实验指导书.docx_第14页
第14页 / 共30页
单片机原理及应用实验指导书.docx_第15页
第15页 / 共30页
单片机原理及应用实验指导书.docx_第16页
第16页 / 共30页
单片机原理及应用实验指导书.docx_第17页
第17页 / 共30页
单片机原理及应用实验指导书.docx_第18页
第18页 / 共30页
单片机原理及应用实验指导书.docx_第19页
第19页 / 共30页
单片机原理及应用实验指导书.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及应用实验指导书.docx

《单片机原理及应用实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验指导书.docx(30页珍藏版)》请在冰点文库上搜索。

单片机原理及应用实验指导书.docx

单片机原理及应用实验指导书

 

单片机原理及应用

 

实验指导书

 

目录

实验一HT-IDE集成开发环境2

实验二HTMCU查表指令的使用15

实验三流水灯显示18

实验四按键检测及数码管显示23

 

实验一HT-IDE集成开发环境

1.实验目的:

(1)认识HT-IDE集成开发环境。

(2)掌握IDE3000软件的使用。

(3)掌握汇编语言基本程序设计。

2.实验设备:

硬件:

PC机

3.HT-IDE简介:

HT-IDE(HoltekIntegratedDevelopmentEnvironment)是盛群公司提供的用于设计盛群8位单片机应用程序的集成开发环境,可使用ASM和C两种程序设计语言。

该开发环境由硬件和软件两部分构成。

硬件工具为HT-ICE仿真器,提供多种实时仿真功能,包含多功能跟踪、单步执行和断点设定功能,集成了OTP烧写器。

软件方面有HT-IDE3000平台,此平台集成了所有的软件工具,例如编辑器、编译器、连接器、函数库管理器和符号除错器,使程序开发过程更加容易,并提供友好的视窗界面。

HT-IDE提供两种仿真环境:

硬件仿真(Emulationmode)与软件仿真(Simulationmode)。

进行硬件仿真,必须通过并行打印口将HT-ICE仿真器连接至主机;而软件仿真则无需HT-ICE,就可以进行程序开发。

此软件仿真可以仿真盛群8位单片机,以及HT-ICE硬件的所有基本功能。

安装HT-IDE3000系统的硬件要求Pentium等级以上CPU之PC/AT兼容机器;软件要求操作系统为Windows95/98/NT/2000/XP及更新版本。

HT-IDE系统硬件配置如图1.1所示:

图1.1

如果不进行硬件仿真,即不使用HT-ICE,也可使用软件仿真进行调试、除错。

4.实验步骤:

本次实验采用HT-IDE的软件仿真模式,使用一个Led_show.asm程序(源程序见后)来说明操作步骤,该程序是利用PA.0I/O引脚控制LED产生一亮一灭的闪烁效果。

MCU使用HT48R70A。

(1)启动HT-IDE3000,可通过PC机桌面dpj文件夹下的快捷方式,或开始菜单->程序->HoltekMCUDevelopmentTools->HT-IDE3000,启动该软件,会出现图1.2的画面。

图1.2

如果出现图1.3所示的’UnabletoconnecttoHT-ICE’错误提示信息,是因为在HT-IDE3000中的项目设置是工作在硬件仿真模式(Emulationmode,需使用HT-ICE),但计算机与HT-ICE之间没有连接或连接失败导致。

图1.3

(2)选择菜单Options/Projectsettings,在弹出的对话框中选中DebugOption页(图1.4),在右下角的Mode中勾选Simulation,设置项目工作在软件仿真模式(Simulationmode),则会出现如图1.5所示画面。

图1.4

图1.5

(3)HT-IDE3000是以项目方式来管理用户的文件,所以在开发一个新的应用程序时,必须先建立一个Project。

新建一个项目的方法是选择菜单Project/New,如图1.6。

图1.6

(4)弹出如图1.7所示的对话框,要求使用者给项目命名(项目名称的后缀名为.PRJ);指定项目存取路径;并选择此项目使用的MCU型号。

在本实验中,我们选用HT48R70A单片机。

说明:

MCU型号列表中,有“C”字母的为掩膜版本,“R”为OTP(One-TimeProgrammable)版本,只有“E”字符的为电可擦除可编程MTP型单片机,既含“F”又有“E”字符的为电可擦除可编程flash单片机。

图1.7

(5)设定完成图中相关选项对话框后,按下Finish键即会出现图所示1.8的掩膜选项配置窗口。

让使用者对系统时钟,PA口唤醒,定时/计数器时钟源等进行设置,系统会根据所选定的单片机以及该配置,生成一个掩膜选项文件。

在使用Project菜单的Build命令编译此项目的过程中,系统需要此掩膜选项文件以便生成执行文件。

在项目建立后,可以使用菜单Tools下的ConfigurationOptions命令去修改单片机的掩膜选项,之后必须重新使用Build命令编译项目,否则修改无效。

图1.8

该选项配置根据用户系统需求而设定。

在本次实验中,仅取消看门狗定时复位功能。

(6)配置完毕点击“OK”键后,会弹出图1.9的项目设置对话框。

图1.9

说明如下:

Projectsetting设定Project菜单中Build命令的默认参数值。

在程序开发期间,项目选项依据应用程序的需求而改变。

HT-IDE3000在执行Project菜单中的Build命令时,将根据这些选项的设定生成对应的任务文件及内容。

该设置可以使用菜单Options/ProjectSettings打开再次进行修改。

相关选项的意义说明如下:

·MicroController

项目中的单片机名称。

使用滚动条浏览可使用的单片机,并选择合适的单片机。

·Language(编译器选项)

盛群允许其他的合作厂商为其MCU提供C编译器。

目前你也可以选用Hi-Tech所提供的另一种选择。

·Assembler/CompilerOptions

编译器的命令行选项。

DefineSymbol栏允许使用者对指定的符号定义数值,而所指定的符号则在编译过程中使用。

语法如:

symbol1[=value1][,symbol2[=value2][,...]]

例如:

debugflag=1,newver=3另外,可选中生成列表文件(Generatelistingfile)检查框以便生成源程序列表文件。

·Linkeroptions

指定连接器的选项。

Libraries文字框用来指定被连接器所参考使用的函数库文件。

例如:

libfile1,libfile2也可以按下Browse键来浏览及选择函数库文件。

另外,程序段地址(Sectionaddress)输入框则是用来设定程序段的ROM/RAM地址。

例如:

codesec=100,datasec=40

最后一行的映射文件检查框(Generatemapfile)则是命令连接器生成项目的程序映射文件。

(7)点击图1.9中的确定按钮,建立好项目后,出现如图1.10所示画面,窗口左边的工作区域出现树型目录表示当前项目MCU信息及包含文件。

接下来就是开始编辑此项目所需的程序。

图1.10

(8)执行菜单File/New,即可打开程序编辑窗口,输入源程序。

注意:

使用汇编语言进行单片机程序设计,源程序扩展名为.asm。

图1.11

(9)程序编辑完毕,并保存,命名为led_show.asm,与当前项目之间尚无任何关系,需要将程序加入项目中。

如图1.12,执行Project/Edit,打开图1.15所示的ProjectEdit对话框。

选择源文件后,点击Add按钮,将程序加入此项目中。

图1.12

图1.13

(10)编译项目内的程序。

在Build菜单中,有三种方式可用来编译项目内的程序:

·Assembler/Compiler对项目内的程序进行编译,不生成任何文件。

·Build只对项目内修改后但尚未编译的源程序进行编译,将生成的目标文件连接,并生成任务文件和除错文件,如果HT-ICE的电源已打开,并且与个人计算机相连,则下载任务文件至HT-ICE。

·RebuildAll与Build命令执行的工作相同,其差异在于RebuildAll命令对项目内所有文件进行编译和连接。

执行Build或RebuildAll,对当前项目进行编译和连接,此时“Output”窗口会出现相关的编译信息。

对有语法错误的程序,会显示错误行号及提示信息。

如图1.14。

注意:

程序编译无误后,只是汇编语言语法上没有错误了,并不表示逻辑功能是正确的!

图1.14

(11)若程序没有语法错误,则出现图1.15的画面。

图1.15

(12)选择菜单Window/ROM,Window/RAM,打开ROM,RAM窗口,

图1.16

可以看到程序被存放在ROM中地址为0010h的开始的地方。

图1.17

而RAM中20H-FFH为一般数据存储器空间。

(13)在软件仿真模式下,可用单步执行命令运行程序,说明如下:

•StepInto命令一次只执行一条指令就停止,但是如果所执行的指令是CALL

程序指令时,则会进入此子程序并且停在子程序中的第一条指令处。

•StepOver命令一次只执行一条指令就停止,但是如果所执行的指令是

CALL程序指令时,则不会进入子程序,而是停留在CALL指令后的下一

条指令处,此子程序中所有的指令会被执行,而且寄存器与状态寄存器的

内容也根据执行的结果做改变。

•Stepout命令只能在仿真停在子程序之内时被使用,它会执行当前停在的程

序行和RET指令(包括RET指令)之间所有的指令,然后停留在CALL

指令后的下一条指令处。

注意:

Stepout命令只能被使用在当前的停止点在子程序内的情况下,否则会发生无法预期的结果。

选择Debug/StoppingDebugging终止单步运行。

单步运行时,可选择Window/Variable,Window/Rigister观察变量,寄存器值的改变。

说明:

本实验没有使用硬件仿真,因此无法看到灯的闪烁。

5.附示例程序led_show.asm(MCUname:

HT48R70A-1)

;Program:

TEST1.asm

;Function:

LEDDisplay

#includeHT48R70A-1.INC

MY_DATA.SECTION'DATA'

DEL1DB?

DEL2DB?

MY_CODE.SECTION'CODE'

ORG10H

START:

CLRPAC.0

SETPA.0

REP:

CPLPA

CALLDELAY

JMPREP

DELAYPROC

MOVA,500

MOVDEL1,A

DEL_1:

MOVDEL2,A

DEL_2:

SDZDEL2

JMPDEL_2

SDZDEL1

JMPDEL_1

RET

DELAYENDP

END

6.练习题

将下程序补充完整,将数11H写入ADRES1—ADRES4中。

请使用间接寻址寄存器IAR0和间接寻址指针MP0,并使用循环程序设计。

用软件仿真调试该程序。

#includeHT48R70A-1.INC

DATA.SECTION'DATA'

ADRES1DB?

ADRES2DB?

ADRES3DB?

ADRES4DB?

BLOCKCOUNTDB?

CODE.SECTION'CODE'

START:

MOVA,04H

MOVBLOCKCOUNT,A

MOVA,OFFSETADRES1

END

思考题:

1没有用ORG指令定位时,程序被默认存放在ROM何处?

2数据段中,定义的5个变量被分配的RAM地址分别是多少?

3MP0与IAR0的关系?

实验二HTMCU查表指令的使用

1.实验目的:

(1)掌握HTMCU查表指令的使用。

(2)掌握IDE3000软件仿真的使用。

2.实验设备:

硬件:

PC机

软件:

IDE3000

3.查标指令简介:

Holtek各系列单片机的程序存储器(ROM)空间是按页(PAGE)来划分的,一页为256单元(每个单元可能是14bit、15bit或16bit,取决于单片机的型号)。

这样,整个ROM空间正好划分为若干个连续的页。

当前页是针对某一特定的程序指令而言的,指该指令在ROM中所处的页,最后页是指ROM的最后一页。

数据的储存通常由寄存器完成,然而当处理大量的数据时,其庞大与复杂的内容常造成对指定存储器储存上的不便。

为了改善此问题,Holtek单片机允许在程序存储器中设定一块数据可直接存取的区域,称之为表。

单片机ROM中的任何区域都可以用来当表查(不管该区域存放的是程序,还是真正的表格,都可以当表格来查)。

Holtek单片机提供了用于存放表格数据地址的表格指针寄存器TBLP,以及两个用于查表的指令:

TABRDC[m]和TABRDL[m]。

TBLP:

存放某个表格数据的地址,它的值必须在表格读取指令前加以设定,可以被如INC或DEC的指令所改变。

TABRDC[m]:

读取当前页的程序存储器表格内容,将所读取到的低字节存放到数据存储器m,而高字节内容则存到TBLH寄存器。

TABRDL[m]:

读取最后一页的程序存储器表格内容,将所读取到的低字节存放到数据存储器m,而高字节内容则存到TBLH寄存器。

(1):

使用TABRDC指令

...

MOVA,60H

MOVTBLP,A;TBLP=60H(POINTOR)

TABRDCA;ACC=34H

NOP;NOPFORWATCHINGTHELOWBYTE

MOVA,TBLH;ACC=12H

NOP

...

ORG60H

DC1234H,3567H;TABLE

...

(2):

使用TABRDL指令

...

MOVA,00H

MOVTBLP,A;TBLP=00H(POINTERORLOWPOINTER)

TABRDLA;ACC=77H

NOP;NOPFORWATCHINGTHELOWBYTE

MOVA,TBLH;ACC=12H

NOP;NOPFORWATCHINGTHEHIGHBYTE

...

ORG1F00H;对48x70型MCU,最后一页的起始地址是1F00H

DC1277H,3567H;TABLE

...

4.实验内容:

示例程序实现的功能是找出表中数据最大值。

通过软件仿真(Simulationmode)观察实验结果。

打开软件仿真器的方法见实验一。

选择菜单Window/RAM,Window/Register,Window/Variable,分别打开数据存储器,寄存器和变量窗口;利用菜单Debug/StepInto命令单步运行程序,观察相应值的变化。

如图2.1所示。

被黄色高亮标示的程序行,是第一个被执行的程序行。

图2.1

5.附示例程序max.asm(MCUname:

HT48R70A-1)

 

#INCLUDEHT48R70A-1.INC

MY_DATA.SECTION'DATA'

MAXDB?

COUNTDB?

TABDATADB?

MY_CODE.SECTION'CODE'

ORG00H

START:

MOVA,10

MOVCOUNT,A

MOVA,0

MOVMAX,A

MOVA,00H

MOVTBLP,A

LOOP:

TABRDLACC

MOVTABDATA,A

SUBA,MAX

MOVA,TABDATA

SZSTATUS.0

MOVMAX,A

INCTBLP

DECCOUNT

SZCOUNT

JMPLOOP

ORG1F00H

DC12H,03H,29H,15H,88H,00H,26H,90H,32H,99H

END

6.练习题:

(1)修改程序,用TABRDC指令实现。

(2)将这十个数按最大到小的顺序排列。

 

实验三流水灯显示

1.实验目的:

(1)掌握HTHTMCUI/O口控制的编程方法。

(2)掌握S1000软件的使用。

2.实验设备:

硬件:

PC机,电路板,USB并口线

软件:

IDE3000,S1000

3.开发环境简介:

若没有HT-ICE仿真器,HT-IDE集成开发环境还有另外一种软硬件组成。

硬件方面,通过PC端USB口连接印刷电路板;软件采用IDE3000和EverProS1000,S1000软件是盛群公司提供的一种MTP(可多次烧写)使用者工具,可将在IDE3000中BUILD源程序后生成的MTP文件多次烧写至电路板上MCU中,并运行程序进行验证。

这种方式是一个认识HOLTEK8位微控制器的快捷便利、低成本途径。

该系统配置如图3.1:

 

图3.1

本次实验采用该种系统配置。

4.实验步骤

以实验一示例程序为例,利用PA.0I/O引脚控制LED产生一亮一灭的闪烁效果。

实验连线如下图所示。

 

图3.2

(1)新建项目,MCU选用HT48F50E。

注意:

本次实验需选用可多次编程MTP型单片机,即MCU型号中需带“F”或“E”字符,如HT48F50E,HT48E50。

连接后才能生成.MTP文件,(该文件用来下载到目标电路板上的单片机中)。

选用此类型单片机,项目只能工作在硬件仿真模式(EmulationMode),即软件仿真模式不可选。

对于连接中出现的“Error(D1011):

没有连接HT-ICE”错误可忽略。

(2)输入源程序,加入项目中。

(3)编译连接之后,若程序没有语法错误,OUTPUT窗口显示生成MTP文件,如图3.3。

生成MTP文件

图3.3

(4)按下开始菜单,在程序/HoltekMCUDevelopmentTools中选择EverProS1000,会弹出如图的主窗口。

注意:

在打开软件之前,请使用USB数据线连接PC机和目标板。

图3.4

(5)选择菜单File/Open,在如图3.5所示对话框中选择刚才在IDE3000中生成的mtp文件。

图3.5

文件内容就会被显示在此窗口(如图3.6)。

窗口左侧框内显示程序的二进制代码,窗口右侧框内显示要被写入数据EEPROM的代码。

图3.6

(6)选择菜单下载/所有,如图3.7。

将程序和数据代码下载到MTP单片机HT48F50E的对应地址中去。

下载菜单包含如下命令,可对MTP单片机进行编程:

·程序将当前打开的程序代码写入MTP单片机程序存储空间中。

·数据将当前打开的数据代码写入MTP单片机数据存储空间中。

·所有将当前打开的程序和数据代码写入MTP单片机相对应的存储空间中。

·擦除程序清除MTP单片机程序存储空间中的代码。

·擦除数据清除MTP单片机数据存储空间EEPROM中的代码。

·擦除所有清除MTP单片机程序和数据存储空间EEPROM中的代码。

图3.7

 

下载程序时,会出现显示下载百分比的进度条。

下载结束后,出现如图3.8所示对话框。

图3.8

(12)选择工具/复位命令运行该程序,图3.9。

图3.9

可以看到电路板上连接PA.0引脚的LED灯产生闪烁。

停止程序运行选择工具菜单下的掉电命令。

4.练习题

(1)编写一个流水灯程序,利用PA口输出控制,循环点亮8个LED灯(向左向右移动均可),实验连线如图3.10所示。

 

图3.10

提示:

请参考实验一示例程序;及左移指令(RL,RLC)、右移指令(RR,RRC)。

(2)修改程序,改变流水灯移动方向,即移动方向交替。

 

实验四按键检测及数码管显示

1.实验目的:

(1)掌握键盘扫描的方法。

(2)掌握七段数码管的显示方法。

2.实验设备:

硬件:

PC机,电路板,USB并口线

软件:

IDE3000,S1000

3.目标板七段显示器,4*4按键阵列介绍

七段显示器由8个LED组合而成,其结构如图所示。

a

常用的七段显示器分为共阳与共阴两种类型。

本实验使用的fb

七段显示器是共阳型的,其显示字形由阴极端以低电位来控制,g

即在相应引脚上输入低电平,点亮其对应的LED。

例如,要显ec

示字符1或2,得到得七段编码为:

●Dp

d

DP

G

F

E

D

C

B

A

“1”

1

1

1

1

1

0

0

1

“2”

1

0

1

0

0

1

0

0

“5”

1

0

0

1

0

0

1

0

据此可写出所有字符的七段编码。

目标板上共有4个七段数码管,COM0—COM3引脚用于选择需要点亮的七段数码管,输入低电平点亮。

SA—SP引脚分别对应A—P8个LED输入端。

输入为低电平点亮对应LED灯。

在微控制环境下,键盘输入为用户最常使用的与单片机沟通的接口。

本目标板上有一个4*4键盘。

引脚KA0—KA3用于选择键盘的列,引脚KB0—KB3用于选择键盘的行。

通常检测哪一个按键被按下的方法是:

利用单片机依次向KA0—KA3输出0,然后再去读KB0—KB3的值。

如果读回的值为”1111”,则表示没有键被按下。

KA0—KA3,KB0—KB3行列对应关系如下:

KB0

KB1

KB2

KB3

KA0KA1KA2KA3

例如当向KA0输出0时,若KB0—KB3读回的值为“0111”,说明1键被按下.

4.练习题

(1)将参考程序补充完整,重复扫描1,5两个按键,当其中一个按键被按下时,利用一个七段数码管显示按键编号。

提示:

编号为1,5两个按键在同一列,要判断哪一个被按下,只需向KA0输出0,然后读回KB3—KB0的值。

若读回值为“1110”,说明1键被按下;读回值为“1101”,说明5号键被按下。

可通过带进位的移位指令判断0出现的位置,从而判断被按下哪个键。

要在七段数码管上显示数字,需要将该数字的七段编码写入SA—SP。

 

A.实验连线如图4.1所示。

图4.1

B.程序参考流程图如图4.2:

 

图4.2

C.参考程序:

#includeHT48F50E.INC

data.section'data'

bufdb?

code.section'code'

org20h

start:

clrpac;指定PA口引脚为输出。

mova,0fh

movpbc,a;指定PB口低4位引脚为输入,高4位引脚为输出。

loop:

mova,pb;读PB口的值。

movbuf,a

anda,0fh;取PB口低4位,

suba,0fh;若相减为0,表示PB口低4位值全为1,同时z被置位,无键按下。

jmploop

rrcbuf

szstatus.0;判断C标志位

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

当前位置:首页 > 工作范文 > 行政公文

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

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