基于51单片机555定时器试验--——-频率计

基于51单片机555定时器试验--——-频率计
基于51单片机555定时器试验--——-频率计

基于51单片机555定时器试验--——-频率计

555定时器及其应用

【摘要】555定时器是一种模拟和数字功能相结合的中规模集成器件。本文介绍555定时器以及由555定时器的应用。

【关键词】555定时器应用

555定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为555,用CMOS工艺制作的称为7555,除单定时器外,还有对应的双定时器556 /7556。555定时器的电源电压范围宽,可在4. 5V~16V工作, 7555可在3~18V工作,输出驱动电流约为200mA,因而其输出可与TTL、CMOS或者模拟电路电平兼容。

555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555定时器的部电路框图和外引脚排列图分别如图2. 9. 1和图2. 9. 2所示。它内部包括两个电压比较器,三个等值串联电阻,一个RS触发器,一个放电管T及功率输出级。提供两个基准电压VCC /3 和2VCC /3555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器A1的反相输入端的电压为2VCC /3,A2的同相输入端的电压为VCC /3。若触发输入端TR 的电压小于VCC /3,则比较器A2 的输出为1可使RS触发器置1,使输出端OUT = 1。如果阈值输入端TH的电压大于2VCC /3,同时TR端的电压大于VCC /3,则A1的输出为1,A2的输出为0,可将RS触发器置0,使输出为0电平。

555定时器的应用举例

1. 555触摸定时开关。集成电路IC1是一片555定时电路,在这里接成单稳态电路。平时由于触摸片P端无感应电压,电容C1通过555第7脚放电完毕,第3脚输出为低电平,继电器KS释放,电灯不亮。

当需要开灯时,用手触碰一下金属片P,人体感应的杂波信号电压由C2加至555的触发端,使555的输出由低变成高电平,继电器KS吸合,电灯点亮。同时, 555第7脚内部截止,电源便通过R1给C1充电,这就是定时的开始。当电容C1上电压上升至电源电压的2 /3时, 555第7脚道通使C1放电,使第3脚输出由高电平变回到低电平,继电器释放,电灯熄灭,定时结束。定时长短由R1、C1 决定: T1 = 1. 1R1 3 C1。按图中所标数值,定时时间约为4分钟。D1可选用1N41481N4001。

2. 简易催眠器。时基电路555构成一个极低频振荡器,输出一个个短的脉冲,使扬声器发出类似雨滴的声音(见附图) 。扬声器采用2英寸、8欧姆小型动圈式雨滴声的速度可以通过100K电位器来调节到合适的程度。如果在电源端增加一简单的定时开关,则可以在使用者进入梦乡后及时切断电源。

3. 用555制作的D类放大器。由IC 555 和R1、R2、C1等组成100KHz可控多谐振荡器,占空比为50%,控制端5 脚输入音频信号, 3脚便得到脉宽与输入信幅值成正比的脉冲信号,经L、C3接调、滤波后推动扬声器。

4. 相片曝光定时器。附图电路是用555单稳电路制成的相片曝光定时器人工启动式单稳电路。工作原理: 电源接通后,定时器进入稳态。此时定时电容CT 的电压为: VCT =VCC = 6V。对555这个等效触发器来讲,两个输入都是高电平,即VS = 0。继电器KA不吸合,常开点是打开的,曝光照明灯HL不亮。按一下按钮

开关SB之后,定时电容CT立即放到电压为零。于是此时555电路等效触发的输入

成为: R = 0、S = 0,它的输出就成高电平:V0 = 1。继电器KA吸动,常开接点闭

合,曝光照明灯点亮。按钮开关按一下后立即放开,于是电源电压就通过RT向电

容CT充电,暂稳态开始。当电容CT上的电压升到2 /3VCC既4 伏时,定时时间已到,

555等效电路触发器的输入为: R = 1、S = 1,于是输出又翻转成低电平: V0 = 0。

继电器KA释放,曝光灯HL 熄灭。暂稳态结束,有恢复到稳态。曝光时间计算公式

