单片机课程设计单频信号的测频和脉冲信号的测宽Word文件下载.docx
- 文档编号:20503647
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:20
- 大小:173.22KB
单片机课程设计单频信号的测频和脉冲信号的测宽Word文件下载.docx
《单片机课程设计单频信号的测频和脉冲信号的测宽Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计单频信号的测频和脉冲信号的测宽Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
对外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
晶体的振荡频率的范围通常是在1.2MHz—12MHz之间。
晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。
为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。
MCS-51单片机常选择振荡频率12MHz的石英晶体。
图2.2内部时钟电路
2.3基于AT89C51脉冲信号测量系统按键电路
按键是实现人机对话的比较直观的接口,可以通过按键实现人们想让单片机做的不同的工作。
键盘是一组按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。
键盘分编码键盘和非编码键盘,案件的识别由专用的硬件译码实现,并能产生键编号或键值的称为编码键盘,而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。
在单片机组成的电路系统及智能化仪器中,用的更多的是非编码键盘。
下图就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的低电平。
图2.3按键电路
2.4基于AT89C51脉冲信号测量系统显示电路
本设计采用6位LED数码管动态显示测量值。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为动态扫描。
各位数码管的段选线相应并联在一起,由P0端口送字形代码,各位LED显示器的位选线(COM端)由P1端口控制。
图中,数码管采用共阴极LED,P1端口输出经过6路反相驱动器75452后接至数码管的COM端。
当位选控制口P1的某位输出:
“1”时,75452反相器驱动相应的LED位发光。
图2.4LED显示电路
2.5总体系统原理图
图2.5系统原理图
第三章硬件电路设计
3.1设计方案及原理
图中给出了整个系统设计的系统框图,系统主要由三个主要部分组成,单片机和晶振电路设计,显示电路设计,复位电路设计。
图3.1系统框图
3.2电路总体框架
主程序首先设置定时器T0为方式1,门控信号GATE=1,在被测脉冲信号INT0的上升启动T0计数码,被测脉冲信号下降沿停止T0计数,脉宽测量过程见下图。
定时器T0以方式1对内部脉冲计数,16位计数值存放在40H(高字节)和41H单元(低字节),调用WDISBUF子程序将该16位计数值换成6位非压缩型BCD码放入显示缓冲区DISBUF中。
主程序流程图如下。
图3.2脉冲测量过程图
图3.3主程序流程图
3.3AT89C51简单介绍
本设计中,主要运用AT89C51芯片。
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
它有以下特点。
·
与MCS-51兼容
4K字节可编程FLASH存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
AT89C51管脚的功能
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
总结
经过系统调试,这个单频信号测频和脉冲信号测宽工作正常,可对脉冲信号进行频率和宽度的测量。
本设计主要优点是利用单片机做主控芯片,电路功能容易扩展。
它的硬件电路相对比较简单,因此成本并不算高。
通过这次学习,我把平时学习的那些理论知识应用到这次的实践之中,锻炼了我的实践能力。
在不懈的努力下,我顺利并按时地完成《基于单片机的脉冲信号测试仪设计》这个课程设计。
设计过程中,与老师的短暂交流让我毕生受益匪浅,老师丰富的专业知识、以及严谨细致、一丝不苟的作风,将成为我日后生活中的典范,学习中的榜样,在此谨对老师致以衷心的感谢!
在设计过程中,我将基础理论知识融于实践认真完成每个环节、这不仅很好地巩固了我的理论知识而且也锻炼了我的动手能力。
同时也提高了我独立思考问题能力。
本次设计从选题、编程设计到完成整个过程都倾注了老师的心血,我向老师表示衷心的感谢和诚挚的敬意!
参考文献
[1]钱建立,周晓军.智能快速充电器设计与制作[M].北京:
科学出版社,2001.
[2]NiggemannE.Highperformancenickel-metalhydridebatteryforelectricandhybridvehicles[Z].EVS215,Bruxelles,1998.
[3]FederDO.CharacteristicofNickelMetalHydridebattery[J].BatteriesIntentional,1994(18).
[4]刘美俊.基于AT89C2051单片机的智能充电器设计[J].电子质量,2004(7).
[5]SatoNoboru,YagiKazuhiko,SakuraiTakeshi.ControltechnologyofNi-MHbatteriesforelectricvehicles[Z].EVS215,Bruxelles,1998.
[6]张毅刚,彭喜源.MCS-51单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社,1997.
[7]电子之城:
TL431特性及应用[EB/OL].
[8]童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2000.
[9]张国雄,金篆芷.测控电路[M].北京:
机械工业出版社,2000.
[10]阎石.数字电子技术基础[M].北京:
高等教育出版社,1998.
[11]电源网:
用普通单片机实现低成本A/D转换
(二)[EB/OL].
附录1主要程序
1.1脉冲信号宽度测量设计程序
ORG0000H
LJMPSTART
ORG0040H
COUNTEQU40H;
COUNT,COUNT+1单元存放测量值
START:
MOVSP,#40H
;
主程序
MOVTMOD,#00001001B;
T0方式1,GATE=1
AGAIN:
MOVTH0,#00H;
计数初值=0000H
MOVTL0,#00H
WAIT0:
JBP3.2,WAIT0;
INT0输入为高则开始等待
SETBTR0;
INT0为低时启动T0
WAIT1:
JNBP3.2,WAIT1;
INT0输入为高则开始计数
WAIT2:
JBP3.2,WAIT2;
等待INT0下降沿
CLRTR0;
下降沿后停止T0计数
MOVA,TH0;
取计数值高字节
MOVCOUNT,A
MOVA,TL0;
取计数值低字节
MOVCOUNT+1,A
LCALLWDISBUF;
写DISBUF
LCALLDISPLAY;
显示测量值
LCALLDISPLAY
LJMPAGAIN;
写DISBUF子程序、
;
子程序名称:
WDISBUF
;
子程序功能:
将一个双字节二进制数转换成6位非压缩型BCD码,写入显示缓冲区DISBUF中。
入口参数:
内部RAM的40H(高字节)和41H(低字节)单元中是待转换的数据
出口参数:
转换结果放入DISBUF内部RAM70H~75H单元中,70H单元中为最低位。
HEXEQU40H
DISBUFEQU70H
WDISBUF:
CLRA;
压缩BCD码初始化
MOVR3,A;
R3R4R5暂存压缩BCD码
MOVR4,A
MOVR5,A
MOVR2,#16
HB1:
MOVR6,HEX;
数据高字节暂存于R6中
MOVR7,HEX+1;
数据低字节暂存于R7中
HB2:
MOVA,R7;
从高端移出待转换的一位到CY中
RLCA
MOVR7,A
MOVA,R6
MOVR6,A
MOVA,R5;
BCD码带进位自身相加,相当于乘2
ADDCA,R5
DAA;
十进制调整
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
MOVA,R3
ADDCA,R3
双字节十六进制数的万位数不超过6,不用调整
DJNZR2,HB1;
处理完十六位
MOVR0,DISBUF+5;
转换成分离BCD码存于70H~75H单元中
MOVA,#00H
MOV@R0,A
MOVA,R3:
R3不超过6,不用转换
DECR0
MOV@R0,A
MOVA,R4
SWAPA
ANLA,#0FH
SWAPA
ANLA,#0FH
MOVA,R4
MOVA,R5
RET
动态扫描显示子程序
子程序名:
DISPLAY
子程序功能:
从DISBUF中依次取出待显示的字符,逐个点亮各位数码管
入口参数:
DISBUF(内部RAM70H~75H单元中,70H单元中伟最低位)中是待显示的字符
无
DISPLAY:
MOVR0,#70H;
R0指向DISBUF首地址
MOVR3,#01H;
右起第一个LED的选择字
NEXT:
MOVA,#00H;
取位选控制字为全灭
MOVP1,A;
瞬时关显示器
MOVA,@R0;
从DISBUF中取出字符
MOVDPTR,#DSEG;
取段码表首地址
MOVCA,@A+DPTR;
查表,取对应的字形码
MOVP0,A;
输出字形码
MOVA,R3;
取当前位选控制字
点亮当前LED显示位
LCALLDELAY;
DELAY延时1ms
INCR0;
R0N指向下一个字符
JBACC.5,EXIT;
诺当前显示位是第六位则结束
RLA;
下一个LED的选择字
MOVR3,A
SJMPNEXT
EXIT:
RET;
返回
段码表0~9,A~F,空白,P
DSEG:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DB6FH,77H,7CH,39H,5EH,79H,71H,00H,73H
DELAY:
MOVR7,#02H;
延时1ms的子程序
DEL1:
MOVR6,#0FFH
DEL2:
DJNZR6,DEL2
DJNZR7,DEL1
2.2脉冲信号频率测量设计程序
频率测量实际上就是在1s内对脉冲个数进行计数,计数值就是信号频率。
利用已有的电路可以实现脉冲信号的频率测量。
令定时器T0工作在方式1,得到50ms的定时间隔,在进行软件计数20次,形成一个1s的测量闸门信号,在测量闸门信号期间响应INT0中断,对脉冲信号加1计数来完成对输入信号的频率计数,计数值存入COUNT和COUNT+1单元,计数值通过6位动态数码管显示出来。
程序如下:
频率计程序清单
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0;
INT0中断入口
ORG000BH;
T0中断入口
LJMPT0INT
ORG0040H
定义计数单元
COUNT,COUNT+1对脉冲个数计数,高位在前
COUNT+2为秒计数单元
START;
MOVSP,#40H;
主程序
AGAIN;
MOVCOUNT,#00H;
计数单元清0
MOVCOUNT+1,#00H
MOVCOUNT+2,#00H
MOVTMOD,#01H;
初始化T0
MOVTH0,#3CH;
计数初值,50ms的定时间隔
MOVTL0,#0B0H
启动T0
SETBET0;
允许T0中断
SETBEX0
SETBIT0;
INT0为负沿触发方式
SETBEA
WAIT:
JNBF0,WAIT;
不到1s则等待
将双字节计数值转换成6位非压缩型BCD码
LCALLDISPLAY
LJMPAGAIN
写WDISBUF子程序
;
DISPLAY显示子程序
右起第一个LED的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计 单频信号的测频和脉冲信号的测宽 单片机 课程设计 信号 脉冲