单片机实验指导书_第1页
单片机实验指导书_第2页
单片机实验指导书_第3页
单片机实验指导书_第4页
单片机实验指导书_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验指导书

目录

第一章:实验设备简介.............................

1.1系统实验设备的组成......................

1.2SiliconLabsC8051F单片机开发工具简介...

1.3DICE-C8051F嵌入式实验/开发系统简介....

第二章集成开发环境KEILC软件使用指南........

2.1KEILC软件具体使用说明.................

第三章实验指导..................................

3.1C8051F单片机I/O口交叉开关设立........

3.2数字I/O端口实验........................

3.3定期器实验...............................

3.4外部中断实验.............................

3.5键盘显示实验.............................

3.6六位动态LED数码管显示实验.............

3.7RS3232串口通讯实验.....................

3.8综合设计................................

使用特别说明:

(1)每次实验前,请仔细阅读实验指导,连线完毕,检查无误后,方可打

开电源。即连线时必须在断电状态下。

(2)程序运营过程中,不要关闭电源,假如要断电,必须停止运营程序,

并且退出程序调试状态,否则会引起KEILC软件非正常退出,甚至引

起DICE-EC5仿真器工作异常。

(3)如出现上述(2)的的误操作,引起DICE-EC5仿真器工作异常,可对

DICE-EC5仿真器进行复位。(在光盘中找到文献夹“USBReset"中的

"USBDebugAdapterFirmwareResetw文献,双击运营,在弹出的

对话框中点击“Updatefirmwarew按钮,在提醒成功后,点击“0K”

按钮,退出复位程序。DICE-EC5仿真器即可正常工作。在下一次调试、

下载程序时会提醒"Doyouwanttoupdateserialadapternow?,

点击“拟定”即可。

第一章:实验设备简介

1.1系统实验设备的组成

DICE-C8051F嵌入式实验/开发系统由C8051F020CPU板、DICE-EC5仿真

器和系统实验板三部分组成,应用该设备可进行片上系统单片机较典型应用

的实验,请参见以下介绍。

1.2SiliconLabsC8051F单片机开发工具简介

1.2.1开发工具概述

SiliconLabs的开发工具实质上就是计算机IDE调试环境软件及计算

机USB到C805到

单片机JTAG口的协议转换器(DICE-EC5)的组合。SiliconLabsC8051F系

列所有的单片机片内均设计有调试电路,该调试电路通过边界扫描方式获取

单片机片内信息,通过4线的JTAG接口与开发工具连接以便于进行对单片机

在片编程调试。DICE-C8051F嵌入式实验/开发系统中的C8051F020CPU板上

的单片机为C8051F系列中的卜,020。

仿真器(DICE-EC5)一端与计算机相连,另一端与C8051F单片机JTAG口

相连,应用Keil的uVision2调试环境就可以进行非侵入式、全速的在系统

编程(TSP)和调试。

SiliconLabs开发工具支持观测和修改存储潜和寄存器支持断点、观

测点、堆栈指示器、

单步、运营和停止命令。调试时不需要额外的目的RAM、程序存储器、定期

器或通信通道,并巨所有的模拟和数字外设都正常工作。

1.2.2开发工具重要技术指标

•支持的目的系统:所有C8051Fxxx系列单片机。

・系统时钟:最大可达25Mhz。

・通过USB接口与PC机连接。

•支持汇编语言和C51源代码级调试。

•工具支持(KeilC)o

1.2.3IDE软件运营环境

规定PC机可以运营开发工具软件并能与串行适配器通信。对PC机有如下系

统规定:

•Windows95/98/Me/NT/2023/XP操作系统

•32MbRAM

•40Mb自由硬盘空间

・空闲的USB口

1.2.4开发工具与PC机硬件连接

在系统编程和调试环境如图下所示。

硬件连接及软件安装:

•将USB串行电缆的一端与教学机的DICE-EC5仿真器USB接口连接;

•连接USB串行电缆的另一端到PC;

・给目的系统上电:

•插入CD并运营"SETUP.EXE",将IDE软件安装到您的PC机;

•在PC机的开始菜单的“程序”项中选择keiluVision2图标,运营IDE软

件。

C¥'3HALlitegraXI

DevebpmeitEivtoimeit

WINDOWO«-98NTUE

usb_

,SHMBftxW,■独蜡1

11

JTAG(x4),VDD,GND

V—・b

/ITARGETF)c日

