基于51单片基的方波周期的测量Word格式文档下载.docx

上传人:b****6 文档编号:20830504 上传时间:2023-01-25 格式:DOCX 页数:14 大小:271KB
下载 相关 举报
基于51单片基的方波周期的测量Word格式文档下载.docx_第1页
第1页 / 共14页
基于51单片基的方波周期的测量Word格式文档下载.docx_第2页
第2页 / 共14页
基于51单片基的方波周期的测量Word格式文档下载.docx_第3页
第3页 / 共14页
基于51单片基的方波周期的测量Word格式文档下载.docx_第4页
第4页 / 共14页
基于51单片基的方波周期的测量Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于51单片基的方波周期的测量Word格式文档下载.docx

《基于51单片基的方波周期的测量Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片基的方波周期的测量Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

基于51单片基的方波周期的测量Word格式文档下载.docx

而且通过两个外部中断来控制单片机的计数和暂停。

编程时用keil软件编程,要求熟练运用protues软件进行仿真。

关键字:

计数器、keil编程、protues仿真

18051单片机简介

8051单片机概述

51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的进展,8031单片机取得了长足的进展,成为目前应用最普遍的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它普遍应用于工业测控系统当中。

目前很多公司都有51系列的兼容机型推出,在目前乃至此后很长的一段时刻内将占有大量市场。

51单片机是基础入门的一个单片机,仍是应用最普遍的一种。

需要注意的是52系列的单片机一般不具有自编程能力。

51单片机主要功能

51单片机的主要参数和功能功能如下:

8位CPU

4kbytes程序存储器(ROM)(52为8K)

256bytes的数据存储器(RAM)(52有384bytes的RAM)

2条I/O口线·

111条指令,大部份为单字节指令

21个专用寄放器

2个可编程按时/计数器

5个中断源,2个优先级(52有6个)

一个全双工串行通信口

外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB

逻辑操作位寻址功能

双列直插40PinDIP封装

单一+5V电源供电

CPU:

由运算和控制逻辑组成,同时还包括中断系统和部额外部特殊功能寄放器;

  RAM:

用以寄存能够读写的数据,如运算的中间结果、最终结果和欲显示的数据;

ROM:

用以寄存程序、一些原始数据和表格;

I/O口:

四个8位并行I/O口,既可用作输入,也可用作输出;

T/C:

两个按时/记数器,既能够工作在按时模式,也能够工作在记数模式;

五个中断源的中断控制系统;

一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。

最高振荡频率为12M。

2软件简介

PROTUES软件简介

概述

Protues软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推行刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处置器模型支持805一、HC1一、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处置器,并持续增加其他系列处置器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

PROTUES功能特点

Protues软件除具有其它EDA工具软件(例:

multisim)的功能外,能够仿真51系列、AVR、PIC、ARM、等常常利用主流单片机。

还能够直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。

PROTUES电路功能仿真

在PROTUES绘制好原理图后,调入已编译好的目标代码文件:

*.HEX,能够在PROTUES的原理图中看到模拟的实物运行状态和进程。

PROTUES是单片机课堂教学的先进助手。

PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行进程形象化。

前者可在相当程度上取得实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。

这在相当程度上替代了传统的单片机实验教学的功能,例:

元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。

由于PROTUES提供了实验室无法相较的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相较的虚拟仪器、仪表,因此也提供了培育学生实践精神、创造精神的平台随着科技的进展,“运算机仿真技术”已成为许多设计部门重要的前期设计手腕。

它具有设计灵活,结果、进程的统一的特点。

可使设计时刻大为缩短、耗资大为减少,也可降低工程制造的风险。

相信在单片机开发应用中PROTUES也能茯得愈来愈普遍的应用。

Keil简介

单片机开发中除必要的硬件外,一样离不开软件,咱们写的汇编语言源程序要变成CPU能够执行的机械码有两种方式,一种是手工汇编,另一种是机械汇编,目前已极少利用手工汇编的方式了。

