当前位置:文档之家› 单片机频率计实验报告

单片机频率计实验报告

单片机频率计实验报告
单片机频率计实验报告

单片机课程设计报告

基于AT89C51的数字频率计

学院名称:电气信息工程学院

专业:

班级:

姓名:

学号:

指导老师:

设计时间: 2014年3月

一 .数字频率计简介 (1)

二 .设计要求 (1)

2.1技术要求

2.2 LED数码显示

三 .数字频率计设原理 (2)

3.1 功能指标

3.2 硬件电路设计

3.3 软件程序设计

四 .单片机的硬件连接图 (7)

五 .程序设计 (9)

5.1流程图

5.2子程序

六.总程序设计 (12)

七.系统调试及结果分析 (16)

7.1 硬件调试

7.2 软件调试

7.3结果分析

八.注意事项 (17)

九.心得体会 (18)

十.参考文献 (18)

附录:元件清单

概述:

单片微型计算机简称单片机,20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度,是典型的嵌入式微控制器

(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

本次试验通过AT89C51单片机为核心来设计一个驱动四位数码管的数字频率计。

关键词:数字频率计;AT89C51单片机;信号;编码

一.数字频率计简介

(本实验用仿真头替代AT89C51实现功能)

数字频率计是采用数字电路制做成的能实现对周期性变化信号频率测量的仪器。频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值。其扩展功能可以测量信号的周期和脉冲宽度。通常说的,数字频率计是电子计数指式频率计。

二.数字频率计的设计

1.技术要求

(1)输入脉冲幅度:0-5V

(2)频率测量范围:100-10000HZ

(3)测量精度:±1%

(4)显示方式:四位数字显示2数字频率软件设计

2.采用动态扫描法实现LED数码管显示。

口引入脉冲信号,P2.0至p2.3口作为列扫描输出,P0口输出段码数据,采用12Mhz晶振,可提高计数的精确度。

三.频率计设计原理

对一秒钟内的输入脉冲进行计数,计数的个数即为频率。

可设置T1为定时器工作方式,定时时间为1秒。开中断。而将T0设为计数器

工作方式,待测输入脉冲从P3.4输入。起计数初值清零,即TH0TL0=0000H。

在一秒定时到时,在T1的中断服务程序中,读取TH0TL0中的计数值到内存

中的频率单元。并随后清零TH0TL0,以便下次读数。

读到的计数值即为频率值,经二——十进制转换子程序为十进制,并拆为

非压缩BCD码后送显示缓冲区显示。

设计框图

3.1 功能指标

(1)输入脉冲幅度:0-5V

(2)频率测量范围:100-10000HZ

(3)测量精度:±1%

(4)显示方式:四位数字显示

对一秒钟内的输入脉冲进行计数,计数的个数即为频率。

3.2 硬件电路设计

上网查找关于51单片机的引脚图,以及74LS07的引脚图,共阴极数码管的显示方式。

a.单片机引脚图Array

1.VCC ——运行时加+5V

2.GND ——接地

3.XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端

4.XTAL2 ——振荡器反相放大器的输出端

自激振荡器

5.RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作

用2个机器周期以上的高电平,将使单片机复位。WDT溢出将使该引脚

输出高电平,设置SFT AUXR的DISRTO位(地址8EH)可打开或关闭

该功能。DISRTO位缺省为RESET输出高电平打开状态。

6.P端口——P1、P2、P3口是一组带内部上拉电阻的8位双向I/O口。

P0口没有内接上拉电阻,故需要外部接上一排阻充当P0口的上拉电阻。

可以用P口接按键来实现外加功能。

(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.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(计时器0外部输入)

P3.5 T1(计时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。)

b.74LS07驱动器

六驱动器(OC高压输出) 74LS07

74LS07具有稳压驱动作用,可以通过74LS07驱动器来驱动四位数码管。

c.七段数码管

所使用的数码管为共阴极,使用时将四个数码管的公共端通过74LS07连

接到单片机对应的P2口,从而用P2口来点亮相应的数码管,即P2口输出为低

电平时,对应的数码管点亮;将其他段选信号脚接到P0口,当P0口部分端输

出为高电平时,则点亮相应的字段。

3.3 软件程序设计

对于定时器服务子程序,设置TH1=0F0H TL1=60H,从而产生5ms的脉冲,

循环200次,实现定时1秒的目的。

MOV SP,#60H ;设置堆栈指针

MOV TMOD,#15H ;定时器T1工作在方式1定时模式,

计数器T0工作在方式1计数模式

MOV TH1,#0ECH ;T1置计数初值,定时5mS

MOV TL1,#78H

SETB EA ;CPU开中断

SETB ET1 ;允许定时器/计数器T1中断

MOV TH0,#0

MOV TL0,#0 ;给计数器T0赋初值0

MOV 30H,#200 ;循环200次 200*5=1S定时1S

MOV 33H,#0 ;用于判断显示数码管哪一位

SETB TR1 ;启动定时器1

SETB TR0 ;启动计数器0 字库的选择,根据端选引脚(abcdefg)与P0口连接情况进行汇编,若

hcdegfab依次与P0.7—-P0.0相连,则0可表示为:77H。为了焊接的方便,现

将引脚连接如下:

四.单片机的硬件连接图

(1)电路原理图如下

电路连接原理图

(2)硬件安装图如下

五.流程图

a.主程序流程图

ORG 0000H ;程序复位入口地址

AJMP MAIN ;转移到主程序

ORG 001BH ;定时器T1的中断入口

AJMP PFRO ;跳转到中断程序中

ORG 0022H ;主程序入口地址

MAIN:MOV SP,#60H ;设置堆栈指针

MOV TMOD,#15H ;定时器T1工作在方式1

作在方式1计数模式

MOV TH1,#0ECH ;T1置计数初值,定时5mS

MOV TL1,#78H

SETB EA ;CPU开中断

SETB ET1 ;允许定时器/计数器T1中断

MOV TH0,#0

MOV TL0,#0 ;给计数器T0赋初值0

MOV 30H,#200 ;循环200次200*5=1S定时1S MOV 33H,#0 ;用于判断显示数码管哪一位

SETB TR1 ;启动定时器1

SETB TR0 ;启动计数器0

LOOP:ACALL BCD ;将二进制数转换为压缩BCD码ACALL NBCD ;将压缩BCD码转换为非压缩BCD码AJMP LOOP ;循环处理计数器T0采集得到的数据

PFRO:MOV TH1,#0ECH ;中断程序

b.定时器1中断服务程序

MOV TL1,#78H ;给定时器T1重新赋值

INC 33H ;数码管判断位加1

MOV A,40H ;非压缩BCD码最高位

CJNE A,#0,WANW ;判断40H单元是否为零,若为0继续往下执行,若不为0,则跳转到子程序WANW中Array

MOV A,33H ;每5ms

返回高位

CJNE A,#1,LOP1 ;判断40H单元是否为1

1继续往下执行,若不为1,则跳转到子程序LOP1中

ACALL QIAW ;千位

AJMP DSHI

LOP1:

CJNE A,#2,LOP2

ACALL BAIW ;百位

AJMP DSHI

LOP2:

CJNE A,#3,LOP3

ACALL SHIW ;十位

AJMP DSHI

LOP3:

ACALL GEEW ;个位

MOV 33H,#0

AJMP DSHI

DSHI:

DJNZ 30H,FHUI ;判断是否到1S

MOV 20H,TH0

MOV 21H,TL0 ;将计数器T0中的数转移到20H,21H中

MOV TH0,#0

MOV TL0,#0 ;将计数器T0重新赋0

MOV 30H,#200

FHUI:RETI

c.二进制转换为压缩BCD码

BCD: MOV R2,20H ;将计数得到的值存入R2和R3中

MOV R3,21H

CLR A

MOV R4,#0 ;将R4、R5、R6清零

MOV R5,#0

MOV R6,#0

MOV R7,#16

LOP:

CLR C ; 将16位二进制数逐位左移一位,移得的数据放入进位C中

MOV A,R3

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R6

ADDC A,R6

DA A

MOV R6,A

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ R7,LOP

RET

d.压缩BCD码转换为非压缩BCD码

NBCD:MOV A,R5

;将压缩BCD码R4R5R6转换为非压缩BCD码, 从高到低依次放于40H、41H、42H、43H、44H ANL A,#0F0H

SWAP A

MOV 41H,A

MOV A,R5

ANL A,#0FH

MOV 42H,A

MOV A,R6

ANL A,#0F0H

SWAP A

MOV 43H,A

MOV A,R6

ANL A,#0FH

MOV 44H,A

MOV 40H,R4

RET

WANW:MOV A,33H ;10KHZ

CJNE A,#1,LOOP1

ACALL QIAW1

AJMP DSHI

LOOP1:

CJNE A,#2,LOOP2

ACALL BAIW1

AJMP DSHI

LOOP2:

CJNE A,#3,LOOP3

ACALL SHIW1

AJMP DSHI

LOOP3:

ACALL GEEW1

MOV 33H,#0

AJMP DSHI

六.总程序设计

ORG 0000H ;程序复位入口地址

AJMP MAIN ;转移到主程序

ORG 001BH ;定时器T1的中断入口

AJMP PFRO ;跳转到中断程序中

ORG 0022H ;主程序入口地址

MAIN:MOV SP,#60H ;设置堆栈指针

MOV TMOD,#15H ;定时器T1工作在方式1定时模式,计数器T0工作在方式1计数模式

MOV TH1,#0ECH ;T1置计数初值,定时5mS

MOV TL1,#78H

SETB EA ;CPU开中断

SETB ET1 ;允许定时器/计数器T1中断

MOV TH0,#0

MOV TL0,#0 ;给计数器T0赋初值0

MOV 30H,#200 ;循环200次200*5=1S定时1S

MOV 33H,#0 ;用于判断显示数码管哪一位

SETB TR1 ;启动定时器1

SETB TR0 ;启动计数器0

LOOP:ACALL BCD ;将二进制数转换为压缩BCD码

ACALL NBCD ;将压缩BCD码转换为非压缩BCD码

AJMP LOOP ;循环处理计数器T0采集得到的数据

PFRO:MOV TH1,#0ECH ;中断程序

MOV TL1,#78H ;给定时器T1重新赋值

INC 33H ;数码管判断位加1

MOV A,40H ;非压缩BCD码最高位

CJNE A,#0,WANW ;判断40H单元是否为零,若为0继续往下执行,若不为0,则跳转到子程序WANW中

MOV A,33H ;每5ms显示一位,从最高位开始,到最低位时,返回高位

CJNE A,#1,LOP1 ;判断40H单元是否为1,若为1继续往下执行,若不为1,则跳转到子程序LOP1中

ACALL QIAW ;千位

AJMP DSHI

LOP1:

CJNE A,#2,LOP2

ACALL BAIW ;百位

AJMP DSHI

LOP2:

CJNE A,#3,LOP3

ACALL SHIW ;十位

AJMP DSHI

LOP3:

ACALL GEEW ;个位

MOV 33H,#0

AJMP DSHI

WANW:MOV A,33H ;10KHZ

CJNE A,#1,LOOP1

ACALL QIAW1

AJMP DSHI

LOOP1:

CJNE A,#2,LOOP2

ACALL BAIW1

AJMP DSHI

LOOP2:

CJNE A,#3,LOOP3

ACALL SHIW1

AJMP DSHI

LOOP3:

ACALL GEEW1

MOV 33H,#0

AJMP DSHI

DSHI:

DJNZ 30H,FHUI ;判断是否到1S

MOV 20H,TH0

MOV 21H,TL0 ;将计数器T0中的数转移到20H,21H中

MOV TL0,#0 ;将计数器T0重新赋0

MOV 30H,#200

FHUI:RETI

BCD: MOV R2,20H ;将计数得到的值存入R2和R3中

MOV R3,21H

CLR A

MOV R4,#0 ;将R4、R5、R6清零

MOV R5,#0

MOV R6,#0

MOV R7,#16

LOP:

CLR C ; 将16位二进制数逐位左移一位,移得的数据放入进位C中

MOV A,R3

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R6

ADDC A,R6

DA A

MOV R6,A

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ R7,LOP

RET

NBCD:MOV A,R5 ;将压缩BCD码R4R5R6转换为非压缩BCD 码,从高到低依次放于40H、41H、42H、43H、44H

ANL A,#0F0H

SWAP A

MOV 41H,A

MOV A,R5

ANL A,#0FH

MOV 42H,A

MOV A,R6

SWAP A

MOV 43H,A

MOV A,R6

ANL A,#0FH

MOV 44H,A

MOV 40H,R4

RET

QIAW:MOV A,41H ;频率不超过10KHZ时,以HZ为单位,四位显示,最高位为千位,以此类推

MOV DPTR,#TAB2 ;千位上显示41H单元中的内容

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0F7H

RET

BAIW:MOV A,42H ;百位上显示42H单元中的内容

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0FBH

RET

SHIW:MOV A,43H ;十位上显示43H单元中的内容

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0FDH

RET

GEEW:MOV A,44H ;个位上显示44H单元中的内容,显示小数点,表示可测量频率小于10KHZ

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0FEH

RET

QIAW1:MOV A,40H ;频率大于10KHZ时,小数点放千位,以KHZ 为单位

MOV DPTR,#TAB1 ;千位上显示40H单元中的内容

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0EFH

RET

BAIW1:MOV A,41H ;百位上显示41H单元中的内容和显示小数点

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0F7H

RET

SHIW1:MOV A,42H ;十位上显示42H单元中的内容

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0FBH

RET

GEEW1:MOV A,43H ;个位上显示43H单元中的内容

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,#0FDH

RET

TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;GFEDCBA

TAB2:DB

0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;HGFEDCBA

END

七.系统调试及结果分析

7.1 硬件调试

硬件电路板焊接好以后,先用万用表测试电路中有无虚焊短接之处,将所有的电源及地线测量一下,看有无遗漏。测试无误后,将板子通电,用万用表检测电源和地线之间是否是5V电压,测量无误后,进行静态调试。

取两根线一端接地,另一端接P2.0~P2.3口中的一个口,若对应数码管亮,再用另一根导线,其中一端接地,另一端与P0.0~P0.7依次接触,看数码管各段的亮灭情况,从而判断每个数码管各段的好坏及电路的是否正确。若有异常显示,则需查找对应接线。

通电后,将示波器一端接地,另一端接P3.4口,看波形是否为方波。(周期T大约为6.7ms)

7.2 软件调试

将编好的子程序进行编译仿真,并进行调试。若有错误显示,则需一一改正后,再进行调试。将所有子程序仿真完毕后,在调试总程序,进行仿真,通过仿真头连接到电路板上进行调试。

7.3结果分析

1.故障分析:

问题1:无方波显示

解决办法:查看是否是连接的到T0(14管教),如连接正常,则查看电路是否有漏焊或虚焊。

问题2:数码管不亮

解决办法:查看硬件电路发现数码管的公共端没有接,用电烙铁全部连起来问题3:用程序驱动数码管发现出现乱码

解决办法:先查看程序是否编码错误,若无错误,查找焊接。由于焊接电路时,数码管7段显示没有按照顺序接,P2口也没按顺序接,然后调整程序和电路板。

2.误差分析

由原理图可知频率的理论值f=1/(2.2RC)=189.6HZ,由示波器读出来的值为149.1HZ。有数码管读出来的值148到153之间变化。由于单片机的计数的速率限制会存在误差,测得是瞬时频率,所以数码管或跳动。可能是产生信号源的电路所产生的脉冲不稳定,导致结果有误差。还有可能硬件电路焊接的问题,焊锡的多少,导线的长短有关。还有误差来源有可能来自振荡电路,12MHZ的晶振准确度不够。从而引起结果误差。

八.注意事项

1. 在焊接电路板之前,先画好硬件原理图,在电路板上面排版,使得元器件都合理分布,芯片朝一个方向,同时使仿真头不会挡住数码管。

2.焊接器件时,应遵循由小及大,由埃及高的原则排列,同时焊的时候焊管座,不要插芯片。

3.焊接完一个模块都要用万用表检测电路是否出现短接,如果出现短路,需要检测出现短路的地方。

4. 电路板及访真机接电源操作时,要注意正负极,不要带电操作,以免造成元器件和仿真机的损坏。(本实验黑为正极,红为负极)

5. 在使用仿真头的时候,应把所有的引脚全部对齐后再均匀用力按下,不要

压断或者压弯引脚,取下仿真头是应用起子或者镊子,从两边撬开,待引脚连接松动后,两边同时用力,轻轻拔出,并给仿真头安上保护套。

九.心得体会

虽然这门课修过公选,但时隔一年本就不大熟的知识更加淡漠,完成整体设计颇费周折。在这过程中书到用时方恨少,天下还是好人多——同学和老师的帮助给了我莫大的动力。,我相信这过程必然对我今后的学习和工作产生积极的影响。

硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来,那便我的辛劳的结晶。当然本次选择设计的定时数字频率计,因为受材料和个人知识水平的限制只能满足满足一般的测量要求,且电路在测试复杂信号时存在一定的问题,频率只能稳定在一定范围内,虽可以通过选取特定的频段来排除频率变化较复杂区段的干扰,但这样针对不同的信号源都要重新调整程序,过于复杂。而更精确的频率计设计,现有水平还不能达到,所以本次就未深入涉及。

当然,这其中也有很多问题,第一,不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,在做人上,我认识到,无论做什么,只要你坚强,有足够的毅力决心,就一定会成功。

一分耕耘,一分收获;一次实验,终身受益。实验中自主学习,积于求教。在往后的生活学习中,我一定会做的更好。

十.参考文献

【1】万福军. MCS-5单片机原理、系统设计与应用[M].北京:清华大学出版社2009.5;

【2】谢自美.电子线路设计[M].武昌:华中科技大学出版社,2000.7 ;

【3】周明德.微机原理与接口技术[M].北京:科技出版社,2007.3;

【4】李春.数字频率计设计[D].北京:邵阳电子厂,2011,02: 4页到7页;【5】张有德.单片机微型原理、应用与实验[M].上海:复旦大学出版社,2006.8。

单片机课程设计报告——智能数字频率计汇总

单片机原理课程设计报告题目:智能数字频率计设计 专业:信息工程 班级:信息111 学号:*** 姓名:*** 指导教师:*** 北京工商大学计算机与信息工程学院

1、设计目的 (1)了解和掌握一个完整的电子线路设计方法和概念; (2)通过电子线路设计、仿真、安装和调试,了解和掌握电子系统研发产品的一个基本流程。 (3)了解和掌握一些常见的单元电路设计方法和在电子系统中的应用: 包括放大器、滤波器、比较器、计数和显示电路等。 (4)通过编写设计文档与报告,进一步提高学生撰写科技文档的能力。 2、设计要求 (1)基本要求 设计指标: 1.频率测量:0~250KHz; 2.周期测量:4mS~10S; 3.闸门时间:0.1S,1S; 4.测量分辨率:5位/0.1S,6位/1S; 5.用图形液晶显示状态、单位等。 充分利用单片机软、硬件资源,在其控制和管理下,完成数据的采集、处理和显示等工作,实现频率、周期的等精度测量方案。在方案设计中,要充分估计各种误差的影响,以获得较高的测量精度。 (2)扩展要求 用语音装置来实现频率、周期报数。 (3)误差测试 调试无误后,可用数字示波器与其进行比对,记录测量结果,进行误差分析。 (4)实际完成的要求及效果 1.测量范围:0.1Hz~4MHz,周期、频率测量可调; 2.闸门时间:0.05s~10s可调; 3.测量分辨率:5位/0.01S,6位/0.1S; 4.用图形液晶显示状态、单位(Hz/KHz/MHz)等。 3、硬件电路设计 (1)总体设计思路

本次设计的智能数字频率计可测量矩形波、锯齿波、三角波、方波等信号的频率。系统共设计包括五大模块: 主芯片控制模块、整形模块、分频模块、档位选择模块、和显示模块。设计的总的思想是以AT89S52单片机为核心,将被测信号送到以LM324N为核心的过零比较器,被测信号转化为方波信号,然后方波经过由74LS161构成的分频模块进行分频,再由74LS153构成的四选一选择电路控制档位,各部分的控制信号以及频率的测量主要由单片机计数及控制,最终将测得的信号频率经LCD1602显示。 各模块作用如下: 1.主芯片控制模块: 单片机AT89S52 内部具有2个16位定时/计数器T0、T1,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。利用单片机的计数器和定时器的功能对被测信号进行计数。以AT89S52 单片机为控制核心,来完成对各种被测信号的精确计数、显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。 2.整形模块:整形电路是将一些不是方波的待测信号转化成方波信号,便于测量。本设计使用运放器LM324连接成过零比较器作为整形电路。 3.分频模块: 考虑单片机利用晶振计数,使用11.0592MHz 时钟时,最大计数速率将近500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。本设计使用的分频芯片是74LS161实现4分频及16分频。 4.档位选择模块:控制74LS161不分频、4分频或者 16分频,控制芯片是74LS153。 5.显示模块:编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示,本设计选用LCD1602。 (2)测频基本设计原理 所谓“频率”,就是周期性信号在单位时间(1s)内变化 的次数。若在一定时间间隔T内测得这个周期性信号的重复变 化次数N,则其频率可表示为f=N/T(右图3-1所示)。其中脉 冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等 。利用单片机的定时/计数T0、T1的定时、计数 于被测频率f x 功能产生周期为1s的时间脉冲信号,则门控电路的输出信号持图3-1

单片机简易频率计课程设计

前言 (3) 一、总体设计 (4) 二、硬件设计 (6) AT89C51单片机及其引脚说明: (6) 显示原理 (8) 技术参数 (10) 电参数表 (10) 时序特性表 (11) 模块引脚功能表 (12) 三、软件设计 (12) 四、调试说明 (15) 五、使用说明 (17) 结论 (17) 参考文献 (18)

附录 (19) Ⅰ、系统电路图 (19) Ⅱ、程序清单 (20)

前言 单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用在生活中至关重要。 随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行缓慢,而且测量频率的范围比较小.考虑到上述问题,本论文设计一个基于单片机技术的数字频率计。首先,我们把待测信号经过放大整形;然后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行了仿真。

一、总体设计 用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量. 所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率f x。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s.闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。 本系统采用测量频率法,可将频率脉冲直接连接到AT89C51的T0端,将T/C1用做定时器。T/C0用做计数器。在T/C1定时的时间里,对频率脉冲进行计数。在1S定时内所计脉冲数即是该脉冲的频率。见图1: 图1测量时序图 由于T0并不与T1同步,并且有可能造成脉冲丢失,所以对计数器T0做一定的延时,以矫正误差。具体延时时间根据具体实验确定。 根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.doczj.com/doc/ad9548146.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.doczj.com/doc/ad9548146.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

单片机实验报告

仲恺农业工程学院实验报告纸 自动化学院(院、系)工业自动化专业144班组单片机与嵌入式系统实验课学号201421714406姓名黄国盛实验日期2016年11月05日教师评定 实验一Keil C51集成开发环境的使用练习 一、实验目的 熟悉Keil C51集成开发环境的使用方法。 二、实验设备及器件 IBM PC机一台 三、实验内容 按照Keil C51软件的使用说明进行Keil C51集成开发环境的安装和使用练习,然后按照以下内容建立并编译产生HEX文件。 ORG0000H LJMP Main ORG00F0H Main: MOV R7,#0 Loop: MOV R6,#0 DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R7,Loop;延时 CPL P1.0;P1.0取反 CPL P1.1;P1.1取反 CPL P1.2;P1.2取反 CPL P1.3;P1.3取反 CPL P1.4;P1.4取反

CPL P1.5;P1.5取反 CPL P1.6;P1.6取反 CPL P1.7;P1.7取反 SJMP Main END 四、实验要求 熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。 五、实验预习要求 认真阅读Keil C51软件的使用说明。 六、实验思考题 试写一条把片内RAM50H~59H单元清零的程序。 实现程序如下: ORG0000h LJMP Main ORG0100H Main:MOV R0,#50H;立即数50H(内部RAM地址)传送到R0中 MOV R1,#10;立即数10(循环次数为10次)传送到R1中 MOV A,#0;立即数0传送到A,中将累加器A的值清0 LOOP:MOV@R0,A;将R0内容所指向的单元清0 INC R0;R0内容加1,修改地址指针 DJNZ R1,LOOP;减1不为0判断,若为真跳回循环,否,则运行下一语句 END;结束 七、实验总结 通过实验,熟悉80C51指令系统,熟悉Keil C51集成开发环境的使用方法,熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。加深对内部存储器读写的认识。

基于单片机的简单频率计课程设计报告

《单片机原理与接口技术》课程设计报 告 频率计

1功能分析与设计目标 0 2频率计的硬件电路设计 (3) 2.1 控制、计数电路 (3) 2.2 译码显示电路 (5) 3频率计的软件设计与调试 (6) 3.1软件设计介绍 (6) 3.2程序框图 (8) 3.3功能实现具体过程 (8) 3.4测试数据处理,图表及现象描述 (10) 4讨论 (11) 5心得与建议 (12) 6附录(程序及注释) (13)

1 功能分析与设计目标 背景:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。为了实现智能化的计数测频,实现一个宽领域、高精度的频率计,一种有效的方法是将单片机用于频率计的设计当中。用单片机来做控制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。 题目要求: 用两种方法检测(△m ,△ T )要求显示单位时间的脉冲数或一个脉冲的周期。 设计分析: 电子计数式的测频方法主要有以下几种:脉冲数定时测频法(M 法),脉冲周期测频法(T 法),脉冲数倍频测频法(AM 法),脉冲数分频测频法(AT 法),脉冲平均周期测频法(M/T 法),多周期同步测频法。下面是几种方案的具体方法介绍。 脉冲数定时测频法(M 法):此法是记录在确定时间Tc 内待测信号的脉冲个数Mx ,则待测频率为: Fx=Mx/ Tc 脉冲周期测频法(T 法):此法是在待测信号的一个周期Tx 内,记录标准频率信号变化次数Mo。这种方法测出的频率是: Fx=Mo/Tx 脉冲数倍频测频法(AM 法):此法是为克服M 法在低频测量时精度不高的缺陷发展起来的。通过A 倍频,把待测信号频率放大A 倍,以提高测量精度。其待测频率为: Fx=Mx/ATo 脉冲数分频测频法(AT 法):此法是为了提高T 法高频测量时的精度形成的。由于T 法测量时要求待测信号的周期不能太短,所以可通过A 分频使待测信号 的周期扩大A倍,所测频率为: Fx=AMo/Tx 脉冲平均周期测频法(M/T法):此法是在闸门时间Tc内,同时用两个计数器分别记录

基于单片机的数字频率计设计

江阴职业技术学院 毕业论文 课题:基于单片机的数字频率计的设计 专业电子信息工程 学生姓名冯海洋 班级08电子信息工程(1)班 学号20080305107 指导教师张文洁 完成日期

目录 摘要?错误!未定义书签。 前言................................................................................................... 错误!未定义书签。第一章绪论............................................................................................... 错误!未定义书签。 1.1课题背景?错误!未定义书签。 1.2 课题研究的目的和意义 ................................................................. 错误!未定义书签。 1.4数字频率计设计的任务与要求?错误!未定义书签。 第二章数字频率计总体方案设计............................................................... 错误!未定义书签。 1.1方案比较 .......................................................................................... 错误!未定义书签。 1.2方案论证......................................................................................... 错误!未定义书签。 1.3方案选择......................................................................................... 错误!未定义书签。 第三章数字频率计的硬件系统设计........................................................... 错误!未定义书签。 3.1数字频率计的硬件系统框架...................................................... 错误!未定义书签。 3.2 数字频率计的主机电路设计?错误!未定义书签。 3.3数字频率计的信号输入电路设计................................................... 错误!未定义书签。 3.4数字频率计显示电路的设计 ........................................................... 错误!未定义书签。 3.5数字频率计的计数电路的设计?错误!未定义书签。 3.6数字频率计电源模块的设计?错误!未定义书签。 第四章数字频率计软件系统设计?错误!未定义书签。 4.1 软件设计规划................................................................................. 错误!未定义书签。 4.1.1信号处理............................................................................ 错误!未定义书签。 4.1.2中断控制................................................................................. 错误!未定义书签。 4.2.1定时器/计数器?错误!未定义书签。 4.2.2定时工作方式0..................................................................... 错误!未定义书签。 4.3程序流程图设计................................................................................ 错误!未定义书签。

单片机实验报告

单片机实验报告 班级:信科09-3 姓名:王艳辉 学号:08093581 指导老师:陈岱 完成时间:2012年1月8日

实验一 I/O接口P1、P3口实验 一,实验题目 1,用P1口做输出,接八只发光二极管,编写程序,使发光二极管循环点亮。 2,用P3口做输入口,接八个扭子开关,通过P1口在实验箱上LED 灯上输出,编写程序读取开关状态,将此状态,在发光二极管上显示出来。 二,实验目的 1.熟悉使用CPLD实验箱进行单片机实验的方法。 2.设计出符合实验要求的CPLD硬件电路。 3.学习单片机仿真开发软件Keil 51的使用方法。 4.学习MCS-51汇编语言编程方法。 5.学习Pl口的使用方法。 6.学习延时子程序的编写和使用。 三,实验准备 P1和P3口为准双向口,Pl、P3的每一位都能独立地定义为输出线或输入线,作为输入时,必须向锁存器相应位写入“l”,该位才能作为输入。803l中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“l”使它再成为一个输入。再来看一下延时程序的实现。现常用的有两种方法:一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。根据实验系统的工作主频,计算出延时0.1s的

时间常量,编制延时程序: MOV R7, #200 (1) DEl:MOy R6,#X (2) DE2:DJNZ R6,DE2 (3) DJNZ R7,DEl (4) 上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需1÷0.256us现求出X值: (X*1/0.256+1/0.256+l/0.256)*200+l/0.256=0.1*10^6。解出X=l26。代入上式可知实际延时约0.100O04s,近似符合要求。 四,实验步骤 (1)打开MAX+PLUSⅡ CPLD实验开发系统。 (2)点击File菜单Project子菜单之Name项,出现Project Name 对话框。为当前的实验选择恰当的路径并创建项目名称”E:\AT8031”。(3)点击File菜单之New项,出现对话框,为选择输入方式,选择Graphic Editor File。出现图形编辑窗口。 (4)双击空白编辑区,出现Enter Symbol 对话框。 (5)从Symbol Libraries项中选择mf子目录(双击),在prim子目录中选择输入脚input 和输出引脚output。 (6)在图形编辑窗口中的左侧点击连线按钮,并完成对电路的连线。(7)在引脚的PIN_NAME处左键双击使之变黑,键入引脚名称。

数字逻辑数字频率计的设计课程设计报告

滁州学院 课程设计报告 课程名称:数字逻辑课程设计 设计题目:数字频率计的设计 系别:网络与通信工程系 专业:网络工程(无线传感器网络方向)组别:第七组 起止日期:2012年5月28日~2012年6 月18日指导教师:姚光顺 计算机与信息工程学院二○一二年制

课程设计任务书

目录 1绪论 (1) 1.1设计背景 (1) 1.2主要工作和方法 (1) 1.3本文结构 (1) 2相关知识 (1) 2.1数字频率计概念...................................................................................................................... .. (1) 2.2数字频率计组成 (1) 3系统设计 (2) 4系统实现 (2) 4.1计数译码显示电路 (2) 4.2控制电路 (3) 5系统测试与数据分析 (5) 6课程设计总结与体会 (8) 6.1设计总结 (8) 6.2设计体会 (8) 结束语 (9) 参考文献 (9) 附录 (10) 致谢 (12)

1绪论 1.1设计背景 数字频率计是一种基础测量仪器,到目前为止已有 30 多年的发展史。早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量数字频率计的技术水平,决定数字频率计价格高低的主要依据。目前这些基本技术日臻完善,成熟。应用现代技术可以轻松地将数字频率计的测频上限扩展到微频段。 随着科学技术的发展,用户对数字频率计也提出了新的要求。对于低档产品要求使用操作方便,量程(足够)宽,可靠性高,价格低。而对于中高档产品,则要求有高分辨率,高精度,高稳定度,高测量速率;除通常通用频率计所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等其他功能。这些要求有的已经实现或者部分实现,但要真正完美的实现这些目标,对于生产厂家来说,还有许多工作要做,而不是表面看来似乎发展到头了。 随着数字集成电路技术的飞速发展,应用计数法原理制成的数字式频率测量仪器具有精度高、测量范围宽、便于实现测量过程自动化等一系列的突出特点。 1.2主要工作和方法 设计一个数字频率计。要求频率测量范围为1Hz-10kHz。数字显示位数为四位静态十进制计数显示被测信号。先确定好数字频率计的组成部分,然后分部分设计,最后组成电路。 1.3本文结构 本文第1部分前言主要说明频率计的用处和广泛性。第2部分简要说明了本次课程设计的要求。第3部分概要设计大致的勾画出本次设计的原理框架图和电路的工作流程图。第4部分简要说明4位二进制计数器74160的原理和搭建计数译码显示电路的原理,同时分析控制电路的功能,形成控制电路图,及搭建显示电路和控制电路的组合原理图。第5部分调试与操作说明,介绍相关的操作和输入不同频率是电路的显示情况。 2相关知识 2.1数字频率计介绍 2.1.1数字频率计概念 数字频率计是一种直接用十进制数字现设被测信号频率的一种测量装置,它不仅可以测量正弦波、方波、三角波等信号的频率,而且还可以用它来测量被测信号的周期。经过改装,在电路中增加传感器,还可以做成数字脉搏计、电子称、计价器等。因此,数字频率计在测量物理量方面有广泛的应用。 2.1.2数字频率计组成 数字频率计由振荡器、分频器、放大整形电路、控制电路、计数译码显示电路等部分组成。其中的控制脉冲采用时钟信号源替代,待测信号用函数信号发生器产生。数字频结构原理框图如图3.1

基于5单片机的数字频率计设计

基于5单片机的数字频率计设计

毕业论文基于51单片机的数字频率计 基于51单片机的数字频率计 目录 第1节引言 (2) 1.1数字频率计概 述…………………………………………… (2) 1.2频率测量仪的设计思路与频率的计 算…………………………………………… (2) 1.3基本设计原 理…………………………………………… (3) 第2节数字频率计(低频)的硬件结构设计 (4) 2.1系统硬件的构成 (4) 2.2系统工作原理图 (4) 2.3AT89C51单片机及其引脚说明…………………………………………………

(5) 2.4信号调理及放大整形模块 (7) 2.5时基信号产生电路 (7) 2.6显示模块 (8) 第3节软件设计 (12) 3.1 定时计数 (12) 3.2 量程转换 (12) 3.3 BCD转换 (12) 3.4 LCD显示…………………………………………………

(12) 第4节结束语 (13) 参考文献 (14) 附录汇编源程序代码 (15) 基于51单片机的数字频率计 第1节引言 本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.1数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基

杭电自动化单片机实验报告

单片机原理与应用及 C51程序设计 实验报告 实验名称:单片机技术实验 实验一继电器控制输出实验 一、实验目的 1.掌握STC12C5A16S2单片机的最基本电路的设计; 2.了解单片机I/O端口的使用方法; 3.了解继电器和蜂鸣器控制电路以及小电压控制大电压的方法。

二、实验要求 1.利用STC12C5A16S2单片机的P1.2、P1.3口作按钮S9和S10输入,P1.0 和P1.1口作开关量输出,并分别控制一个5V的继电器和蜂鸣器。 2.当S9闭合时,P1.0控制继电器闭合并控制灯泡闪亮;当S9断开时,继 电器触电断开,灯泡不亮; 3.当S10闭合时,P1.1控制蜂鸣器闭合并发出声音;当S10断开时,蜂鸣 器不响。 三、电路 四、原理说明 Q1、Q2为9012三极管即PNP型,低电平导通,当S9或S10按下时,相应的IO口拉低,当P1.0或P1.1赋0时即可控制继电器的吸合活着蜂鸣器的发声。 五、程序代码 #include sbit L1=P1^1; sbit L2=P1^2; sbit L3=P1^3; sbit L0=P1^0;//定义位变量 void delay() { int i,j; for(i=0;i<250;i++) for(j=0;j<250;j++);//利用系统时钟,定义延时函数 }

void main () { int n=20; while(1) //不断循环检测 { if(L2==0) //判断S9输入 { while(n--) { L0=0; delay(); L0=1; delay(); //灯泡以2*delay为周期闪亮 } n=20; } if(L3==0) //判断S10闭合 { while(n--) { L1=0; delay(); L1=1; delay(); //蜂鸣器以2*delay为周期发声 } n=20; } } } 实验二 LED轮换点亮实验 一、实验目的 1.掌握STC12C5A16S2单片机的I/O电路设计; 2.学习SN74HC573数据锁存输出方法。 二、实验要求 1.利用SN74HC573对STC12C5A16S2单片机的P0进行扩展,驱动LED 控制输出; 2.编写程序,使P0.0~P0.7上的发光二极管循环点亮;P2.7控制 SN74HC573芯片的使能; 三、电路

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

数电课程设计报告-数字频率计

数电课程设计报告:频率计 目录 一、设计指标 二、系统概述 1.设计思想 2.可行性论证 3.工作过程 三、单元电路设计及分析 1.器件选择 2.设计及工作原理分析 四、电路的组构及调试 1.遇到的问题 2.现象记录及原因分析 3.解决及结果 4.功能的测试方法、步骤、设备、记录的数据 五、总结 1.体会 2.电路总图 六、参考文献 一、设计指标 设计指标:要求设计一个测量TTL方波信号频率的数字系统。测试值采用4个LED七段数码管显示,并以发光二极管只是测量对象(频率)的单位:Hz、kHz。

频率的测量范围有四档量程。 1)测量结果显示四位有效数字,测量精度为万分之一。 2)频率测量范围:100.1Hz——999.9kHz,分为: 第一档: 100.0Hz——999.9Hz 第二档: 1.000kHz——9.999kHz 第三档: 10.00kHz——99.99kHz 第四档: 100.0kHz——999.9kHz 3)量程切换可以采用两个按键SWB、SWA手动切换。 扩展要求: 一、当被测频率大于999.9kHz,超出最大值时,设置亮一个警灯,并同时发出报警声音。 二、自动切换量程 提示: 1.计数器计到9999时,产生溢出信号CO,启动量程加档。 2.显示不足4位有效数字时量程减档。 三、各量程输出信号的频率最高位有效数字为1、2、3、4、5、6、7、8、9。 二、系统概述 1.设计思想 周期性信号频率可通过记录信号在1s内的周期数来确定其频率。