(二s

Vi---:^4B|1I:

1

1.3DICE-C8051F嵌入式实验/开发系统简介

1.3.1C8051F020CPU板概述

C8051F020CPU板是为了便于安装而设计的;C8051F020CPU板是将

C8051F020

的所有引脚(100个引脚)引到四个双排针;该四组双排针可与不同用户设计

的应用系统

连接,如在该教学系统上将和系统实验板连接。

说明:C8051F020CPU板是将C8051F020的所有引脚(100个引脚)引到

四个双排针,分别为JX1、JX2、JX3、JX4,四个双排针的内圈100个排针(内

圈每个引脚注明引脚含义)与C8051F020芯片的相应引脚连接。而四个双排

针的外圈100个排针(外圈标有引脚号)部分引脚悬空,而大部分引脚已经

与实验仪上的实验模块连接。(具体连接请看硬件连接原理图)。

因此,本实验/开发系统大部分实验模块只要将其相应引脚的短路块插

好,即可实现与C8051F020单片机系统的连接。而一部分独立实验模块,必

须通过导线与C8051F020单片机连接,连接前把要用到的引脚上的短路块拔

掉,然后用导线将内圈相应引脚与外部模块连接。实验完毕后再把相应的

短路块插好。

1.3.2C8051F020片上系统单片机片内资源

①、模拟外设

(1)逐次逼近型8路12位ADCO

转换速率最大lOOksps

可编程增益放大器PGA

温度传感器

(2)8路8位ADC1输入与P1口复用

转换速率500ksps

可编程增益放大器PGA

(3)两个12位DAC

(4)两个模拟电压比较器

(5)电压基准内部提供2.43V

外部基准可输入

(6)精确的VDD监视器

②、高速8051微控制器内核

流水线式指令结构速度可达25MIPS

22个矢量中断源

③、存储器

片内4352字节数据RAM

64KBFlash程序存储器可作非易失性存储

外部可扩展的64KB数据存储器接口

④、数字外设

8个8位的端口I/O

I2C、SPI、2个增强型UART串口

可编程的16位计数器/定期器阵列(PCA)

5个通用16位计数器/定期器

专用的看门狗WDT

更具体资料可参见SiliconLabsC8051I?02xdatasheet

1.3.3DICE-C8051F嵌入式实验/开发系统硬件组成

(1)CPU板:CPU核心模块采用C8051F020芯片,该芯片是C8051F系列

单片机中功能最为其全的一款;

(2)片内:64KFLASH,4KXRAM

片外扩展:256KFLASH,32KXRAM

(3)CPU板C8051F020芯片I/O引脚所有引出,可以和用户外部电路连

接;

(4)实验系统带有JTAG接口,并配有DICE-EC3型USB高速通讯仿真

器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统

调试、仿真;

(5)4*4阵列式键盘;

(6)8位逻辑电平开关输出、8位LED逻辑电平显示;

(7)6位动态八段LED数码管;

(8)2路单脉冲信号发生电路和1路8MHz时钟发生电路;

(9)时钟分频电路;

(10)模拟量发生器电路和逻辑笔电路;

(11)8*8LED点阵及驱动电路;

(12)128*64LCD液晶显示屏;

(13)蜂鸣器电路;

(14)直流电机测速电路;

(15)四相步进电机及驱动电路;

(16)继电器电路及接口;

(17)双通道RS-232接口;

(18)SPI接口,LED数码管显示;

(19)IIC接口,接24coi串行EEPROM;

(20)HC接口,PCF8563日历时钟;

(21)8路12位AD,2路12位DA接口;

(22)D12USB从机通信;

(23)SL811USB主机通信;

(24)RTL8O1910M以太网通信;

1.3.4DICE-C8051F嵌入式实验/开发系统地址及初始化说明

・地址分派如下:

OxOOOO-Ox7fff,数据存储器SRAM地十范围

0x8000-0x87ff,Dl2cs片选

0x8800-0x8fff,SL811cs片选

0x9000-0x97ff,RTL8019_CS片选

0x9800-0x9fff,LCDCS片选

0xA000-0xA7ff,保存

0xA800-0xAfff,保存

0xB000-0xB7ff,保存

0xB800-0xBfff,保存

OxcOOO-Oxffff(xl6),Flash,片选地址由P4低4位端口拟定

・系统初始化:

C8051F020CPU板使用外部22.1184M晶振,系统初始化后应用外部

22.1184M晶振,假如不进行系统初始化,系统将使用内部晶振,默认值为

2M,也可以通过设立OSCICN寄存器改变内部晶振的大小(可选值为2M、4M

8M、16M)o

•端口初始化:

我们根据C8051F020CPU板及实验系统设计方案,配置交叉开关,为

UARTO、SPI、SMBus、UART1、CEXO>CPO、TO、Tl>INTO、INTI、INT2和INT3

分派端口引脚。此外,我们将外部存储器接口配置为复用方式并使用高端口。

配置环节如下:

(1)按CPOE=1,EC1OE=O,PCAOME=OO1,UARTOEN=1,SPIOEN=1,SMBOEN=1设立

XBR0=0x8f;

(2)按SYSCKE=O,T2EXE=O,T2E=O,INT1E=1,T1E=1,INTOE=LTOE=1,CP11E=O

设立XBR1二Oxlc:

(3)按WEAKPUD=O,XBARE=1,位5为0用

T4EXE=0,T4E=0,UART1E=1,EMIFLE=O,CNVSTE=O设立XBR2=0x44

(4)将外部存储器接口配置为复用方式,并使用高端口,有

PRTSEL=1,EMD2=O。

(5)将作为数字输入的端口1引脚配置为数字输入方式,设立P1MDIN为

OxFFo

(6)通过设立POMDOUT=0x34、PlMDOUT=Oxfd、P2MD0UT=OxfO、P3MD0UT=

Oxff,将低端口输出方式设立为推挽方式。设立高端口输出方式

P740UT=0xf7;总线输出方式应考虑工作频率和驱动能力,在高速和高驱

动时总线应设立为推挽方式,在低速和低驱动时漏极开路也可满足规

定,但稳定性不高。

(7)设立外部存储器配置EMIOCF二0x2d;设立外部存储器时序控制

EMT0TC=0x9e;假如LCD不能正常显示可以使EMIOCF=0x2f,EMTOTC=Oxff

设立为最大值;也可以减小外部晶振或使用内部晶振。

第二章集成开发环境KEILC软件

使用指南

2.1KEILC软件具体使用说明

KeilC安装:见・.\tools\KeilC51V751a_Full\安装说明.txt;

安装完毕后,假如要使用DICE-EC5仿真器来仿真C8051F系统单片机,

还需要安装驱动程序:进入“Keil驱动-V2.21”,点击“SiC8051F_uv2”,

直至安装完毕。

进入KeilC51后,屏幕如下图所示。几秒钟后出现编辑界

ThjeIntegration

IDEfor

Microcontroller

ThisprogramisprotectedbyU.S.andinternationalcopyrightlaws.

启动KeilC51时的屏幕

进入KeilC51后的编辑界面

简朴程序的调试:

学习程序设计语言、学习某种程序软件,最佳的方法是直接操作实践。

下面通过简朴的编程、调试,引导大家学习KeilC51软件的基本使用方法

和基本的调试技巧。

1)建立一个新工程

