《单片机原理及应用》课程设计基于proteus.docx

上传人:b****6 文档编号:4114408 上传时间:2022-11-28 格式:DOCX 页数:13 大小:92.11KB
下载 相关 举报
《单片机原理及应用》课程设计基于proteus.docx_第1页
第1页 / 共13页
《单片机原理及应用》课程设计基于proteus.docx_第2页
第2页 / 共13页
《单片机原理及应用》课程设计基于proteus.docx_第3页
第3页 / 共13页
《单片机原理及应用》课程设计基于proteus.docx_第4页
第4页 / 共13页
《单片机原理及应用》课程设计基于proteus.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《单片机原理及应用》课程设计基于proteus.docx

《《单片机原理及应用》课程设计基于proteus.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计基于proteus.docx(13页珍藏版)》请在冰豆网上搜索。

《单片机原理及应用》课程设计基于proteus.docx

《单片机原理及应用》课程设计基于proteus

 

目录

1.摘要--------------------------------------------------

(2)

2.引言--------------------------------------------------

(2)

3.设计原理及方案----------------------------------------

(2)

4.硬件设计----------------------------------------------(3)

5.软件设计----------------------------------------------(6)

6.总结--------------------------------------------------(8)

7.参考文献----------------------------------------------(9)

8.附录--------------------------------------------------(9)

 

题目:

基于AT89C51的数字频率计的设计

一、摘要

摘要:

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

电子计数器测频有两种方式:

一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。

本文阐述了基于通用集成电路设计了一个简单的数字频率计的过程。

关键词:

数字频率计,信号,周期

二、引言

本应用系统设计的目的是在“单片机原理及应用”课堂上学习的知识基础上,通过查阅资料与所学的知识相结合的方法,把学到的知识应用到日常生活当中。

在设计的过程中,不断的学习,思考和同学间的相互交流,让我们共同进步,同时对单片机的程序开发也有了一些了解,拓宽了我们的知识面,为我们以后更好的学习打下了一个良好的基础

三、设计方案及原理

1)设计方案

在单片机89C51中,当定时器/计数器用作“定时器”时,在每个机器周期寄存器加1,因此,也可以把它看作是在累计机器周期。

由于一个机器周期包括12个振荡周期,所以,它的计数速率是振荡频率的1/12。

而用作“计数器”时,寄存器在其对应的外输入端T0或T1有一个“1→0”的跳变时加1。

此操作中,在每个机器周期的S5P2期间采样外部输入信号,当一个周期的采样值为高电平,而下一个周期采样值变为低电平时,计数器加1。

新的计数值在紧接着检测到一个跳变后的下一个周期的S3P1期间在寄存器中出现。

由于识别一个从“1→0”的跳变要用两个机器周期(24个振荡周期),所以最快的计数速率是振荡频率的1/24。

外部输入信号的速率是不受限制的,但必须保证给出的电平在变化前至少被采样一次,即它应该至少保持一个完整的机器周期。

当开关与振荡器相接则为定时,与TX端相接则为计数。

后一个开关受控制信号的控制,它实际上决定了脉冲源是否加到计数器的输入端,即决定了加1计数器的开启与运行。

在实际线路中起另个开关作用的是特殊功能寄存器TMOD与TCON的相应位。

TMOD和TCON是专门用于定时器/计数器的控制寄存器,用户可用指令对其各位进行写入或更改操作,从而选择不同的工作状态(计数或定时)或启动时间,并可设置相应的控制条件,换言之,定时器/计数器是可编程的。

2)参考硬件原理图

被测信号从输入端输入经三极管放大电路放大,再经由555电路组成的施密特触发器整形,将三角波、正弦波、锯齿波等信号变换成方波信号,便于计数。

三极管采用高频小功率管。

数字频率计的总电路图如附图所示,输入被测信号经放大整形电路整形送入定时/计数器输入端口P3.5,单片机在1s时间内统计输入脉冲个数,将计数值的每一位分离出来并显示在LCD液晶显示屏上。

当输入信号改变时需要复位CPU,否则测出的频率是错误的。

四、硬件设计