累计标准时间Ts中被测信号的脉冲个数Nx,被测信号频率:fx≈Nx/Ts 测量时间Ts选择:由于测量时间Ts需要根据被测信号的频率切换,所以通常对振荡时钟进行分频以获得不同的定时时间。 采样定时、显示锁存、计数器清零的控制时序波形图 2.可行性论证 用计数器实现记录周期数的功能;用时基信号产生计数时间作为采样时间;用四位动态扫描通过数码管显示结果;因为如果计数器直接把数据输入到数码管显示,那么数码管的数据就会不断变化,累计增加的情况,所以采用锁存器,在每个时间信号内,通过一个高电平使能有效,将计数器的数值锁存到寄存器或者锁存器;为了不要让每次锁存的数据会比上次

基于AT89C52单片机的简易频率计设计说明书

单片机系统开发与应用工程实习报告 选题名称:基于AT89C52单片机的简易频率计设计 系(院): 专业:计) 班级: 姓名:学号: 指导教师: 学年学期: 2009 ~ 2010 学年第 2 学期 2010 年 5 月 30 日

摘要: 在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器0作为定时器,实现2.5ms定时。外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用C语言进行软件编程,用keil软件进行调试。最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。 关键词:单片机;频率计;AT89C52

目录 1 项目综述 (1) 1.1 设计要求 (1) 1.2 系统设计 (1) 2硬件设计 (2) 2.1 电路原理图 (2) 2.2 元件清单 (2) 2.3 主要芯片引脚说明 (3) 3 软件设计 (4) 3.1 程序流程图 (4) 3.2 软件设计简述 (5) 3.3 程序清单 (6) 4 系统仿真及调试 (10) 4.1 硬件调试 (10) 4.2 软件调试 (10) 5 结果分析 (10) 总结 (11) 参考文献 (12)