单击Project菜单,在弹出的下拉菜单中选中NewProject选项

2)然后选择你要保存的途径,输入工程文献的名字,比如保存到C51目录里,

工程文献的名字为C51。如下图所示,然后点击保存.

3)这时会弹出一个对话框,规定你选择单片机的型号,你可以根据你使用的

单片机来选择,kcilc51几乎支持所有的51核的单片机,我这里还是以天

家用的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,石

边栏是对这个单片机的基本的说明,然后点击拟定.

(注意:我们实验系统使用的单片机为SiliconLaboratories公司的

C8051F020芯片)。

•l«c<Devac«for?ix|

crv|

V・c4^rAtmel

D-:AT89cs2厂Us«Exe.cd.dJnk.rOLX51)an*t««aofBL51

F«»ly«C5-51LUe.Zx—・A->1”(AXbl),―C,fAS!

H<t«b«s«

»•・•*FullS<»cCKOSoll«rVBtkThr・・-L«t・1FrI

32I/OIf,,3Ti««r*/C*Maters,8Xaterr

BKFl…■—25BBy-O»-ehiPRAH

「•定11rm]

4)完毕上一环节后,屏幕如下图所示

到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。

5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

期C51-»ision2

Ei】・EditYi・w£r«j«ctP・buaP«tiph«ralsToolsgVCS£>ndowH«lp