本频率计的数据采集系统主要元器件是单片机80C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有555电路板、LCD显示器等器件。

可分为以下几个模块:

放大整形模块、数字信号处理(单片机系统)、LCD显示模块。

各模块关系图如图所示:

1.硬件电路图

Proteus绘制该图所用元器件

附图硬件电路

 

2.施密特触发器

施密特触发器:

将555定时器的两个输入端连在一起,并作为外加触发器V1的输入端构成。

参考电压VR1=(2/3)VCC、VR2=(1/3)VCC。

V>VR1时,输出为低电平;V

3.89C51单片机及其引脚说明

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:

4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,和时钟产生电路

引脚说明:

·VCC:

电源电压

·GND:

·P0口:

P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

·P1口:

P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

·P2口:

P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

·P3口:

P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P3口同时具有80C51的多种特殊功能,具体如下表1所示:

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0)

P3.5

T1(定时器1)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器都选通)

表1P3口的第二功能

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

·ALE/

:

当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

·

程序存储允许时外部程序存储器的读选通信号。

当80C52执行外部程序存储器的指令时,每个机器周期

两次有效,除了当访问外部数据存储器时,

将跳过两个信号。

·

/VPP:

外部程序存储器地址允许输入端。

=1时,从内部存储器开始执行。

=0时,从外部程序存储器开始执行。

·XTAL1:

振荡器反相放大器以及内部时钟电路的输入端。

·XTAL2:

振荡器反相放大器的输出端。

4.显示模块

1)、主要功能

A、40通道点阵LCD驱动;

B、可选择当作行驱动或列驱动;

C、输入/输出信号:

输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6);

D、通过单片机控制将所测的频率信号读数显示出来。

2)、引脚和指令功能

模块引脚功能表

引线号

符号

名称

功能

1

Vss

接地

0V

2

VDD

电路电源

5V±10%

3

VEE

液晶驱动电压

保证VDD-VEE=4.5∽5V电压差

4

RS

寄存器选择信号

H:

数据寄存器L:

指令寄存器

5

R/W

读/写信号

H:

读L:

6

E

片选信号

下降沿触发,锁存数据

7

|

14

DB0

|

DB7

数据线

数据传输

寄存器选择功能表

RS

R/W

操作

0

0

指令寄存器(IR)写入

0

1

忙标志和地址计数器读出

1

0

数据寄存器(DR)写入

1

1

数据寄存器读出

五、软件设计

1)定时

本次设计选用定时器T0完成定时功能,选用方式1时最多也只能定时,显然不能满足定时1的要求,可以用下面这种方法解决:

采用T0定时10mS,连续循环定时100次即可完成1定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1定时到时。

其程序流程图如下图所示:

(2)T1计数程序

设计中T1采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可以达到460800Hz,但计数器最多只能计数65536次,显然需要对计数单元进行扩展,扩展的思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。

当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。

T1计数程序的流程图如下图所示:

六、总结

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少测量仪器。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。

这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能学到真正的技术知识,从而提高自己的实际能力。

在设计的过程中遇到问题,是很正常的,只要不怕困难,认真思考和研究,就能达到最终的目的。

此次课程设计带给我的不仅仅是知识、技能上的提高,更提高了我对计算机汇编语言的认识,使我对以后的学习更加有信心。

在设计过程中,得到了我们的指导老师的悉心指导与帮助,在此表示衷心的感谢。

七、参考文献

[1]李光飞,楼苗然主编.51系列单片机.北京:

北京航空航天大学出版社,2003

[2]黄正瑾编著.CPLD系统设计技术入门与应用.北京:

电子工业出版社,2002

[3]吴蓉编著.数字电子技术.兰州大学出版社,2005

[4]陈永甫编著.电子电路智能化设计.实例与应用.北京:

电子工业出版,2002.8

[5]康华光主编.电子技术基础(第四版).北京:

高等教育出版社,1999

附录1

ORG0000H

AJMPSTART

ORG000BH  ;T0中断入口

AJMPT0INT

ORG001BH  ;T1中断入口

AJMPT1INT

