MCS单片机系统学习平台V实验讲义_第1页
MCS单片机系统学习平台V实验讲义_第2页
MCS单片机系统学习平台V实验讲义_第3页
MCS单片机系统学习平台V实验讲义_第4页
MCS单片机系统学习平台V实验讲义_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

电子系统综合设计课程教材

电子设计竞赛培训讲义

MCS51单片机系统设计教程

——基于“MCS51单片机系统学习板VI.1”的试验教学

周立青等汇编

(内部汇编资料,内容正在修正完善,请勿在网上传播)

武汉大学电子信息学院试验中心

武汉大学电工电子试验教学基地

目录

目录.....................................................2

第一章MCS51单片机系统学习板VL1资源介绍.............1

1.1-MCS51取片机系统学习板VI.1M基本配置与功能介绍4

1.2“MCS51单片机系统学习板V1.1”最小系统电路....6

1.3“MCS51一片机系统学习板VI.I”套件配置........7

第二章SST单片机系统仿真调试和下载....................9

2.1SST单片机功能简介..............................9

2.2ICE仿真与ISP编程烧写功能.....................10

2.3通过BOOTLOADER将SSTBoot-StrapLoader替换为

SoftICE................................12

2.4用Koil新建工程并在SoftICE监控程序下仿真....13

2.5SoftICE监控程序替换回SSTBootStrapLoader监拄

程序.................................................14

2.6通过SLPERRO编辑器将SoftICE监控程序卜载入SST单

片机.................................................14

2.7通过SSTEasylAP下载程序.......................15

2.8STC单片机的烧写;............................16

第三章单片机系统学习平台VL1试验设计................17

3.1试验一,独立I/O试验............................17

3.2试验二,按键中断试验...........................20

3.3试验三,RAM试验...............................21

3.4试验四,段式LED试验...........................23

3.5试验五,矩阵键盘试验...........................25

第四章综合试验要求....................................28

4.1试验]数字钟系统............................28

4.2试验二,数字温度计............................28

4.3数字电压表设计..................................29

4.4数字化语音存储与回放系统.......................29

4.5数字频率计设计.................................30

4.6A题波形发生器..................................31

第五章单片机C51讲义..................................33

5.1C语言概述......................................33

5.2C51语言........................................34

5.3C51中的存储系统...............................43

5.4C51中的数据结构...............................46

5.5C51中的硬件接口系统...........................58

5.6C5I中的中断系统...............................65

5.7C51中程序架构设计方法..........................67

5.8关于优化........................................70

5.9仿真机的运用....................................71

5.10程序的调试与测试...............................74

5.II其它............................................74

第一章MCS51单片机系统学习板VL1费源介绍

“MCS51单片机系统学习板VI.1"PCB尺寸图

“MCS51单片机系统学习板VI.1“是武汉大学电子创新平台

中的单片机学习和开发平台,目前主要应用户电子设计竞赛培训

和大学生创新设计•它兼容DIP40封装的51系列单片机,板上

配的SST公司的sst89卜516RD高性能单片机,可利用中口进行在

线下我,硬件仿真和断点调试,从而使学生在不须要仿真器的

状况下可进行独立的软硬件调试.系统采纳基于总线结构的设

计,板上既具有一般的10试验,更多的采纳总线方式扩展板上

资源,使学生对基于处理器的系统设计概念有着更深化的理解.

是大学生进行单片机学习,创新设计和电了•设计竞赛的基础工

具.

1.1"MCS51单片机系统学习板VLr基本配置及功能介绍

帝常倒同声函&

-MCS51单片机系统学习板VI.r功能框图

I、USR及适配涔电源接口,可运用USB延长线供电;

2.DC7.5-9V独立供电接口,最大电流1A:

3、自锁开关及电源指示灯,操作更加便利;

4,独立10口限制的8路发光二极管LED流水灯,可实现发光二

极管各种试验(跑马灯,指示灯等);

5、总线扩展8位高亮数码管(数字和字母U示,可以和液晶同

时运用);

6、LCD1602(可显示两行字符)/中文LCD12864《可显示随意汉

字及图形)液品显示模块接口,可接各种兼容液晶模块;

7.主芯片紧锁座设计,便利芯片取放:

8、1路串URS-232通信,实现和PC或其他设备232通信(可兼

容交叉和串行数据线的跳线选抨);

9、1路蜂鸣罂,实现报警和演奏音乐:

10,4路独立按彼,独立按键调试:

1].矩阵键盘,总线接口,用「学习矩阵键盘原理和运用方

法:

12、板栽32KRAM62256,用于外部数据存储;

⑶非易失存储器EEPROMAT24C02,掉电不丢失数据(IIC总线

数据存储元件原理试验):

⑶温度传感器模块18B20接口,可测量外界温度(精密温度检

测,配有测试当前温度程序);

15.一体化红外接收芯片HS0038,可以做红外线解码试验,红外

线遥控器等:

16.1路按键复位:

17.3组扩展接口,接口功能划分合理,I,2号扩展口包含了

数据总线和译码后的片选信号线,3号总线包含全地址空间,

便利用户进行自由扩展,可以外接AD,DA等资源。