由BOB—

以Qp«n..CtrHO

Dr3+S

SmA:

新建文献后屏幕如下图所示

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者

建议一方面保存该空白的文献,单击菜单上的“File”,在下拉菜单中选中

"SaveAs”选项单击,屏幕如下图所示,在“文献名”栏右侧的编辑框中,

键入欲使用的文献名,同时,必须键入对的的扩展名。注意,假如用C语言

编写程序,则扩展名为(.c);假如用汇编语言编写程序,则扩展名必须为

(.asm)o然后,单击“保存”

6)回到编辑界面后,单击"Target1”前面的“+”号,然后在

aSourceGroup1”上单击右键,弹出如下菜单

自C\UHD01S\D«sktop\C51\Ttxtl.C

r

SelectDeviceLOTTarget'Targel1

OptionsforGroupSourceGroup1'

OpenFile

因Rebuildtarget

/gildtarc«tFT

4^Tran^leteFile

后।Stopbuild

sirAddFil«stoGroup'SoursGroup1'

I«r《ets,Groups,Files...

R«iiove<5roup,SourceGroup1'andit'sFiles

然后单击“AddFiletoGroup'SourceGroup1'”屏幕如下

图所示

选中Test,c,然后单击“Add”屏幕好下图所示

SourceGroup1”文献夹中多了一个子项“Textl.c”了吗?子项的

多少与所增长的源程序的多少相同。

7)现在,请输入圳下的C语言源程序:

#include<reg52.h>〃包含文献

#include<stdio.h>

voidmain(void)〃主函数

SC0N=0x52;

TM0D=0x20;

Tlll=0xf3;

TR1=1;〃此行及以上3行为

PRINTF函数所必须

printf(MHelloIamKEIL.\n");〃打印程序执行的信

printf("Iwillbeyourfriend.\n"):

while(l);

在输入上述程序时,读者已经看到了事先,呆存待编辑的文献的好处了

吧,即Keilc51会自动辨认关键字,并以不同的颜色提醒用户加以注意,

这样会使用户少犯错误,有助于提高编程效率c程序输入完毕后,如下图所

示:

fl*C5l-

Idit^reject[g]玉JVCSfsxUov(felp

国行R。0匚;—・=A%,>&HM

国已曲|A府,“1三]

3

12fd

einna,..Buid人ConmandARndnFfes]

P«rM«lr.K«»”-^1Cl~1S?「%”

8)在上图中,单击“Project”菜单,再在下拉菜单中单击

“BuiltTarget”选项(或者使用快捷键F7),编译成功后,再单击

“Project”菜单,在下拉菜单中单击"Start/StopDebugSession”(或

者使用快捷键Ctrl+F5),

屏幕如下所示:

.;/c心-(c'nmts'D.kegiWsQie】

Dl»i«|4i<lienr<>>wa«SCSI»—|d*

由8。0B--A■「~~ZJli

g专电m国6急f

isuO<hIJ。财以原屋,“口

lioclude<Ke9S2.h>〃小PXw

fincludeocdio.tp

voidMin(v<oid)//Afifc

而or-ga;

EB・0M2O;

TH1・8£3;

T>UI;//AW^3«TAnxm***<&*

pimariteU。I-VXtl.〃仃"外序执行rQT

pcinurimilXyoucfc・vd・X"

;gu。⑴;

Load"C:x\WINDWS\M)«9ktopX\C51xxC5)^J5

ASMASSIGNBreokDxsable

BnpnEJ;Comm>n<iX"jVldGfite][.]1

P«<M«l>.pr«ttPl

9)调试程序:在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,