ORG0030H

START:

MOVIE,#8AH  ;开放T0、T1中断

MOVTMOD,#51H;T0定时,T1计数

MOVTH0,#0DCH

MOVTL0,#00H   ;定时10ms

MOV20H,#100   ;100*10ms=1s

MOVTH1,#00H

MOVTL1,#00H

MOV21H,#0

MOV22H,#0

MOV23H,#0;存放采集到的频率

SETBTR1

SETBTR0

WAIT:

AJMPWAIT;等待中断

T1INT:

INC23H;计数器溢出则23H单元自增1

RETI

T0INT:

DJNZ20H,NEXT1;定时10ms产生中断

CLRTR1

CLRTR0

MOV22H,TH1;1s时间到则采集数据

MOV21H,TL1

AJMPACOUNT

NEXT1:

MOVTH0,#0DCH;继续定时

MOVTL0,#00H

RETI

ACOUNT:

MOVA,23H

MOVB,#0FFH

MULAB

MOV24H,A

MOV25H,B

MOVA,23H

MOVB,#0FFH

MULAB

MOVB,26H

ADDA,25H

MOV25H,A

CLRA

ADDCA,26H

MOV26H,A

//addT1

MOVA,24H

ADDA,TL1

MOV24H,A

MOVA,25H

ADDCA,TH1

MOV25H,A

CRLA

ADDCA,26H

MOV26H,A

;文件名:

LCD1301.ASM;程序功能:

显示程序

RSbitP3.4

RWbitP3.6

EbitP3.7

LCDEQUP1;显示主程序

SHOW:

MOVA,26H

DAA

MOV26H,A

MOVA,25H

DAA

MOV25H,A

MOVA,24H

DAA

MOV24H,A

toString:

MOVR6,#3

MOVR1,#30H//HEADADDRESS

MOVR0,#26H

NEXT:

MOVA,@R0

ANLA,#0F0H

SWAPA

ADDA,#30H

MOV@R1,A

INCR1

MOVA,@R0

ANLA,#0FH

ADDA,#30H

MOV@R1,A

INCR1

DECR0

DJNZR6,NEXT

MOVLCD,#00000001B;清屏并光标复位

ACALLWR_COMM;调用写入命令子程序

ACALLINIT_LCD;调用初始化子程序

MOVLCD,#00H;写入显示起始地址

ACALLWR_COMM;调用写入命令子程序

MOVR7,#6

MOVR1,#30H

TO:

MOVA,@R1

MOVLCD,A

ACALLWR_DATA;调用写入数据子程序

INCR1

DJNZR7,TO

JMP$;维持当前输出状态

;LCD初始化设定

INIT_LCD:

MOVLCD,#00110000B;设置8位、2行、5x7点阵

ACALLWR_COMM;调用写入命令子程序

MOVLCD,#00001111B;显示器开,光标允许闪烁,

ACALLWR_COMM;调用写入命令子程序

MOVLCD,#00010100B;文字不动,光标自动右移

ACALLWR_COMM;调用写入命令子程序

RET

;----------------------------

WR_COMM:

;写入命令子程序

CLRRS;RS=0,选择指令寄存器

CLRRW;RW=0,选择写模式

CLRE;E=0,禁止读/写LCM

ACALLCHECK_BF;调用判LCM忙碌子程序

SETBE;E=1,允许读/写LCM

RET

CHECK_BF:

;判断是否忙碌子程序

MOVLCD,#0FFH;此时不接受外来指令

CLRRS;RS=0,选择指令寄存器

SETBRW;RW=1,选择读模式

CLRE;E=0,禁止读/写LCM

NOP;延时1微秒

SETBE;E=1,允许读/写LCM

JBLCD.7,CHECK_BF

WR_DATA:

;写入数据子程序

SETBRS;RS=1,选择数据寄存器

CLRRW;RW=0,选择写模式

CLRE;E=0,禁止读/写LCM

ACALLCHECK_BF;调用判断忙碌子程序

SETBE;E=1,允许读/写LCM

RET

END

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

当前位置:首页 > 医药卫生 > 药学

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

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