单片机实验七 NE555脉冲发生器实验(定时/计数器)

这篇具有很好参考价值的文章主要介绍了单片机实验七 NE555脉冲发生器实验(定时/计数器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验七 NE555脉冲发生器实验(定时/计数器)

一、实验目的

1.熟悉实验软件和硬件,进行正确的接线;
2.1602显示脉冲频率,调节电位器可改变频率。

二、实验软硬件

1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板

三、实验原理

实验界面及跳线帽位置
NE555是一种应用特别广泛作用很大的的集成电路,属于小规模集成电路,在很多电子产品中都有应用。
NE555的作用是用内部的定时器来构成时基电路,给其他的电路提供时序脉冲。其他HA17555、IM555、CA555分属不同的公司生产的产品。内部结构和工作原理都相同。
NE555的内部结构可等效成23个晶体三极管.17个电阻.两个二极管.组成了比较器.RS触发器.等多组单元电路.特别是由三只精度较高5k电阻构成了一个电阻分压器.为上.下比较器提供基准电压.所以称之为555. NE555属于CMOS工艺制造。

NE555引脚图
1 地 GND 2 触发
3 输出 4 复位
5 控制电压 6 门限(阈值)
7 放电 8 电源电压Vcc

555计数器硬件图
由555定时器和外接元件R1、R2、C构成多谐振荡器,脚2与脚6直接相连。电路没有稳态,仅存在两个暂稳态,电路亦不需要外接触发信号,利用电源通过R1、R2向C充电,以及C通过R2向放电端Dc放电,使电路产生振荡。电容C在2/3Vcc和1/3Vcc之间充电和放电,从而在输出端得到一系列的矩形波,对应的波形如图所示。
单片机实验七 NE555脉冲发生器实验(定时/计数器)

555计数器原理图

四、软件流程图

单片机实验七 NE555脉冲发生器实验(定时/计数器)

NE555脉冲发生器实验软件流程图

五、实验代码

1.#include<reg51.h>  
2.#include"lcd.h"  
3.  
4.#define uchar unsigned char   
5.#define uint  unsigned int  
6.#define ulong   unsigned long  
7.uchar code EN_CHAR1[16]={"   CYMOMETER    "};  
8.uchar code EN_CHAR2[16]={"FREQ:         HZ"};  
9.ulong Freq,TimeCount;;             
10.void main()  
11.{  
12.    uchar i, freqValue[6];  
13.    LcdInit();  
14.    TMOD=0x51;  
15.    //设置定时器晶振为12MHZ时定时50ms  
16.    TH0=0x3C;  
17.    TL0=0xB0;  
18.    //打开中断  
19.    ET0=1;ET1=1;EA=1;  
20.    //打开定时器  
21.     TR0=1;TR1=1;  
22.    for(i=0;i<16;i++)//第一行显示  
23.    {  
24.        LcdWriteData(EN_CHAR1[i]);  
25.    }     
26.    LcdWriteCom(0xc0);//第二行显示  
27.    for(i=0;i<16;i++)  
28.    {  
29.        LcdWriteData(EN_CHAR2[i]);  
30.    }  
31.    while(1)  
32.    {  
33.        if(TR0==0)         //当计数器停下的时候,表明计数完毕  
34.        {  
35.            Freq = Freq + TL1;       //读取TL的值  
36.            Freq = Freq + (TH1 * 256); //读取TH的值  
37.            LcdWriteCom(0xc8);  
38.            //求频率的个十百千万十万位             
39.            freqValue[0]='0'+Freq%1000000/100000;
40.            freqValue[1]='0'+Freq%100000/10000;   
41.            freqValue[2]='0'+Freq%10000/1000;     
42.            freqValue[3]='0'+Freq%1000/100;   
43.            freqValue[4]='0'+Freq%100/10;     
44.            freqValue[5]='0'+Freq%10;     
45.            for(i=0;i<5;i++)//从最高位开始  
46.            {  
47.                if(freqValue[i]==0x30)  
48.                {  
49.                    freqValue[i]=0x20;  //若为0则赋值空格键  
50.                }                 
51.                else  
52.                {  
53.                    break;  
54.                }     
55.            }  
56.            for(i=0;i<6;i++)  
57.            {  
58.                LcdWriteData(freqValue[i]);   
59.            }     
60.            Freq=0;TH1=0; TL1=0;TR0=1; TR1=1;   
61.        }  
62.    }  
63.}  
64.  
65.void Timer0()   interrupt 1  
66.{  
67.    TimeCount++;  
68.    if(TimeCount==20)//计时到1S  
69.    {  
70.        TR0=0;  
71.        TR1=0;  
72.        TimeCount=0;          
73.    }  
74.    TH0=0x3C;  
75.    TL0=0xB0;     
76.}  
77.void Timer1()   interrupt 3  
78.{     
79.    Freq=Freq+65536;          
80.}  

六、实验步骤

1.连接实验相关模块电路

实验界面
2.编写脉冲发生器程序
编程思路:调节电位器,改变电阻阻值,555定时器产生脉冲的周期也会随之改变,自然频率也会改变。编程记录1S内脉冲的个数即可得到频率,需要用到定时器进行1S的定时和计数器进行脉冲的计数。然后将频率拆分成位,显示在LCD1602显示屏上。
3.下载脉冲发生器程序

程序下载界面
4.调试验证试验效果
调节电位器,LCD屏幕显示对应的频率,显示效果清晰,反应速度较快。

七、实验思考

本次实验室目前做的实验中最复杂的一个程序,用到两个定时计数器。两个中断,主程序也相对复杂。但是思路比较清晰,就是通过计数器555在一秒内产生的脉冲个数,这里的一秒需要定时器来定时,然后将记得的脉冲数显示到LCD1602屏幕上。
定时器或者计数器最大的计数或者定时是65536,超出会溢出或者产生中断,要处理这个溢出而产生的中断,防止程序出行逻辑错误。这里就采用了每次计时50ms计数20次,然后相当于1s的这样的处理,也采用了计数器到65536之后频率加上65536。这些都是需要注意的问题。
LCD1602已经成为一个模块,配有c和h的文件,下一次需要使用1602直接在工程中添加它的c文件。然后在需要用的地方导入这个h文件,非常方便。以后再编程的时候注意这些地方,产生模块化的程序,方便迁移到其它程序中,增加整体效率。有一个词叫低耦合,我想编程也应该保证耦合度低。但换句话说,也不能局限于已经编好的函数,如果自己可以编出一个效率更高效果更好的程序,自然还是要自己动手。文章来源地址https://www.toymoban.com/news/detail-463436.html

到了这里,关于单片机实验七 NE555脉冲发生器实验(定时/计数器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机课程设计波形发生器

    怎么说呢,前面半个月被这个单片机课程设计搞得焦头烂额的,再加上运气属实有点“好”,就脾气有点“暴躁”,好的,也就骂了半天的脏话。有一说一,没有素质确实舒服。 好了,事情目前是过去了,那就好好回顾一下遇到的问题,以及找到了怎样的解决方案,和最后仍

    2024年02月09日
    浏览(52)
  • 51单片机入门教程(4)——波形发生器

    目录 1、总述 2、系统硬件设计  3、系统软件设计思路  3、测试与分析 (1)Proteus仿真测试 (2)直流稳压电源测试 (3)实物测试 该篇为51单片机入门教程的实战篇 ,本篇介绍了以51单片机和DAC0832数模转换芯片为核心的波形发生器,并对DAC0832和UA741的结构和工作原理以及电

    2024年02月08日
    浏览(50)
  • 基于51单片机的DAC0832波形发生器

    输出1HZ正弦波、三角波、方波、锯齿波 使用LCD1602显示 DAC0832的D0~D7数据输入口,IOUT1、IOUT2互补输出口,RFB反馈端口、 VREF基准电压值(一般是5V)。用定时器控制段码表输出速度来控制波形的频率。 (定时数值)*10^(-6)*256=波形频率。 ( 1 )锯齿波的实现原理:   锯齿波的实现

    2024年02月06日
    浏览(88)
  • STM32单片机示例:64位全局时间戳发生器

    STM32H743 / H750 系列的芯片有一个64位的全局时间戳发生器( Global timestamp generator ),这篇文章将对它的使用做个记录。 全局时间戳发生器相关的内容可以参考官方参考手册: TGS时钟来源与APB总线时钟,这就是TGS计数器时钟了,并且用于TGS计数时没法对其进行分频操作。我们使

    2024年02月10日
    浏览(51)
  • 20、基于51单片机的函数发生器四种波形频率系统设计

    设计了一个基于DAC0832的信号发生器,使之输出不同频率的正弦波、三角波、锯齿波和方波,并通过按键切换不同的波形,也可以改变频率以及频率变化的步进。本方案选择了DAC0832作为核心芯片,并与51单片机结合,设计出一款建议的高精度频率信号发生器,具有体积小功率等

    2024年02月04日
    浏览(56)
  • 基于51单片机的波形发生器(PCF8591、正弦波、三角波、锯齿波、方波)

            正弦波、三角波、锯齿波和方波是我们平时最常见的四种波形,那么学会使用单片机产生这四种波就很重要了。但学过51单片机就知道,其IO引脚只能输出高电平或低电平,单靠其引脚生成以上波形,好像不大可能,因此我们需要配合使用另一个很重要的芯片,DAC芯片

    2024年02月09日
    浏览(89)
  • 基于51单片机的波形发生器proteus仿真数码管LCD12864显示

    仿真图1简介: 本系统采用51单片机作为系统的MCU(具体型号见下图),该系统显示器为四位数码管,可实时显示波形的参数情况 可显示四种波形,分别是方波、正弦波、三角波、锯齿波。 该设计具有电压表功能,可显示当前所测电压参数,其中ADC芯片采用的是PCF8591 该设计

    2023年04月08日
    浏览(44)
  • 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机

    功能介绍: 1.输出 正弦波、矩形波、三角波、锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波、矩形波、三角波、锯齿波 ;波形也可以修改频率,频率范围为50Hz~0.1Hz。并且可

    2024年02月09日
    浏览(66)
  • 山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路

    山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路实验, 山东大学计算机组成与设计实验, 山东大学计算机组成与设计实验报告, 计算机组成原理实验报告, 山东大学计算机组成原理实验报告 掌握节拍脉冲发生器的设计方法,理解节拍脉冲发生器的工作原理。 连续节

    2023年04月15日
    浏览(70)
  • 【微机原理课设protues-汇编】基于8086四种波形发生器仿真设计-基于8086数码管矩阵键盘控制设计-基于8086微机原理直流电机控制系统-基于单片机PWM直流电机控制系统设计汇编

    文章转自电设屋,资料百度网盘下载地址  https://www.aiesst.cn/share.html 目录 1207基于8086四种波形发生器仿真设计-微机原理汇编仿真资料 1202基于8086数码管矩阵键盘控制设计-全套资料 1218基于8086智能汽车控制系统设计-微机原理课设 1209基于8086微机原理直流电机控制系统-设计资料

    2024年02月12日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包