(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击

“StopRunning”逐项(或者使用快捷键Esc);再单击“View”菜单,再

在下拉菜单中单击“SerialWindows#1”选项,就可以看到程序运营后

的结果,其结果如下图所示

至此,我们在KeilC51上做了一个完整工程的全过程。但这只是纯软

件的开发过程,如何使用程序下载器看一看程序运营的结果呢?下一节我们

将介绍KeilC软件与DICE-EC3仿真器的配置说明。

2.2KEILC软件与DICE-EC5仿真器配置说明

1.本配置是针对本公司的仿真开发工具DICE-EC5的配置方法;

2.KeilC软件配置如下:

打开Keil软件,新建一工程,选择SiliconLaboratories公司的C8051F020

作为CPU(根据实际CPU):

latest-WisionZ

FiteEditViewProjectDebugFbshPeripheralsToois$VCSWindowHeip

率定为茏力班聃」3]眄|随11领口国

!」倒码鹭闵TarEl三]

(1)选择配置如下图:

(2)显示如下图:

(3)OUTPUT选项配置:

Btest-WlisionZ

FileEditViewProjectDebugFlashPeripheralsTookSVCSWindowHdp

直学口。|3电电10al率宦4茏3班曲厂三莉|组|缉④|由

毒阖幽晶M至同获三]

ProjtdWorks)IOptionsforTarget'Target1*

E32Tare

Device]TargetOutput|Listing]C5i|A51|BL51Locate|BLS1Misc|Debug|Utilities]

•electFolderfcrQbjects..ManeofExecutable:test

(•CreateExecutable.\t«st

PDebugInfomtioP近黑?.±.1.2"卬然K「Merge32KHexfile

“CreateHIXFi:HEXPzl

CCreateLibxary:\test.LIB「CreateBatchFile

确定取消Defaults

(4)A51汇编选项:

(5)DEBUG选项:

bPtest-WisionZ

FileEditViewProjectDebugFlashPerpherdsToolsSVCSWindowHdp

国zp阴区跑•里夕a|亘•三4丸上方佻「三]皤*岳@to月

作遛前£翼太|x“ll

ProJecfWorkspace

EjZTarget1

OptionsforTarget'Target1*工JX

Device|Target|Output|Listing]C51|A51|BL51LocateBL51MiseDebug|Utilities|