单片机实验报告

汇编语言程序设计 1)编译后,系统提示:目标越界,改为AJMP后编译通过,将ORG 07FFH 改为0800H, 系统提示:目标越界,这说明AJMP可以在2KB 范围内无条件转移。 2.改为LJMP编译通过,这说明LJMP可以在64KB 范围内无条件转移。 3.将LJMP LP1改为SJMP LP0,机器码为80FC,其中FC为偏移量,它是一个补码,01H~7FH说明向PC(增大√、减小)方向跳,80H~FFH说明向PC(增大、减小√)方向跳,这说明SJMP可以在当前PC值-128B~+127B 范围内无条件转移。 1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数: 实验程序: MOV A,20H JZ ZREO JB ACC.7,NEG MOV 21H,#01H SJMP PEND ZREO:MOV 21H,A SJMP PEND NEG:MOV 21H,#0FFH PEND:SJMP$ END 结果记录: 1.将数89H存放于20H中,运行程序,观察到21H单元中的内容为FF; 2.将数05H存放于20H中,运行程序,观察到21H单元中的内容为01; 3.将数00H存放于20H中,运行程序,观察到21H单元中的内容为00; 2、将20H~27H中的压缩BCD码拆为两个单字节BCD码,存放在以2000H为首地址的外部RAM 中。 实验程序: MOV R0,#20H MOV R7,#08H MOV DPTR,#2000H LOOP:ACALL CZ INC R0