为: T = 1. 1RT3 CT。本电路提供参数的延时时间约为1秒~2分钟,可由电位器

RP调整和设置。电路中的继电器必需选用吸合电流不应大于30mA的产品,并应根

据负载(HL)的容量大小选择继电器触点容量。

/****************************************

***************************

* *

* 555定时器试验 -——频率计

*

* *

* *

* LCD1602显示

*

*改变VR1电位器的电阻值,观察液晶屏频率发

生变化*

*

*

***************************************** **************************/

#include

#include

unsigned char code cdis1[] =

{

" CYMOMETER " //频率计

};

unsigned char code cdis2[] =

{

"FREQ: Hz "

};

sbit LCD_RS = P2 ^ 6;

sbit LCD_RW = P2 ^ 5;

sbit LCD_EN = P2 ^ 7;

bit sec = 0;

unsigned char msec = 0, Hdata = 0, Ldata = 0, Count = 0;

unsigned long temp = 0;

unsigned char data display[] =

{

0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

char code reserve[3]_at_ 0x3b; //保留0x3b 开始的3个字节

/**************************************** *****************

us延时函数 (4.34us)

***************************************** ****************/

void delayNOP()

{

_nop_();

_nop_();

_nop_();

_nop_();

}

/**************************************** *****************

ms延时函数

***************************************** ****************/

void delayms(unsigned int ms)

{

unsigned char n;

while (ms--)

{

for (n = 0; n < 114; n++)

;

}

}

/****************************************

******************

* *

* 检查LCD忙状态

*

* lcd_busy为1时,忙,等待。

*

* lcd-busy为0时,闲,可写指令与数据。

*

* *

*****************************************

*****************/

bit lcd_busy()

{

bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

delayNOP();

result = (bit)(P0 &0x80);

LCD_EN = 0;

return (result);

}

/****************************************

******************

* *

*写指令数据到LCD *

*RS=L,RW=L,E=高脉冲,D0-D7=指令码。

*

* *

*****************************************

*****************/

void lcd_wcmd(unsigned char cmd)

{

while (lcd_busy())

;

LCD_RS = 0;

LCD_RW = 0;

LCD_EN = 1;

P0 = cmd;

delayNOP();

LCD_EN = 0;

}

/****************************************

******************

* *

*写显示数据到LCD *

*RS=H,RW=L,E=高脉冲,D0-D7=数据。

*

* *

*****************************************

*****************/

void lcd_wdat(unsigned char dat)

{

while (lcd_busy())

;

LCD_RS = 1;

LCD_RW = 0;

LCD_EN = 1;

P0 = dat;

delayNOP();

LCD_EN = 0;

}

/****************************************

******************

* *

* LCD初始化设定

*

* *

*****************/

void lcd_init()

{

delayms(15);

lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据

delayms(5);

lcd_wcmd(0x38);

delayms(5);

lcd_wcmd(0x38);

delayms(5);

lcd_wcmd(0x0c); //开显示,不显示光标

delayms(5);

lcd_wcmd(0x06); //

delayms(5);

lcd_wcmd(0x01); //清除LCD的显示内容

delayms(5);

}

******************

* *

* 设定显示位置

*

* *

*****************************************

*****************/

void lcd_pos(unsigned char pos)

{

lcd_wcmd(pos | 0x80); //数据指针=80+地址

变量

}

/****************************************

******************

* *

* 显示函数

*

* *

*****************************************

*****************/

void play()

{

unsigned char n;

for (n = 0; n <= 4; n++)

//数据转换

{

display[n] = temp % 10+0x30;

temp = temp / 10;

}

display[5] = temp + 0x30;

for (n = 5; n > 0; n--)

//高位为"0"不显示

{

if (display[n] == 0x30)

display[n] = 0x20;

else

break;

}

lcd_pos(0x46); //显示实际频率值

for (n = 5; n != 0xff; n--)

lcd_wdat(display[n]);

}

/****************************************

*****************

* *

* 主函数

*

* *

*****************************************

****************/

void main()

{

unsigned char m;

unsigned long frq_num;

P3 = 0xff;

lcd_init();

lcd_pos(0x00); //设置显示位置为第一行 for (m = 0; m < 16; m++)

lcd_wdat(cdis1[m]);

//显示字符

lcd_pos(0x40); //设置显示位置为第二行 for (m = 0; m < 16; m++)

lcd_wdat(cdis2[m]);

//显示字符

TMOD = 0x51; //定时器0工作在定时方式 //定时器1工作在计数方式

TH0 = 0x4c; //50ms定时

TL0 = 0x00;

TH1 = 0x00; //计数初值

TL1 = 0x00;

ET0 = 1; //使能TIMER0中断

ET1 = 1; //使能TIMER1中断

EA = 1; //允许中断

PT1 = 1; //定义TIMER1中断优先

TR0 = 1;

TR1 = 1;

while (1)

{

if (sec)

{

Hdata = TH1; //取计数值

Ldata = TL1;

frq_num = ((Count *65535+Hdata * 256+Ldata) *108 / 100);

TH1 = 0;

TL1 = 0;

sec = 0;

Count = 0;

TR1 = 1;

TR0 = 1;

}

temp = frq_num;

play();

}

}

/****************************************

******************

* *

* Time0中断函数

*

* *

*****************************************

*****************/

void Time0()interrupt 1

{

TH0 = 0x4c; //50ms定时

TL0 = 0x00;

msec++;

if (msec == 20)

//50*20=1S

{

TR0 = 0; //关闭TIMER0

TR1 = 0; //关闭TIMER1

msec = 0;

sec = 1; //置秒标记位

}

}

/****************************************

******************

* *

* Time1中断函数

*

* *

*****************************************

*****************/

void Time1()interrupt 3

{

Count++;

}

/**************************************** *****************/

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

基于51单片机的数字频率计_毕业设计

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据 库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期:

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

基于51单片机的计算器设计

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

基于51单片机的多功能定时器

摘要 本设计要求以单片机为核心主体,完成最小系统板的设计与制作(通过Protel 软件,对电路进行设计,调试。生成PCB板,再对元器件进行排布,焊接。)之后要进行初调试,证实电路板无误后才能进行下面的内容。电路板完成后,在总程序基础上通过编程设计家用多路定时控制器。本课程设计目标:具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。但重要的是要有一定的创新,因为此系统还有很多值得开发的功能,单纯的三路定时只是设计内容的基本要求。 关键词:Protel,单片机,MCS-51

目录 摘要........................................................................................................ - 1 - 引言........................................................................................................ - 2 - 1 绪论.................................................................................................... - 2 - 1.1系统背景 (1) 1.1.1单片机技术及其发展特点 (1) 1.1.2单片机在电子技术中的应用 (3) 1.1.3课程设计的内容与任务 (4) 2 系统电路设计 (5) 2.1 系统总体设计框架结构 (5) 2.2 系统硬件单元电路设计 (6) 2.2.1 时钟电路设计 (6) 2.2.2 复位电路设计 (6) 2. 2.3 按键电路设计 (7) 2.3数码管电路设计 (8) 2.3.1、数码管的分类 (8) 2.3.2、数码管的驱动方式 (8) 2.3 系统硬件总电路 (14) 3 系统软件设计 (10) 3.1 系统软件流程图 (10) 4 实验结果和分析 (11) 4.1 实验使用的仪器设备 (11) 4.2 测试结果分析 (11) 结论 (12) 参考文献 (13) 附录 (13) 系统程序设计 (15) Abstract (25) 致谢 (25)

基于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的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。 基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。 1.2频率测量仪的设计思路与频率的计算 频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。 1 图可知: T=NT o 为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信(注:T o

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

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

1 前言 频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。 1.1频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点。 1.2频率计发展与应用 在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要。

2 系统总体设计 2.1测频的原理 测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。被测信号, 通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端。由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进行直接计数和显示。若在一定的时间间隔T内累 计周期性的重复变化次数N,则频率的表达式为式: N fx= T 频率计数器严格地按照 N f= T 公式进行测频。由于数字测量的离散性,被测频率在计数 器中所记进的脉冲数可有正一个或负一个脉冲的1 ±量化误差,在不计其他误差影响的情况下,测量精度将为: 1 () fA N δ= 应当指出,测量频率时所产生的误差是由N和T俩个参数所决定的,一方面是单位时间内计数脉冲个数越多时,精度越高,另一方面T越稳定时,精度越高。为了增加单位时间内计数脉冲的个数,一方面可在输入端将被测信号倍频,另一方面可增加T来满足,为了增加T的稳定度,只需提高晶体振荡器的稳定度和分频电路的可靠性就能达到。 上述表明,在频率测量时,被测信号频率越高,测量精度越高。 2.2总体思路 频率计是我们经常会用到的实验仪器之一,频率的测量实际上就是在单位时间内对信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机AT89S52 制作的频率计的设计方法,所制作的频率计测量比较高的频率采用外部十分频,测量较低频率值时采用单片机直接计数,不进行外部分频。该频率计实现10HZ~2MHZ的频率测量,而且可以实现量程自动切换功能,四位共阳极动态显示测量结果,可以测量正弦波、三角波及方波等各种波形的频率值。 2.3具体模块 根据上述系统分析,频率计系统设计共包括五大模块:单片机控制模块、电源模块、放大整形模块、分频模块及显示模块。各模块作用如下:

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告 专业:通信工程 班级:09312班 姓名:某某某 学号:09031069 指导教师: 二0一二年六月十八日

目录 1设计目的 (1) 2 设计题目描述与要求 (1) 3 设计过程 (2) 4硬件总体方案及说明 (6) 5 软件总体方案及设计流程 (9) 6 调试与仿真 (13) 7 心得体会 (14) 8 指导老师意见 (15) 9 参考文献 (16) 附录一 (16) 附录二 (21)

基于51单片机的数字计算器的设计 1设计目的 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。 本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件进行编程,并用proteus仿真。 2 设计题目描述与要求 基于AT89C51数字计算器设计的基本要求与基本思路: (1)扩展4*4键盘,其中10个数字,5个功能键,1个清零 (2)使用五位数码管接口电路

基于单片机实现的定时器设计

第一章单片机的简介 一个8位的80c51微处理器,片内256字节数据存储器RAM/SFR,用以存放可以读写的数据,如运算的中间结果,最终结果以及欲显示的数据;片内4kb程序存储器Flash ROM,用以存放程序,一些原始数据和表格;4个8位并行I/O 口P0~P3,每个端口既可用作输入,也可用作输出;两个16位的定时器/计数器,每个定时器/计数器都可设置成计数方式,用以对外部事件进行计数,也可设置成定时方式,并可以根据计数或者定时的结果实现计算机控制;具有5个中断源,两个中断优先级的中断控制系统;一个全双工UART(通用异步接受发送器)的串行I/O口,用于实现单片机之间或者单片机与PC机之间的串行通信;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接,最高允许震荡频率为24MHz;89c51与80c51相比具有节电工作方式,即休闲方式及掉电方式。 1.1中央处理器(CPU): CPU是单片机内部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。 1.1.1 运算器: 运算器用来完成算术运算和逻辑运算功能,它是 89C51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP1、TMP2)和状态寄存器(PSW)组成。算术逻辑单元(ALU): 89C51中的ALU由加法器和一个布尔处理器组成。

累加器(ACC):用来存放参与算术运算和逻辑运算的一个操作数或运算的结果。暂存寄存器(TMP1、TMP2):用来存放参与算术运算和逻辑运算的另一个操作数,它对用户不开放。 状态寄存器(PSW):PSW是一个8位标志寄存器,用来存放ALU操作结果的有关状态。 1.1.2控制器: 控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID和定时控制逻辑电路等构成。程序计数器PC是专门用于存放现行指令的16位地址的。CPU 就是根据PC中的地址到ROM中去读取程序指令码和数据,并送给指令寄存器IR 进行分析。指令寄存器IR用于存放CPU根据PC地址从ROM中读出的指令操作码。指令译码器ID是用于分析指令操作的部件,指令操作码经译码后产生相应于某一特定操作的信号。定时控制逻辑中定时部件用来产生脉冲序列和多种节拍脉冲。1.1.3寄存器阵列: 寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。通用寄存器组用来存放过渡性的数据和地址,提高CPU的运行速度。 专用寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态等。 1.1.4存储器: 89C51单片机内部有256个字节的RAM数据存储器和4KB的闪存程序存储器

51单片机_频率计_1602

电子产品设计与开发 结课论文 题目:其于51单片机的频率计设计与仿真 班级:电子1104班 姓名:陈** (组员)学号:03 电话:1376****** 成员:曾* (组长)学号:29 电话:13726****** 成员:孙* (组员)学号:21 电话:137*******

目录 一、需求分析 二、方案设计 1设计基本原理 (4) 1.1测量频率的原理 (4) 1.2系统设计框图 (4) 三、软件设计 (5) 1资源分配表 (5) 2程序流程框图 (6) 四、系统硬件线路设计图 (7) 1 单片机最小系统设计 (7) 2 液晶LCD1602显示电路 (8) 3 频率测量电路 (11) 五.系统仿真、测试结果及性能分析 (12) 1系统仿真、测试结果 (12) 2性能分析 (13) 六、心得与体会 (14) 七、参考文献 (14)

摘要 本设计提出了一种基于AT89C51单片机开发的数字频率测量仪的设计。系统以单片机AT89C51为核心,构成完备的测量系统。可以对信号进行频率的精确测量,测频在1Hz至10kHZ。采用液晶LCD1602显示被测信号的频率。与传统的电路系统相比,其有处理速度快、稳定性高、性价比高、硬件结构简单的优点。 关键词:单片机;低频;绝对误差

一、需求分析 频率测量在科技研究和实际应用中的作用日益重要。传统的频率计通采用组合电路 和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号 时不宜直接使用。频率信号抗干扰性强、易于传输,可以获得较高的测量精度。同时,频率 测量方法的优化也越来越受到重视.并采用AT89C51 单片机和相关硬软件实现。MCS—51 系列单片机具有体积小,功能强,性能价格比较高等特点,因此被广泛应用于工业控制和 智能化仪器,仪表等领域。我们研制的频率计以89c51单片机为核心,具有性能优良,精 度高,可靠性好等特点。 二、设计方案 此次课程设计采用间接测量法来测量。要用到GATE信号,GATE=1时,TR0=1,INTO=1 才能启动计数器,而计数器0是通过外部中断INTO的下降沿开始触发的,计时器从0开 始计时,计数器只能测高电平,因此测得的时间为半个周期。当计数器0计时溢出,执行 m加1的操作。则测量时间为:t1=TH0*256+TL0+m*65536 ,所求频率F=1000000/(2*t1) 1设计基本原理 1.1测量频率的原理 定时/计数器工作在方式1,每产生一次定时器0中断,计数65536个脉冲,此时的 脉冲来自振荡器的12分频后的脉冲,其周期为1uS。根据产生外部中断0时,定时器0中 断的次数u,以及此时定时/计数器0计数寄存器的数值X,即可求得待测方波的周期为: T=(65536*u+X)us ,取其倒数即可求得待测方波的频率,小数点后保留两位,即可使得频 率精度为0.1HZ。 1.2系统设计框图 经过方案论证和比较后,最终确定的系统框图如图1所示,主要由AT89C51单片机、异或 器件、LCD1602、电源等组成。

基于51单片机的简易计算器设计

河南##############学校 毕业设计(论文) 基于51单片机的简易计算器 系部: 自动控制系 专业: 电气自动化 班级: 自083 姓名: 崔 # # 学号: 091415302 指导老师: 许 # 二零一二年五月八日

基于51单片机的简易计算器 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

51单片机定时器初值的计算

51单片机定时器初值的计算 一。10MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次机器周期。 65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0 2.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。 65536-9216=56320(dc00) TH0=0xdc,TL0=0x00 二。50MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次机器周期。 65536-50000=15536(3cb0) TH0=0x3c,TL0=0xb0 2.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。 65536-46080=19456(4c00) 三。使用说明 以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T 每次溢出 最多65536 个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。 对12MHz 1个机器周期 1us 12/fosc = 1us 方式0 13位定时器最大时间间隔 = 2^13 = 8.192ms 方式1 16位定时器最大时间间隔 = 2^16 = 65.536ms 方式2 8位定时器最大时间间隔 = 2^8 = 0.256ms =256 us 定时5ms, 计算计时器初值 M = 2^K-X*Fosc/12 12MHz 方式0 : K=13,X=5ms,Fosc=12MHz 则 M = 2^13 - 5*10^(-3)*12*10^6/12= 3192 = 0x0C78 THx = 0CH,TLx = 78H, 方式1: K=16,X=5ms,Fosc=12MHz 则 M = 2^16 - 5*10^(-3)*12*10^6/12= 60536 = 0xEC78

基于单片机的简易计算器设计

2013 - 2014 学年_一_学期 山东科技大学电工电子实验教学中心 创新性实验研究报告 实验项目名称__基于51单片机的简易计算器设计_ 2013 年12 月27 日

四、实验内容

2、实验内容 (一)、总体硬件设计 本设计选用AT89C52单片机为主控单元。显示部分:采用六位LED动态数码管显示。按键部分:采用2*8键盘;利用2*8的键盘扫描子程序,读取输入的键值。 (二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用两条I/O 线作为行线,八条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为2×8个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口和另一个P口的两个管脚实现16个按键功能,这种形式在单片机系统中也最常用。 矩阵键盘布局图: 矩阵键盘内部电路图如下图所示:

(三)、LED显示模块 本设计采用LED数码显示来显示输出数据。通过D0-D7引脚向LED写指令字或写数据以使LED实现不同的功能或显示相应数据。 (四)运算模块(单片机控制) MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟 摘要 现代社会电子闹钟已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有双闹铃和倒计时的功能,实用性非常强。电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该电子闹钟可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。 关键词:电子闹钟;倒计时;AT89S52;液晶LCD1602;按键 Abstract In modern society, the electronic alarm clock has been widely used in various occasions and become indispensable to life.It is a good helper to our work and learning. So,there is very important significance to research more practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good. Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button

基于51单片机的1602液晶频率计设计(Proteus仿真图和程序)

基于51单片机的1602液晶频率计设计一、Proteus仿真图: 二、程序代码 //最大测量65536Hz的频率计 //原理:T0定时1S,T1计数 #include #include #define uchar unsigned char #define uint unsigned int uint count=0; uint nm=0; uchar Fw,Fq,Fb,Fs,Fg; #define DataPort P0 sbit LCM_RS=P2^0; sbit LCM_RW=P2^1; sbit LCM_EN=P2^2; uchar code str0[]={"-Test frequency-"}; uchar code str1[]={"F=00000Hz "}; //uchar code str2[]={" "};

/*******************************/ void delay(unsigned int k) { unsigned int i,j; for(i=0;i

基于51单片机的简易计算器

目录 摘要....................................................................................... 第一章绪论......................................................................... 1.1课题简介.................................................................... 1.2设计目的.................................................................... 1.3简易计算器系统简介....................................................第二章总体电路设计..........................................................第三章主要模块介绍.......................................................... 3.1AT89C51....................................................................... 3.2LED数码管的结构及工作原理......................................... 3.3 矩阵按键.................................................................. 3.4 蜂鸣器模块...............................................................第四章计算器系统设计..................................................... 4.1计算器硬件............................................................... 4.2 系统框图.................................................................. 4.3 程序设计..................................................................结语.....................................................................................参考文献..............................................................................

相关文档
最新文档