18.扩展接口元器件采纳军品直插封装,便利测试和修理.

⑶光盘中含木试验板全部原理图,运用教程,程序下载教

程,各种好用软件,好用工具及试验例程。

1.2“MCS51单片机系统学习板V1.1"最小系统电路

-MCS51单片机系统学习板VI.1”实物图

1.2.1电源供电

MMCS51单片机系统学习板VI.1”主芯片工作电压为5V,在5V

电源的输入端自带防反接电路.防止错误接反电源掾坏系统板

整个系统可采纳两种供电模式:

•USB供电。计算机的USB接口可供应5L1A的直流电流,

系统可采纳板载的USB接口直接供应5V电源,。

电源接口

电路原理图

•7.5Y稳压电源供电-系统也可以采纳单独供电模式,单独

供电采纳7.5-9V电源输入,经LM1117位系统供应稳定的

5V电压

留意:系统工作是同时只能连接-•种电源输入。

13“MCS51单片机系统学习板VI,广套件配置

标准配置清单

序号配置数量

1MCS51单片机学习开发板1

2可单步仿真单片机sst89E516RD1

3温度传感器18B201

4红外集成接收头18381

51602液晶显示器”28*64液晶屏1

6USB双扁头线1

7RS232串口通信线1

87.5V1A直流电源1

9产品配套资料光盘1

第二章SST单片机系统仿真调试和下载

2.1SST单片机功能筒介

SST的MCU除了具备和一般单片机一样,可以通过C用编程器

将程序代码烧写到片内ROM中,然后装入系统运行程序以外,还

具备另外两种特别的卜教和仿真功能。

b程序下我功能,SST单片机可以不须要编程器,宜接通过

串行通信口,将程序卜载到单片机ROM中,且卜我的程序

在单片机断电后仍会保存,不会丢失,程序下我后,直接

复位或者重新匕电晶片机就可以工作。

21在线仿真功能。SST单片机还具有在线仿真功能,同样通

过单片机的串口,通过在keil软件中设置可以实现在线

仿真,具有单步执行,全速执行,设置端点等调试功

能。

SST单片机的以上两种功能的实现方法是通过其内部的监控

程序实现的.SST厂家供应了两种监控程序BOOTLOADER和

SoftICE,其中单片机的监控程序假如是BOOTLOADER,则对应

以上两种功能中的第一项,即程序卜我功能。此时.只可以通过

串口下以程序,不能进行在线仿真。假如单片机的监控程序假如

是SoftICE,则对应以上两种功能中的第二项,即在线仿真功能.

此时,只可以通过串口在线仿真,不能进行下栽程序。即一种监

控程序对应一种功能,实现方法是将对应功能的监控程序卜.载到

单片机中即可,具体下载监控程序以及在两种监控程序之间切换

的操作请参考“2.3通过BOOTLOADER将SSTBoot-Strap

Loader替换为SoftICEM,"2.5SoftICE监控程序昔换hlSST

Boot-StrapLoader监控程序”,“2.6通过SUPERRO编辑器

将SoftICE监控程序卜载入SST单片机”等章节

出厂时厂家已将BOOTLOADER监控程序写入芯片中,因此无

需编程器就可通过SSTBOOT-STRAPLOADER软件工具将用户程序

卜载到SST的MCU中。对于两种监控程序,SST公司供应了相应

的方法,用户可以自己将其中的监控程序进行替换,从而在两种

不同的功能上进行转换。

更加具体芯片资料请参考datasheet:

SST89E516RD.pdf或者89E516RD中文.pdf

2.2ICE仿真及ISP编程烧写功能

SoftICE的英文是SoftwareInCircuitEmulator的简称,

其翻课成中文就是在线的软件仿真器的意思,它是SST公司为便

利SST用户在运用SST单片机(包括

SST89(,5xSST«9x564RD/55^RC/5l6RD2/5XRD2)调试程序所开发

的开发工具,这个SST的仿真器功能可以代替大部分的专用仿真

器的功能,使单片机工程师在开发单片机时省却/价格昂贵的仿

真器和编程器,使得51单片机的开发更加简单和普及并且SST

的单片机价格便宜,出厂时就包含广在线下载和在线仿真的功

能.

最新的SST软件和文件请访问SST网页。

最新的KEIL软件和文件请访问KEIL网页。

SoftICE的特点:

SST的MaiSoftICE通过K的一个COM11及KEILuVision2

Debugger通讯,它可以实时地调试目标程序,因此供应运用SST

单片机的工程帅简单有效和简单运用在板上调试程序,尽管小而

紧凑,SoftICE却供应高级仿真器的大部分功能及KEIL

uVision2Debugger一起运用。

SoftICE供应以下特性:

•源代码调试支持汇编语营和C51高级语自

•单步执行STEP和STEPOVER

•断点调试做多到10个固定和1个临时断点

・全速运行

・显示修改变量

・读/写数据存储器

•读/写代码存储器

•读/写SFR特别功能寄存器

•读/写P0-P3端口

•下载INTELHEX文件

•对8051程序存储区的反汇编

•在线汇编

•SSTMCU产品特有的TAP功能InApplication

Programming

SST51开发系统除了支持ICE仿真功能外,还支持Anne】ISP

编程烧写的功能。

2J通过BOOTLOADER将SSTBoot-StrapLoader替换为SoftICE

执行SSTEasyJAPHF.exe(……'单片机在线仿真工具\sst5l

单片机在线仿真\SoftICE564\SSTEasyIAPllF.exe).软件运行

SSTBoot-StrapLoader在内部模式下椅测到对应器件的嗯号

后,SoftICE固件通过按SoftICE菜单YDownloadSoftICE选

项下载,便将SoftICE固件下效到MCV.在BLOCKI的SST

Boot-StrapLoader会被SoftICE固件代替《下裁SoftICE胜利

后,不能重复再次下载SoftICE,必需下教BOOTLOADER监控程

序后,才能重新卜.载SoftICE)。具体操作步骤如卜.:

1,打开SSTEasyIAPUF.exe程序,选择串口:

2.选择芯片型号和内部程序存储器:

3.选择PC串口,MCL晶振和波特率:

COM1为当前连接单片机的串口。晶振频率指当前系统板上

接的晶振频率。确定后点击“DetectMCU”检测单片机.

4.先选择确定在梵位MCU;

5.通讯胜利后窗口右上角显示芯片信息和版本信息;

6.点击DownloadSoftICE选项,将MCU中的BOOTLOADER监控

程序替换为SofiICE监控程序:

7.选择确认更换:

8,程序打换胜利:

2.4用Keil新建工程并在SoftICE监控程序下仿真

I.打开KeilC51程序,新建一个工程:

一般建议新建,程的名称及文件夹名称相同,部分版本在编译时

可能会提示**Targetnotcreated

2.保存在自己新建的文件夹中;

3.点击保存出现口十选择对话框,选择SST系列的89X516RD2:

4.出现是否添加标准51初始代码而话框.选“否”:

5.工程建立之后新建源程序文件,点击"File”菜单下“\ew”

选项:

6保存在工程文件夹内,C程序文件后缀为“.C”,汇编程序文

件后缀为“・ASM”;

7.在文本编辑区编写源程序并保存;在SourceGro叩上右击选

择“AddFilesToGroup-M选项添加源文件至工程:

x.选择编写好的源程序文件,点击Add添加所选文件:

9.点击编译按钮,编译工程:

io.进入目标板调试选顼设置,点击“Project"菜单下“Options

forTarget--M选项:

ii.选择为硬件仿.真功能:

12.点击Selling进入通讯参数设定菜单.去掉全部Cache选项,

至此设置完毕,进入仿真调试阶段;

13.点击DEBUGFW**Start/StopDebugSession”选项进入DEBI:。

界面;

14.进入后可以看到信息栏中由显示连接胜利信息。在此仿此界

面可以进行单步,全速,断点等调试方式。

进入DEBUG界面后用户可以在线进行单步,连续,执行到,

断点等功能的调试:

25SoftICE监控程序替换回SSTBoot-StrapLoader监控程序

I,由SoftICK/控程序转换回SSTRoot-SirapLoader监控程

序:

在keil输入以下命令。

图中**ConverttoBSLx564.Ixl”文件保存在

“\SoftICE_564”路径下。执行完上图命令后,若出现如下界面

表示转换胜利,BSL监控程序I;载入了单片机:

2.6通过SUPERRO编辑器将SoftICE监控程序下载入SST单片机

卜面介绍通过编程器将SoftICE监控程序卜载到SST的MCL

芯片中的方法:SST89E516ED单片机有两块程序存储区BlockO

(64Kb)和Blockl(8Kb).监控存储在8Kb的Blockl中,单片

机上电从Blockl开始执行,当没有接收到相应的串口命令时,

再从主程序区BlockO开始执行指令;具体操作步骤如F:

I,打开编辑器SIPERPRO程序,图标为

2.进入SUPERPR0程序界而,单击”选择器件选项”:

3,进入器件选择对话框,在器件类型处选择"MCU/MPU”在杳找

处榆入要器件名称,找到之后选择“确定”;

4,单击“装入文件”选项:

5.进入下载文件选择对话框,选择要下载的SoftICE监控程序,

文件格式一般为“.hex”或bin”格式;

6.因为SST单片机的监控程序存储在Blockl中,Blockl的地址

为lOOOOh,故数据缓冲区起始地址改为“IOGOO”,卜戢•般

执行程序则百接默认:

7.左边是卜我文件的操作选项,具体步骤为:Erase=》IT°gram=》

Verify:

执行完上述一:个步骤后,SoftICE监控程序已被下载入SST

的MCU中了,可以运用Koil软件进行在线硬件仿真调试了。

2.7通过SSTEasylAP下程序

SST单片机中最初始的是BSL监控程序,可以通过SST

BOOT-STRAPLOADER软件工具将用户程序下载入单片机中,具体

操作步骤如I':

1,打开SSTBOOT-STRAPLOADI-R软件工具,并按之前的步骤及

单片机通讯连接胜利。在界面的右卜方IAPFunction菜单中

有下载选项,选择"Download-选项下载程序。