机械汇编是通过汇编软件将源程序变成机械码,用于MCS-51单片机的汇编软件有初期的A51,随着单片机开发技术的不断进展,从普遍利用汇编语言到逐渐利用高级语言开发,单片机的开发软件也在不断进展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从最近几年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能壮大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一路。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN9八、NT、WIN2000、WINXP等操作系统。

3设计思路及原理

设计思路

本次课程设计要求测定一方波的周期,由方波周期的公式T=1/F可知,要求输入方波的周期,需要明白在1s内计数的方波的个数,所以此刻面临两个问题:

第一、单片机怎么设定一秒钟的按时,第二、单片机怎么肯定在这一秒钟内计数的方波的个数。

对于第一个问题,能够利用按时器0的方式2自动重装模式,在晶振主频为12MHz的情形下,取得准确的按时结果。

在按时器0在方式2模式下,最大取得计数值为

28(256个脉冲)。

在这种方式下,在TH0和TL0两个寄放器中,TH0专用于寄放器8为计数初值并维持不变,TL0进行8位加1计数,当TL0计数溢出是,除产生溢出中断请求外,还自动将TH0中不变的初值从头转载到TL0。

对于第二个问题,由于不明白在一秒钟将要计数的脉冲的个数,所以应利用计数器所能达到的最大的模式,即计数器1的方式1。

在方式1下,计数寄放器的位数是16位,由TH1和TL1寄放器个提供8位计数初值,当TL1低8位计数满回零时TH1进位,即TH1中的1代表256。

在按时器0按时满1秒时,读取TH1和TL1中的数值,然后将TH1乘以256加上TL1中的数值,即为计数的总的脉冲数,脉冲数的倒数即为周期值。

但考虑到单片机不易显示小数值,所以可将一秒钟转换为106微秒,用106除以计数的脉冲数,取得所测量脉冲周期的微秒表示形式,并利用四位数码管显示出来。

计数方式:

外部输入信号是加到T1(P)。

外部输入脉冲信号产生由1至0的下降沿时,按时器加1,外部输入信号最高的计数速度是晶振频率的1/24。

 

程序流程图

按时器/计数器的工作原理

当按时器/计数器为按时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机械周期,计数器加1,直至计满溢出为止。

显然,按时器的按不时刻与系统的振荡频率有关。

因一个机械周期等于12个振荡周期,所以计数频率fcount=1/12osc。

若是晶振为12MHz,则计数周期为:

T=1/(12×

106)Hz×

1/12=1μs

这是最短的按时周期。

若要延长按不时刻,则需要改变按时器的初值,并要适被选择按时器的长度(如8位、13位、16位等)。

TMOD按时器/计数器方式寄放器

按时器方式控制寄放器TMOD在特殊功能寄放器中,字节地址为89H,无位地址。

TMOD的格式如表所示。

D7

D6

D5

D4

D3

D2

D1

D0

符号

GATE

C/T

M1

M0

表按时器/计数器方式寄放器

由上可见,TMOD的高4位用于T1,低4利用于T0,4种符号的含义如下:

GATE:

门控制位。

GATE和软件控制位TR、外部引脚信号INT的状态,一路控制按时器计数器的打开或关闭。

C/T:

按时器/计数器选择位。

C/T=1,为计数器方式;

C/T=0,为按时器方式。

M1M0:

工作方式选择位,按时器/计数器的4种工作方式由M1M0设定。

其工作方式如表所示:

M1M0

工作方式

功能描述

00

工作方式0

13位计数器

01

工作方式1

16位计数器

10

工作方式2

自动再装入8位计数器

11

工作方式3

定时器0:

分成两个8位计数器;

定时器1:

停止计数

表TMOD工作方式

按时器/计数器方式控制寄放器TMOD不能进行位寻址,只能用字节传送指令设置按时器工作方式,低半字节概念为按时器0,高半字节概念为按时器1。

复位时,TMOD所有位均为0。

TCON按时器/计数器控制寄放器

TCON在特殊功能寄放器中,字节地址为88H,位地址(由低位到高位)为88H一8FH。

TCON是一个多功能的寄放器,其格式如表所示:

地址

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

符号位

TF1

TR1

TF0

TR0

ID1

IT1

IE0

IT0

表TCON按时器/计数器控制寄放器TCON