INC DPTR DJNZ R7,LOOP SJMP $ CZ:MOV A,@R0 SWAP A ANL A,#0FH MOVX @DPTR,A INC DPTR MOV A,@R0 ANL A,#0FH MOVX @DPTR,A RET END 结果记录: 20H 21H 22H 23H 24H 25H 26H 27H 87H 54H 36H 23 19H 43H 77H 69H 2000H 2002H2004H2006H2008H200AH200CH200EH 07H 04H 06H 03H 09H 03H 07H 09H 2001H 2003H2005H2007H2009H200BH200DH200FH 08H 05H 03H 02H 01H 04H 07H 06H 1、数在计算机中是以补码形式存放的,因此,判断数据的正负,往往采用判断第7 位,是0 则为正数,是1 则为正数 2、实验内容2中JZ ZREO 的机器码为600DH ,其中0DH 为偏移量,当前PC值0004 加上这个偏移量等于0011H ,这正是即将执行的程序的首地址,即标号为ZREO 语句。程序计算器PC的功能是指向下一条指令,因此,跳转语句是依靠偏移量来改变程序计数器PC的值,从而改变程序的流向。 3、分支程序一定要注意分支的语句标号的正确性,每一分支之间必须用跳转(如SJMP)指令分隔,并跳转到相应标号。 4、子程序往往用间址寄存器传递数据,内部RAM用@Ri ,外部RAM用@DPTR ,绝对不能用直接地址。最后以RET 结尾。 5、循环程序往往用寄存器传递数据,用R7控制循环次数,用调用作为循环体,用指令INC 修改地址指针,用指令DJNZ 判断循环结束。 6、执行ACALL前(SP)= 07H ,执行ACALL时,(SP)= 09H ,(08H)= 09H ,(09H)= 00H ,(PC)= 000FH ,PC的值正是子程序的入口地址,而堆栈中这两个单元存放的是断点处PC的值;执行到RET后,(SP)= 07H , 原08H的值弹给(PC)7~0 ,原09H的值弹给(PC)15~8 ,因此,返回断点继续执行主程序。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.doczj.com/doc/ad9548146.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.doczj.com/doc/ad9548146.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