2.进入了卜载文件选择界而;

3.在文件杳找对话框中找到要下载的用户程序,一般为.Hex

或.bin格式文件;

4,选择好用户程序后,单击步骤二中的UK选项开始下我,界面

最卜.面的状态栏显示卜.载进度,当显示为Done时表示程序下

我已经完成,单片机上电执行用户程序了。

2-8STC单片机的烧写;

下面介绍另•款STC单片机的烧写方法,

I,打开STC单片机的编辑器STCTSP,进入STC-ISP的工作界面.

2.2.在1SP的界面左上方已经有依据步骤扣列的子单元,

3,依据界面上的步骤一步步执行卜我操作,步骤1的单元如卜

图,在MCLTypo下拉框中选择H标单■片机型号,APMemory

为程序存储地址:

4.进入步骤2选择下我攵件,点击右下方的OpenFile选项查找

要下载的用户程序;

5,找到要下载的用户程序,多为.hex或Jin格式文件;

6.步骤3为串口设置,选择通过哪个COM口下载,MaxBuad为

波特率设置;

7.步骤4为下载设置,一般默认即可:

x.步骤5为下载操作,先点击"Download/下载”选项,再MCL

重新上电复位,则开始执行下载操作:

9.步骤5单元下面为状态栏,可以视察MCU的下载过程,下图

为下载胜利信息显示:

此时用户程序已下载入STC的MCU中了,拔掉串口线,上电

复位用户程序即可执行。

第三章单片机系统学习平台VI.1试股设计

基于“单片机系统学习平台VI.r可开展单片机系统及相

关扩展系统的试脸.主:要包括以下部分:

试验一,10口试验

试验二,按键中断试验

基础试验试验三,RAM试验

试验叫,段式LED试验

试验五,矩阵按键试验

试验一,语音采集及回放

试验一,数字万用表设计

综合试验

试验三,水温限制系统设计

试验四,简易数据仪输系统

3.1试验一,独立I/O试验

3.1.1LED跑马灯试验

一,试验目的

1.熟识单片机的基本结构和单片机系统学习平台的资源配

2.熟识运用在线仿真技术进行单片机系统开发的一般方法

3.学会用示波器观测现象,初步体会用仪器进行调试的思想

4.驾驭基本输入输出口的设il方法,LED灯的特性和运用方

二,试验内容

1.用汇编语言实现以下功能:

<1>编程点亮8个LED,测试接I」电路无问题

<2>编程将8个LED按从LED1-LED8的顺序依次点亮,点

亮•个LED后延时一段时间,延时时间考虑人眼能弊辨

别出,把它熄灭后,再接着点亮卜•一个rLED,形成LED

跑马灯。要求当LEI)跑到边缘之后返回,而不是再从第

一个LED开始。

2.当实现LED跑马灯的功能后,用示波器探头依次探测8

个独立"0口的现象.这时在海一个1/0口上应当能检

测到肯定频率的方波信号。

四,试验原理

1.LED原理:两个半导体P型和N型半导体加中间由•个

有源层组成,当两端加上正负电压时电子开始移动和空穴(带正

电的离了)结合产生辐射光。•般LKD在正常发光的状况下,消

耗电流在mA级别,为保证其正常发光,同时也不会过流,一般

在I.ED回路中串联一个300欧TK欧的电眼.

2.LED硬件连接图,如下

3.1.2蜂鸣器试验

一、试验目的

1.了解蜂鸣器原理和类型

2.驾驭单片机指令周期的计算方法

二试段内容

利用单片机让蜂鸣器发出,个固定频率(300、3400Hz)的

响声

三、试验原理

I、蝉鸣器:蛀鸣器是•种•体化结构的电子讯响器,采纳直

流电压(有源蜂鸣器)或沟通电压(无源蜂鸣器)供电,有源蛙

鸣器内部已经带有振荡源,闪此只要供应直流电压就可以发音,

发音的频率由内部振荡源确定,频率固定,不能更改,无源蜂鸣

㈱内部没有振荡源,因此必需供应沟通电压使其发音,发音的频

率及沟通电压的赧率始终,依据音乐节奏调整发音的频率可以实

现简单的音乐播放。广泛应用于计算机,打印机,亚印机,

报警器,电子玩具,汽车电子设备,机,定时器等电子

产品中作发声器件.蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣

器两种类型。

2、听觉范围:人耳一般对300~3400Hz范围内的声音比较敏

感,调整单片机管脚波形输出,使得产生频率在该范围内才可以

听到声音。假如频率过高或过低都很难听到声音。

3、硬件连接:

小试殴步骤

编程:限制单片机管脚,产生一个电平之后延时一段时间

1/2T0,对该管脚电平取反,如此反复,就能够产生•个频率的

方波.方波周期为T0,频率fO=l/TO,当f0在300、34001lz之间

时,可以听到蜂鸣器的发音。

3.2试验二,按健中断试验

一,试改目的

1,了解中断的基本概念

2,了解按键软件消扫的方法

3,了解定时器的基本概念

二,试验设备

单片机试验板vl」

三,试殴内容

1,通过按速中断实现对LED的限制:每按键一次LED灯右