在TCON寄放器中,按时/计数器的控制仅用了其中的高4位,其意义如下:

TF1:

T1溢出中断请求标志。

TF1=1,T1有溢出中断请求。

TF1=0,T1无溢出中断请求。

TR1:

T1运行控制位。

TR1=1,启动T1工作。

TR1=0,停止T1工作。

TF0:

T0溢出中断请求标志。

其功能及操作情形同TF1。

TR0:

T0运行控制位。

其功能及操作情形同TR1。

IE1:

外部中断1请求标志。

IT1:

外部中断1触发方式选择位。

IE0:

外部中断0请求标志。

IT0:

外部中断0触发方式选择位。

4单片机模块电路分析

单片机最小系统模块

图单片机最小模块电路图

89C51是片内有ROM/EPROM的单片机,因此,这种芯片组成的最小系统简单﹑靠得住。

用80C51单片机组成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如上图89C51单片机最小系统所示。

由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

其应用特点:

有可供用户利用的大量I/O口线。

内部存储器容量有限。

应用系统开发具有特殊性。

本次课设用到单片机的P0和P1口管脚,P0口管脚接数码管段码的显示,P1口管脚的~控制四个数码管的选通信号,另外,外部中断用来暂停和复位的信号通过和控制,当外部中断1开启时按时器关闭,数码管显示数值0,当外部中断0时,开启按时器,中断返回。

而且通过输入方波信号。

所用的晶振的频率为12MHz。

数码管显示电路

图数码管显示电路

在本次课程设计中采用的是四位七段共阳数码管,由于单片机输出的电流小,难以驱动四位数码管,因此,在数码管的位选端加入反相器作为对数码管的驱动,段选信号由P0口提供,由于是共阳数码管,所以流经P0口的电流为灌电流,所以不需要加驱动电路。

在程序中不断地对数码管的端口进行刷新,当刷新的频率达到某一值时,由于人眼的视觉暂留效应,会感觉到数码管上显示的是持续的数字。

独立键盘

图键盘电路

在本次课程设计中需要用到外部中断来停止计数,外部中断由独立按键引入,按键没有按下去时,输入端为高电平,当按键被按下去后,输入端立刻被拉为低电平,现在将产生一个下降沿,并引发单片机产生中毕命令。

本次课设用到两个外部中断,别离控制暂停和复位。

5总电路图

6程序代码

#include<

>

#defineuintunsignedint

#defineucharunsignedchar

图整体电路图

/*共阳数码管段码表*/

ucharcodesmgd[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

/***数码管位选表***/

ucharcodesmgw[]=

{0xf7,0xfb,0xfd,0xfe};

uintcount=0,n=0,prd=0;

uintread()

{

uchartl1,th1;

uintt1;

tl1=TL1;

TL1=0;

th1=TH1;

TH1=0;

t1=th1*256+tl1;

returnt1;

}

voiddelayms(uintt)

uintx,y;

for(x=t;

x>

0;

x--)

{

for(y=114;

y>

1;

y--);

}

voidT0timer()interrupt1

n=n+1;

if(n==10000)

n=0;

count=read();

prd=2000000/count;

voidsmgdisplay(uintsmgdata)

{

uchars0,s1,s2,s3;

s3=smgdata/1000;

if(s3>

15)

s3=15;

s2=smgdata%1000/100;

s1=smgdata%100/10;

s0=smgdata%10;

P1=smgw[0];

P0=smgd[s0];

delayms(5);

P1=smgw[1];

P0=smgd[s1];

P1=smgw[2];

P0=smgd[s2];

P1=smgw[3];

P0=smgd[s3];

voidEXint0()interrupt0

片微型运算机与接口技术.北京:

电子工业出版社;

[2]孙育才主编,MCS-51系列单片微型运算机及其应用.东南大学出版社;

[3]张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:

哈尔滨工业大学出版社;

[4]李群芳,肖看。

单片机原理借口与应用.北京:

清华大学出版社,2005;

[5]黄智伟,朱卫华.单片机与嵌入式系统应用[M].南华大学.;

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

当前位置:首页 > 考试认证 > 司法考试

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

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