CUseSimulatorSeeing|(•Vse:RiliconLaborator*esC8057||屈[遹蜴;]

[7LoadApplicaticnatSia[7Gotillr*ain(J7LoadApplicationatSta[7Gotillmain

InitiftlizatxonInitiolizatxon

,,IEdit.,,|Edit..

RestoreDebugSessionSettingsRestoreIebugSessionSettings

|7Breakpoints|7Toolbox|7Breakpoints17Toolbox

17Watchpoints&PJ「Watchpoints

|7MemoryDisplay[7M«noryDisplay

CPUDLL:Par狱at。:Driv«rDLL:ParsotQr:

|S8051DLL|S8O51DLL

DialogDLL:Pa*3ot”:DialogDLL:PosetE

|DCYG.DLL|-pCYGF020|TCYG.DLL|-pCYGF020

确定取消Defaults

点击”Settings”按钮,弹出以下对话框,选搭USBDebugAdapter1.2.0.0

此时必须拟定DICE-EC5仿真器与PC处在联机状态!!!

点击拟定,完毕设立。

第三章实验指导

3.1C8051F单片机I/O口交叉开关设立

优先权交叉开关译码器,或称为“交叉开关”,按优先权顺序将端口o-

3的引脚分派给器件上的数字外设(UART、SMBus、PCA.定期器等)。端口

引脚的分派顺序是从P0.0开始,可以一直分派到P3.7。UARTO有最高优先权,

而CNVSTR具有最低优先权。为数字外设分派端=1引脚的优先权顺序列于下

图。

优先权交叉开关译码表(EMIFLE=O:P1MDIN=0xFF)

----------1[[[[[|-----1][一][[[———[一1一[------1||][文乂开美方存赛位

1WIOO1234567O:23456-C12345J-0123-567

VARTOENWJ):

二K

SPKRXBM1

SZA

SMBCENXBJJDO

SCL

VART1ENXB722

EUECICEXBZD6

CP:EXBZ:0

2。:NT0EXBT2

T1

51

SYSC1KSYSCKHXBZ:'

CNX'T?.二WSTEXBJD0

OIZm

g6!WI

vYFYIZ<IOzf•;WotK

q9_vVV一8Ks

I<7IIl_VY§aaaa*

leNl-NNK/gl<-l_£o2tWsX

rU工IZHIHe£H!i

II1Wv_vaqqoI

nH不VI1-VV

VVVVVYvvVvvvvV

-rl!<!

AIN:*入/多复用施坛品电用电:7"电用*比低9用热据生电T数比

当交叉开关配置寄存器XBRO、XBR1和XBR2中外设的相应允许位被设立

为逻辑'1'时,交叉开关将端口引脚分派给外设,相关的特殊功能寄存器

的定义见数据手册或相关书籍。

交叉开关引脚分派示例:

在本例中,我们将配置交叉开关,为UARTO、SMBus、UARTK/INTO和

/INTI分派端口引脚(共8个引脚)。此外,我们将外部存储器接口配置为

复用方式并使用低端口。我们还将Pl.2、P1.3和P1.4配置为模拟输入,

以使用ADC1测量加在这些引脚上的电压。配置环节如下:

(1)按UARTOEN=1、SMBOEN=UINTOE=1.INTIE=1和EMIFLE设

立XBRO、XBR1和XBR2,则有:XBRO=0x05,XBR1=0x14,XBR2=0x02。

(2)将外部存储器接口配置为复用方式并使用低端口,有:PRTSEL=0,

EMD2=0o

(3)将作为模拟输入的端口1引脚配置为模拟输入方式:设立P1MDIN为

0xE3(P1.4、PL3和Pl.2为模拟输入,所以它们的相应P1MDIN被设立为

逻辑'0')O

(4)设立XBARE=1以允许交叉开关:XBR2=0x42。

•UARTO有最高优先权,所以P0.0被分派给TXO,P0.1被分派给RXO。

•SMBus的优先权次之,所以P0.2被分派给SDA,P0.3被分派给SCL

・接下来是UART1,所以P0.4被分派给TX1。由于外部存储器接口选在

低端口(EMIFLE=1),所以交叉开关跳过P0.6(/RD)和P0.7(/WR)°又由于

外部存储器接口被配置为复用方式,所以交叉开关也跳过P0.5(ALE)。下一

个未被跳过的引脚PL0被分派给RX1。

•接下来是/INTO,被分派到引脚PL1°

・将P1MDIN设立为0xE3,使PL2、P1.3和P1.4被配置为模拟输入,

导致交叉开关跳过这些引脚。

・下面优先权高的是/INT1,所以下一个未跳过的引脚P1.5被分派给

/INTlo

•在执行对片外操作的M0VX指令期间,外部存储器接口将驱动端口2

和端口3。

(5)我们将UART0的TX引脚(TXO,PO.O)、UART1的TX引脚(TX1,P0.4)、

ALE、/RD、/WR(P0.[7:3])的输出设立为推挽方式,通过设立P0MD0UT=OxFl

来实现。

(6)我们通过设立P2MD0UT=OxFF和P3MDOUT=OxFF将EMIF端口(P2、

P3)的输出方式配置为推挽方式。

我们通过设立P1MDOUT=0x00(配置输出为漏极开路)和P1=OxFF(逻辑

’1'选择高阻态)严禁3个模拟输入引脚的输出驱动器。

3.2数字I/O端口实验

一、实验目的掌握C8051F020I/O的使用,学习延时子程序的编写。

二、实验内容

P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

三、实验原理介绍

C8051F020有8位端口组织的64个数字I/O引脚。低端口(PO、Pl、P2、

P3)既可以按位寻址,也可以按字节寻址。高端口(P4、P5、P6、P7)只

能按字节寻址。所有引脚都耐5V电压,都可以被配置为漏极开路或推挽输

出方式和弱上拉。

C8051F020器件有大量的数字资源需要通过4个低端I/O端口PO,Pl,P2,

P3才干使用。但本实验中重要介绍的I/O口重要作为通用的端口I/O(GPIO)

引脚来使用。

每个端口引脚的输出方式都可被配置为漏极开始或推挽方式,缺省状

态为漏极开路。在推挽方式,向端口数据寄存器中的相应位写逻辑0将使瑞

口引脚被驱动到GND,写逻辑1将使端口引脚被驱动到VDD。在漏极开路方

式,向端口数据寄存器中的相应位写逻辑0将使端口引脚被驱动到GND,写

逻辑1将使端口引脚处在高阻状态。当系统中不同器件的端口引脚有共享连

接,即多个输出连接到同一个物理线时(例如SMBus连接中的SDA信号),

使用漏极开路方式可以防止不同器件之间的争用。I/O端口的输出方式由

PnMOUT寄存器中的相应位决定。本实验中我们用P1口驱动发光二极管点

亮,因此必须将P1口定义为推挽方式。

四、电路原理图

六、实验环节

程序功能:由P1口驱动发光二极管循环点亮。

PL0~PL7接L「L8(JP14)

3.3定期器实验

一、实验目的掌握C8051F020内部定期器/计数器的应用。

二、实验内容

本文献是LED灯闪烁实验程序;使用定期器0定期1秒,LED灯每隔1

秒亮1秒;使用外部22.1184MHz晶振。

三、实验原理介绍

C8051F020内部有5个计数器/定期器TO,Tl,T2,T3和T4。这些计数

器/定期器都是16位,其中TO、Tl、T2与标准8051中的计数器/定期器兼容。

T3、T4可用于ADC、SMBus或作为通用定期器使用,T4还可用作C805lF02x

中第二串口(UART1)的波特率发生器。这些计数器/定期器可以用于测量

时间间隔,对外部事件计数或产生周期性的中断请求。

定期潜。和定期器1几乎完全相同,有4种工作方式。定期器2增长了一

些时器0和定期器1中所没有的功能。定是器3与定期器2类似,但没有捕获和

波特率发生器方式。定期器4与定期器2完全相同,可用作UART1的波特率

发生器。

下表所列为定期器的工作方式:

定期器0和定期定期器2定期器3定期器4

器1

13位计数器/定期自动重装载的16自动重装载的16自动重装载的16

器位计数器/定期器位计数器/定期位计数器/定期器

16位计数器/定期带捕获的16位计带捕获的16位计

器数器/定期器数器/定期器

自动重装载的8UART(0)的波UART1的波特率

位计数器/定期器特率发生器发生器

两个8位计数器/

定期器(仅限于

定期器0)

本实验中使定期器0工作在方式1(TMOD=0x01),TIM0定期器时钟为

系统时钟的1/12(CKCON=OxOO)o具体寄存器定义请参照教科书。

四、实验程序框图

(注:实验时不需要液晶显示)

五、实验环节

确认P3.5口与引脚49上插有短路块,则发光二极管L1与P3.5已连。调入

程序、装载、运营,观测发光二极管是否每隔1秒亮1次。

3.4外部中断实验

一、实验目的熟悉C8051F020外部中断6/7的使用。

二、实验内容

此程序测试C8051F020的中断6、7,可在相应的两个中断中设断点观测,

当单脉冲按钮按下之后,进入中断解决时P4.4控制蜂鸣器鸣叫一声,发光二

极管也同时闪烁一次。

三、实验原理介绍

CIP-51包含一个扩展的中断系统,支持22个中断源,每个中断源有两

个优先级。中断源在片内外设与外部输入之间的分派随器件的不同而变化。

每个中断源可以在一个SFR中有一个或多个中断标志。当一个外设或外部源

满足有效的中断条件时,相应的中断标志被置为逻辑1。

假如中断被允许,在中断标志被置位时产生中断。一旦当前指令执行

完,CPU产生一个LCALL到预定地址,开始执行中断服务程序(ISR)。每个ISR

必须以RETI指令结束,使程序回到中断前执行的那条指令的下一条指令。假

如中断未被允许,中断标志将被硬件忽略,程序继续正常执行(中断标志置

1与否不受中断允许/严禁状态的影响)。

每一个中断源都可以用一个SFR(IE~EIE2)中的相关中断允许位来允

许或严禁,但必须先将EA位(IE.7)置1,以保证每个单独的中断允许位有

效。不管每个中断允许位的设立如何,EA位清0将严禁所有中断。

本实验重要介绍C8051F020外部中断6/7(相应P3.6和P3.7)。P3.6和P3.7

可被配置为边沿触发的中断源。用IE6CF(P3IF.2)和IE7CF(P3IF.3)位可

以将这两个中断源配置为下降沿或上升沿触发。当检测到引脚P3.6和P3.7有

下降沿或上升沿发生时,P3IF寄存器中相应的外部中断标志(IE6或IE7)将

被置1。假如相应的中断被允许,将会产生中断,CPU将转向相应的中断句

量地址。

端口3中断标志位:

R/WR/WR/WR/WR/WR/WR/WR/W

IE7IE6IE7CFIE6CF

位7位6位5位4位3位2位」位0

位7IE7外部中断7标志位

0P3.7引脚没有检测到下降沿或上升沿

1当检测到P3.7引脚的下降沿或上升沿时,该标志

由硬件置位

位6IE6外部中断6标志位

0P3.7引脚没有检测到下降沿或上升沿

1当检测到P3.7引脚的下降沿或上升沿时,该标志由

硬件置位

位5~4未使用.读二00b,写=忽略

位3IE7CF外部中断7边沿配置位

0外部中断7由IE7输入的卜.降沿触发

1外部中断7由IE7输入的上升沿触发

位2IE6CF外部中断6边沿配置位

0外部中断6由IE6输入的卜.降沿触发

1外部中断6由IE6输入的上升沿触发

位广0未使用.读二00b,写=忽略

四、实验程序框图

五、实验环节

P2.0接L7;P2.1接L8;P3.6接JP7;P3.7接JP7;P4.4用短路块接蜂鸣器。

按下单脉冲按钮,JP7产生一个下降沿脉冲,进入中断后,蜂鸣器鸣叫一声,相

应发光二极管也同时闪烁一次.

3.5键盘显示实验

一、实验目的掌握行列式键盘的工作原理。

二、实验内容每按下一个键,蜂鸣器响一声,并在LED数码管上显示相应

的字符。

三、实验原理介绍

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成

矩阵形式,也就是常说的行列式键盘。行列式键盘中的键事实上就是一个机

械开关,该开关位于行线和列线的交点处。当键被按下时,其交点的行线和

列线接通,相应行线或列线上的电平发生变化,从而拟定被按下的功能键。

常用的键辨认方法有:行扫描法、线翻转法和运用8279键盘接口的中断

法。前两种方法相称于查询法,需要反复查询按键的状态,会占用大量的CPU

时间;后一种方法在有键按下时向CPU申请中断,平时并不需要占用CPU时间。

本实验中我们介绍行扫描法,其按键辨认的过程如下:

A:将所有行线SEL0~SEL3置为低电平,然后检测列线的状态。只要有一

列的电平为低,则表达键盘中有键被按下,并且闭合的键位于低电平线与4

根行线相交叉的4个按键之中。若所列线均为高电平,则键盘中无键按下。

B:判断闭合键所在的位置。在确认有键按下后,即可进入拟定具体羽

合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平

时,其线为高电平。在拟定某根行线位置为低电平后,再逐行检测各列线的

电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是用

合的按键。

四、实验原理图

五、实验程序框图

关看门狗

初始化10a

(注:实验时只需LED数码管显示)

六、实验环节

定义16个键为,每按下一个键,蜂鸣器响一声,并在LED数码管

上显示相应的字符。

P5.0~P5.3接SEL0~SEL3,P5.4~P5.7接RL0~RL3,P4.4接ALARM,P3.5接

LKJP14)(以上连线内部已经连好,只要将相应的短路块插上即可。),

PL0~PL7接a~dp(JP18,LED段码端),P0.0接LED公共端任何一端(JP17).

3.6六位动态LED数码管显示实验

一、实验目的

熟悉并掌握LED七段数码管的工作原理,并掌握动态数码管的程序编写。

二、实验内容

本实验重要是六位八段LED数码管动态显示,例程序显示“123456”。

三、实验原理介绍

在单片机应用系统中可运用LED显示块灵活地构成所规定位数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论