移一位

2,通过定时器中断产生•个标准RKIIz的方波

四,试验原理

1,按键中断:试验板独立式键盘每个按键都有一个信号线

及单片机电路相连,当其中中断按键按下的时候,会产生•个中

断信号,该信号使得CPU跳转到中断点执行中断服务程序。执行

完中断程序之后,CPI回到主程序原先断点,接着往下执行。

2,按键消抖:查询单片机管脚,发觉有信号线出现低电平

表示可能出现犍按下的状况。按键按下过程中存在前后延抖动.

延时20ms之后查询发觉管脚状态和之前读取一样,判定按键按

卜,依据读取数值推断按键编号并进行对应操作.

3,定时器中断:定时器开后之后,计数器开始计数.当计

数器达到程序员设定值后,进入中断.在中断服务程序中,程序

员可自由发挥。

五,试改步骤

1,硬件连接

2,实现功能

—17或者S18按b'JJ-DOLED3亮,再次按hLED0-LED3

灭。

贰:利用定时器实现LED的闪统频率定为1IIZ.

叁:S17或者S18按下,LED4亮,定时器计数,1秒后,

LED1火

3,软件流程图

4.记录试验结果

3.3试验三,RAM试验

一、试验目的

I、了解RAM读写原理

2、了解地址信号的产生原理

3、「解51单片机的限制总线信号ALE和nOE.nIE的产生原

二,试验设备

单片机试验板vl1

三、试验内容

L读写RAM数据并将读写错误数显示在段式液晶上而

四、试验原理

k地址信号的产生:51单片机的P0门是敷据和地址复用线,

可以利用•片74LS373

进行地址锁存限制,将P0”产生出一组地址信号和数据佶号在

时间上分开(见试验板框图)。

2,读写过程:51单片机的P3口是多功能且用口,其中P36

复用为nH'R,P37复用为nRD,外部RAM的接口时序和这两个新

号的生成时序相符合,可以直接进行RAM数据的读写。

3、片外RAM传送指令:MOVXA,依Ri;MOVXA,0DPTR;«OVX

@Ri,A;

MOVX6DPTR,A;这四条指令(单字节双周期指令)执行时,尤

其要留意他们伴随着51单片机读写限制信号线nOE或nUE的•,额

外”置低。其中,第•条和第三条指令只能寻址256bit,而第

二条和第四条指令可以寻址61Kb(此次试验中运用)。其读写时

序和执行过程如下:

①将RAM的地址(存放在寄存器Ri或DPTR中)由地址总线

P0(此时身份是地址线低B位)及P2(地址线高8位A8~A15)

口输出,即时序图中的S5PI到S6P2阶段。并在S4P2到S5P2阶

段,发ALE信号将低8位地址锁存。

②第二个机器周期S1P2到S2P2内取消ALE及程序选通信号

PSEN(即取消取指操作),P0身份转变为数据忠线。及此同时发

读或写信号,通过P0口将RAM的数据传送到累加器A中或将累

加器A数据传送到RAM中。即:时序图的S6P2到S4PI阶段。

③由丁锁存的地址为外部数据存储单元的地址,所以在第二

个机瑞周期S4取消取指令的操作.不再发程序选通信号PSEN.

打、试验步骤

|、硬件连接:

2.62256地址安排:62256的地址总线有15位(AO'AM),因

此它的地址空间大小是2」5(32Kb)。62256的片选信号由51单

片机地址线的最高位A15给出,且低电平有效,因此它的最低地

址是0000H,最高地址是7FFFH。

3、软件设计:在RAM地址的lOOWflOffH空间中写入0~255

数据,读出RAM的10001门OffH空间数据,记录/误数据个数.

将数据错误个数显示在段式液晶上面。

4、记录和视察试验现象,

3.4试验四,段式LED试验

•、试验目的

1.段式LED工作原理

2.动态扫描显示原理

二、试验设备

单片机试验板vl_I

三、试验内容

在LED上面动态显示循环的数字8,到达边缘之后重新同

到远点,依次循环

四、试验原理

1.段式LED原理:

•个段式液晶是由八段LED组成,如上图所示,依据组成的

led种类不同,常用的段式液晶行共阴极和共阳极两种类型,试

脸板上配置的为共阴极段式液晶。依据abcdefgh的电平状况,

点亮或者熄火对应的LED,就可以看到对应的数字或者字符,譬

如abcdef设为高,将gh设为低就可以形成数字0了。

2.动态扫描原理:利用人眼的视觉残留现象,依次点亮每

个八段码单元,只要扫描速度超过人眼可以识别的频率,就

可以看到稳定的信息输出。

3.电路连接;

CS3及nWE同时置低时选中片选信号----CS_LEDSEL;

CS2及nWE同时置低时选中段选信号一一CS_LED_SEG,

片选信号CS_LED_SEL选通锁存器U13,通过P0口把某个SEL

选中,即选中某个数码管。

段选信号CSLEDSEG选通锁存器U12,通过P0口的值对选中

的数码管的A到DP赋值,以实现显示功能。

五,试验步骤

1,硬件连接:

2,软件设计:依次点亮八段码,设置较快的扫描频率,在

段式液晶上面形成稳定的输出。将扫描频率设置较低,使人眼可

以辨别各个八段码点亮和熄灭的状态,形成数字8从左向右循环

的现象。

3,视察并记录试验现象a

3.5试脸五,矩阵键盘试脸

・、试验目的

i.驾驭矩阵式键盘的原理

2驾驭74HC245.74HC573的运用

3.理解单片机总线读写和片选信号的产生

4.驾驭矩阵键盘的编程方法

二、试验设备

单片机试验板V11

三、试验内容

1.采纳行扫描法编程获得矩阵式健盘的键侑,并予以显示

2学习矩阵键盘的构建方式

四、试验原理

I.电路原理图

1.4*4键盘:

KEYH为4根行线,KEYV为4根列线.均接了10k欧

姆上拉电阻

2.行线和列线

行线:运用74HC573锁存P0口数据,为单向输出口

列线:运用74HC245锁存P0口数据或键盘数据,数据

读写方向由DIR确定

3.片选信号

1.当A15为高,48-A10为低时CSO为低电平,CS0地

址可设为0xf8ff,选中CS0时,单片机读信号使nOE为

低,74HC245DIR为低电平,从74HC215读数据。

2.选中CSO时,单片机号信号使nWE为低,CS_KEY为

高电平,74HC573锁存P0口上的数据,即单片机向

74HC573写数据。

原理图分析

单片机通过写数据到行线,从列线读数据来推断是否有按

键和键值。

1,推断是否有按键按下:

将行线作为输出,列线作为输入。CPI.首先向行接口输

出一个为“全0”数据.再从列接口读入数据,并判其是

否为“全1”。若是“全「就表示健盘中没有键被按下,

否则去示有犍被按下,且列码中“0”的位置就是所按按键

的列号。

2.获得用户按下的按键所对应的键值:

为了获得用户按下的按键所对应的健值,可先向行接

口输出•个第0行为“0”.其它行均为“1”的行码,然

后读入列码并判其是否为“全1”,若不是“全r就表

示在第o行中有键被按下,且读入的列码中出现“o”的位

置代表该按健所处的列编号.输出行码中“0”的位置代表

该按键所处的行编号,据键值公式可获得相应的键值;若

读入的列码为“全1”.就再对下•行进行类似的处理,

如此逐行分析处理,直至全部行处理完毕.

3.消抖动:

“抖动”是指两个机械电气触点在闭合域断开的瞬间

时所产生的抖动,由于抖动的时间不超过20空秒,所以通

常都是运用“延时”的方法来去抖动,即一旦检测到按键

有“状态改变二就延时20亮秒,而后再去检测该现象是

否仍旧存在,若存在就表小确实有犍按下或松开,否则表

示检测的是一种干扰信号。

从矩阵键盘编程方法

1.程序流程:

2.软件设计:编写按键处理程序,并将得到的按键依据0、15

的数字进行编码:编写对应的案件处理程序,将按键值显示在段

式液晶上面。

3.示例代码:见例程C51Pro,Lab5

第四章^合试睑要求

・试验一,数字钟系统

•试验二,数字温度计设计

•试验三,数字电压表设计

•试验四,语音采集及回放

•试验五,数字频率计

•试验六,DDS信号源

4.1试殴一,数字钟系统

一,基础要求

I.i殳计一个精确的I秒定时器:

2.依据1秒定时器,设计一个带小时,分钟,秒的时钟,

并将小时,分钟,秒显示在LED上:

3.设计小时.分钟,秒的修改按健.可分别调整小时,分

钟,秒(按键设计参考电子表):

二,扩展要求

1.增加小时,分钟,秒的键盘直接修改功能;

2.设计闹钟功能,最多支持5个闹钟,可分别誉看和修改用

钟时间,可分别设置闹钟开关。

3.增加万年历功能。

4.2试验二,数字温度计

一,基础要求

I设计寞现数字温度计I8B20的接口时序;

2,读取18B20数据,并将数据转化为BCD码曜示在LED上,

显示精度为两位小数;

3.实现对温度的修正:

43数字电压表设计

一,基础要求

I.设计实现AD0809接口电路,实现模拟电压量OFV转化为

数字量;

2.编程实现AD0809的数据读取;

工设定固定的刷新速率,将读取数据显示在LED匕楂示精

度两位小数:

4.实现电乐采集值的分段函数修正.

二,扩展要求

1.扩展电压表的测量范惘,实现07V,0-10的测量:

4.4数字化语音存储及回放系统

设计并制作一个数字化语音存储及回放系统,其示意图如下:

1.基本饕求

(1)放大器1的增益为46dB,放大器2的增益为40dB,增

益均可调:

(2)带通滤波器:通带为300Hz〜3.4kHz:

(3)ADCs采样频率E=8kHz,字长=8位;

(4)语音存储时间N10秒:

(5)DAC:变换频率fr=8kHz,字长=8位:

(6)回放语音质量良好.

2.发挥部分

在保证语音质量的前提下:

(1)减少系统噪声电平,增加自动音量限制功能;

(2)语音存储时间增加至20秒以上:

(3)提高存储器的利用率(在原有存储容品不变的前提下,

提高语音存储时间):

(4)其它(例如:校正等)。

4s数字频率计设计

一,任务

设计并制作一台数字显示的简易频率计。

二,要求

1.基本要求

(1)频率测量

a.测量范阐信号:方波,正弦波:幅度:0.5V〜5V:顺

率:1Hz〜1MHz

b.测量误差W0.1%

(2)周期测量

a.测量范用信号:方波,正弦波;幅度:0.5V〜5V:频

率:1Hz-1MHz

b.测量误差WO.1%

(3)脉冲宽度测量

a.测量范围信号:脉冲波;幅度:0.5V-5V;脉冲宽度

2100ns

b.测量误差W1%

(4)显示器

I进制数字显示,显示刷新时间1〜10秒连续可调,对上述

三种测呆功能分别用不同颜色的发光;极管指示o

(5)具有自校功能,时标信号频率为1MHz。

(6)自行设计并制作满意本设计任务要求的稳压电源e

2.发挥部分

(1)扩展频率测量范围为0.1Hz〜10MHz(信号幅度0.5V〜

5V),测量误差降低为0.01%(最大闸门时间WIOs).

(2)测量并显示周期脉冲信号(幅度0.5V-5V,频率】Hz〜

1kHz)的占空比,占空比变化范围为10%〜90%,测量误差W遥.

(3)在1Hz〜1MHz范围内及测量误差WI%的条件F,进行

小信号的频率测量,提出并实现抗干扰的措施。

4.6A题波形发生能

设计制作一个波形发生器.该波形发生器能产生正弦波,方

波,三角波和由用户编辑的特定形态波形。示意图如下:

1.基本要求

(1)具有产生正弦波,方波,三角波三种周期性波形的

功能。

(2)用键盘输入编辑生成上述三种波形(同周期)的线性

组合波形,以及由基波及其谐波(5次以下)线性组合的波形.

(3)具有波形存储功能。

(4)输出波形的频率苑围为100Hz〜20kHz《非正弦波频率

按10次谐波计算):重力频率可调,频率步进间隔近100Hz。