数字频率计_课程设计报告

电气与信息工程学院 数字频率计 设计报告书 前言 摘要:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的 测量就显得更为重要。测量频率的方法有多种,其中数字计 数器测量频率具有精度高、使用方便、测量迅速,以及便于 实现测量过程自动化等优点,是频率测量的重要手段之一。 其原理为通过测量一定闸门时间内信号的脉冲个数。本文阐 述了设计了一个简单的数字频率计的过程。 关键词:频率计,闸门,逻辑控制,计数-锁存

目录 第一章设计目的 第二章设计任务和设计要求 2.1 设计任务及基本要求 2.2.系统结构要求 第三章系统概述 3.1概述 3.2设计原理及方案 第四章单元电路设计及分析 4.1 时基电路 4.2逻辑控制电路 4.3计数电路 4.4锁存电路 4.5显示译码电路 4.6 闸门电路 第五章安装与调试过程 5.1 电路的安装过程 5.2 电路的调试过程 5.3 出现的问题及解决办法 第六章结果分析 第七章收获与体会

第八章元件清单 第九章实现结果实物图 附录A 参考文献 第一章 设计目的: 1.了解数字频率计测量频率与测量周期的基本原理; 2.熟练掌握数字频率计的设计与调试方法及减小测量误 差的方法。 3.本设计与制作项目可以进一步加深我们对数字电路应 用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。 4.针对电子线路课程要求,对我们进行实用型电子线路设 计、安装、调试等各环节的综合性训练,培养我们运用课程中所学的理论与实践紧密结合,独立地解决实际问题的能力。

第二章 设计任务及要求: 2.1设计任务及基本要求: 设计一简易数字频率计,其基本要求是: 1)测量频率范围0~9999Hz; 2)最大读数9999HZ,闸门信号的采样时间为1s;. 3)被测信号可以是正弦波、三角波和方波; 4)显示方式为4位十进制数显示; 5)完成全部设计后,可使用EWB进行仿真,检测试验设计电路的正确性。 2.2.系统结构要求 数字频率计的整体结构要求如图所示。图中被测信号为外部信号,送入测量电路进行处理、测量。 波形 整 形 计 数 器 数 码 显 示 振荡 电 路分 频 器 控 制 门 数 据 锁 存 器 显 示 译 码 器 被测 信 号

相关主题
文本预览
相关文档 最新文档