(5)输出波形幅度范围0〜5V(峰-峰值),可按步进0.1丫

(峰*值)调整。

(6)具有显示输出波形的类型,重复频率(周期)和幅度

的功能。

2.发挥部分

(I)输出波形频率范围扩展至100Hz〜200kHz。

(2)用键盘或其他愉入装置产生随意波形。

(3)增加稳福输出功能,当负载变化时,输出电压幅度变

化不大于±3%(负载电阻变化范围:100Q〜8)。

(4)具有掉电存储功能,可存储掉电前用户编辑的波形和

设置。

(5)可产生单次或多次(1000次以下)特定波形(如产生

1个半周期三角波输出).

(6)其它(如增加频谱分析,失真度分析,频率扩

展》200kHz,扫频输出等功能)。

第五章单片机C51讲义

(注:本文由张清恒编辑,本文中相应的代码片断运行及测试结

果以Keil51的\节版编译器为准)

5.1C语言概述

1.单片机及程序设计语言

(D单片机在系统设计中的位置

图一单片机在系统设计中的位置

(2)程序设计语言

A.机器指令集

面对具体的处理器:的片机,ARM处理牌(精简指

令RISC体系).通用处理器(困难指令CISC体系>。

B.汇编语言

运用助记符代替机器指令,须要转换成机器指令后

才能被识别运行。

C.面对结构的高级语浸

C,PASCAL,Fortran,COBOL,BASIC...

2.C高级语彳的编译过程

C语占作为高级语□,宾•运用更高级的行为描述方法来

定义操作。一般编译型的高级语言,共先经预编译,然后

再编译转换成汇编语言,然后加入相应的库函数实体并经

过链接形成最终机器代码。预编译所做的工作为做宏替换,

有效代码的选择等工作。其示意图如图二所东。

图二C语言源程序到达最终代码的过程

留意,一,由于不同硬件的机器指令集不一样,故编译

及旌接的针对不同目标机器的最终代码不一样;二,编译的

过程更多的时候不是在目标机器上进行的.故编译器本身行

一个运行环境(一般为DOS,Windows环境)。故须要运用适合

于目标机器平台的能够在指定的某一平台上运行的编译册及

徒接器进行相应的编译及健接工作。

5.2C51语言

i.C51语言及C语言的关系

C51语言由C发展而来.其基本上继承了C语言的特性。其

区分在「:

MC语占程序建立在操作系统的基础上,有操作系统为程

序操作很多基本的操作,如字符显示,键盘读取,文

件操作,用户程序并不直接操作限制硬件:而C51语言

直接面对硬件,必需自己实现对硬件的限制O

R,C语言程序般在存储在外部存储介质上,在运行时由

操作系统装载入内存中进行重定位后,再运行:而C51

程序是直接在存储的ROM或FLASH介质上运行。

其区分示意图如图三所示。

图四单片机上的用户C51语言程序的运行环境示意图

2.C5I中继承C中可运用的资源

现成的函数等资源包括两个部分,•个是函数头的声明

文件(即.h文件),另,个是函数编译后的目标代码库(即.lib

文件).只要把用到的文件放到当前目录或系统编译器目录,

在链接时系统会自动找寻并运用。

⑴Intrinsic,hC51内部固定函数

externvoid_nop_(void):

externbittestbit_(bit);

externunsignedcharcror(unsignedchar,

unsignedchar):

externunsignedint_iror_(unsignedint.

unsignedchar);

externunsignedlongIror(unsignedlong,

unsignedchar);

externunsignedchar_crol(unsignedchar,

unsignedchar);

externunsignedint_irol_(unsignedint.

unsignedchar):

externunsignedlongIrol(unsignedlong,

unsignedchar);

externunsignedcharchkfloat(float);

⑵Absacc.h数据类型相关资源

tidefineCBYTE((unsignedcharvolatilecode*)0)

^defineDBYTE((unsignedcharvolatiledata♦)0)

^definePBYTE((unsignedcharvolatilepdalzi*)0)

((defineKBYTE((unsignedcharvolatilexdata*)0)

#defineCHORD((unsignedintvolatilecode♦)0)

^defineDWORD((unsignedintvolatiIedata*)0)

枇kfinePWORD((unsignedintvolatilepdala*)0)

tfdefineXWORD((unsignedintvolatilexdata*)0)

⑶Float,h运算常数相关库

"defineFl.TRADIX2

力defineFLTROUNDS0

"defineFLTDIG6

WefineFI.T_EPS1I.ON5.960,16e8

#definePLTMANTDIG24

#defineFLT.MAX3.40282e38

#define1LT_MAX_EXP0x7卜

#definePl.TMAX10EXP38

#defineFLTMIN1.17549e-38

#defineFLT_MIN_EXP-125

^defineFLT_MIN_10_EXP-37

^defineDBL_RAD1XFLT_RAD1X

qdefineDBLROUNDSFLTKOl,NDS

CdefineDBL_DIGFLT_DIG

^defineDBL_EI3IL0NFLTEPS】UN

"defineDBL_MAM_DIGFLT_MA\T_DIG

UdefineDBLMAXFLTMAX

#defineDBLMAXEXPFLTMAXEXP

#dcfineDBLMAX10EXPFLT_MAX_10E

^defineDBLMINFLTMIN

tidefineDB1.MINEXPFLT_MIX_EXP

tfdefirwDBL_MIN」O_EXPn.T_MiN_10_E

edetineLDBL_RADIXFLT_RAD1X

^defineLDBLROOTSFLTROUNDS

#defineL()BL_DIGFLT_DIG

ttdefineLI)BI._EPSILONFLT_EPS1I.ON

t?defineLDBL_MANT_DIGFLTMANTDIG

#defineLDBLMAXFLTMAX

#defineLDBL_MAX_EXPFLT_MAX_EXP

WefineLDBI.JIAX10EXPFLTMAX」0E

t?dcfineLDBL_MINFLTJ1IN

"defineLDBLMINEXPFLTMINEXP

如efineLDBL_MIN10EXPELTMIX10_E

(I)Limits.h标准数据范围定义

tfdefineCHARBIT8/♦Numberof

bitsinany"char"*/

WefineCHARJWX127/*Max

“char"value*/

ItdefineCIIAR.MIN(728)/♦Min

“char"value*/

^defineSCHARMAX127/♦Max

“signed""char”value*/

defineSCHARMIN(-128)/♦Min

signedcharvalue♦/

^defineUCHAK.MAX255/*Max

unsignedcharvalue♦/

^defineSHRTJWX32767/*Max

("signed")"short”value♦/

^defineSHRT_MIN(-32768)/♦Min

("signed*)"short”value♦/

^defineLSHRTMAXOxFFFF/♦Max

“unsigned""short”value♦/

^defineINTMAX32767/♦Max

("signed")"ini”value*/

defineINTMIN(-32768)/*Min

(signed)intvalue♦/

"defineU1NTJWXOxFFFF/♦Max

“unsigned""int"value♦/

"defineLONGMAX2147183647/*Max

("signed")"long”value♦/

"defineLONG_M1N-2147483648/*Min

Isigned)longvalue♦/

^defineULONGMAXOxFFFFFFFF/*Max

“unsigned""long"value♦/

⑸Math.h数学库

externcharcabs(charval);

externintabs(intval):

externlonglabs(1ongval);

externfloatfabs(floatval):

externfloatsqrt(floatval);

externfloatexp(floatval):

externfloatlog(floatval);

externfloatloglO(floatval);

externfloat.sin(float.val);

externfloatcos(floatval);

externfloattan(floutval);

externfloat“sin(flOiltval);

externfloatacos(floatval);

externfloatatan(floutval);

externfloatsinh(floatval);

externfloatcosh(floatval);

externfloattanh(floatval):

externfloatatan2(floaty,floatx);

structFPBL'F{

unsignedcharsave[16];

externvoidfpsave(structFPBUF*);

externvoidfprestore(structFPBUF*);

externfloatceil(floatval);

externfloatfloor(floatval);

extern

温馨提示

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

评论

0/150

提交评论