推荐阅读最新更新时间:2024-11-12 13:27
基于AT89C51单片机的频率计的C源程序及频率计实现的主要功能
本文是基于AT89C51单片机的频率计的C源程序。该频率计主要实现的功能有如下几个: 1. 测试功能 它表明数字频率计所具备的全部测试功能,一般包括测频, 周期 ,累计脉冲数,频率比,时间间隔及自较等功能。 2. 测量范围 它说明不同功能的有效测量范围。如测频率时,测量范围是数字频率计处于正常工作条件下,被测信号的 频率范围 ,一般用频率的上,下限值表示,低端大部分从10 Hz 开始;高端因不同的频率计而异。因此高端频率是确定低,中,高速计数器的依据。在测量周期时,测量范围常用周期的最大值,最小值表示。 3. 输入特性 数字频率计一般有2~3个输入通道,测试不同项目时,被测
[单片机]
51单片机堆栈的分析
1.51单片机的堆栈属于向上增长型,堆栈开在内部ram,堆栈指针八位,系统启动时初始化值为07 2.进出栈指令 push acc pop acc 00-7fh是内部ram 80h-0ffh是sfr特殊功能寄存器 不能对80h到0ffh的高端ran进行堆栈操作 不能对r0-r7寄存器组进行堆栈操作 寄存器A进行堆栈操作时只能用直接寻址操作形式 acc 3.子程序与中断 调用子程序与调用中断服务程序,入栈的都是 pcL---pcH,但是调用子程序时入栈的是取指令后尚未执行的PC值,而中断是执行完后的PC值
[单片机]
80C51单片机定时器/计数器详解(含工作方式)
80C51单片机要实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。下面我们将对80C51单片机定时器/计数器详解,并对定时/计数器的工作方式进行分析。 -------,无效位。 PS---串行口中断优先级控制位。 PS=1,串行口中断定义为高优先级中断。 PS=0,串行口中断定义为低优先级中断。 PT1---定时器/计数器1中断优先级控制位。 PT1=1,定时器/计数器1中断定义为高优先级中断。 PT1=0,定时器/计数器1中断定义为低优先级中断。 PX1---外部中断1中断优先级控制位。 PX1=1,外部中断1中断定义为高优先级中断。 PX1=0,外部中断1中断定义
[单片机]
通用型51单片机lcd1602驱动
文件:lcd_1602.h #ifndef _LCD1602_TRAVELER_H_ #define _LCD1602_TRAVELER_H_ /*************************待配置项*******************************/ #define DATA_LCD P0 //液晶与MCU 数据口 sbit RS_LCD = P2^5; // 液晶的RS、RW、E 端在 MCU端的连线 sbit RW_LCD = P2^6; sbit E_LCD = P2^7; /**************************************************
[单片机]
51单片机工作于方式0的定时器模式
51单片机的 模式0(13位定时器/计数器) 第一步:通过设置TMOD中的M1/M0位设置,即可完成模式选择 “00”为模式0(13位定时/计数模式) “01”为模式1(16位定时/计数模式) “10”为模式2(8位'自动重装初'值定时/计数模式) “11”为模式3(分割为 2个8位计数模式) 第二步:打开总中断(EA)、开T0中断(ET0)、启动T0(TR0) 因为寄存器在复位后初始值都为“0”,默认属于关闭的状态,所以我们在使用T0中断功能时,需要将这些位置“1”才可启动定T0。 第三步:根据时钟计算并装载合适的初值在T0模式中,
[单片机]
54-基于51单片机GSM模块的家庭防火防盗报警系统
具体实现功能 系统由DS18B20温度传感器+MQ-2烟雾传感器+HC-SR501人体红外模块+SIM800C GSM模块+LCD1602显示屏组成。 (1)可检测环境温度、烟雾浓雾和人体信号并通过显示屏显示; (2)可通过按键设置报警值,当检测值超过报警值时进行报警; (3)报警可通过LED+蜂鸣器现场报警,显示屏显示报警内容;还可通过GSM模块实现远程报警,短信可显示不同报警内容。 设计背景 随着社会的发展,农村城镇化和人员流动性增大,社会治安状况更趋复杂,因此作为社会的基本单元“安全防范问题就显得尤为重要。传统的机械式(防盗网、防盗窗)家居防卫在实际使用中暴露出一些明显的问题,如:影响楼房美观,市容整洁;影响
[单片机]
51单片机交通灯程序以及仿真
#include #define uint unsigned int #define uchar unsigned char sbit red_nb = P0^0; sbit green_nb = P0^1; sbit yellow_nb = P0^2; sbit red_dx = P0^3; sbit green_dx = P0^4; sbit yellow_dx = P0^5; unsigned char code Disp_Tab = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制 unsigned char code disp
[单片机]
基于51单片机智能计数器的设计
一、任务以及要求 对外部信号脉冲进行计数,并将脉冲个数显示出来。基本要求:计数至少65536个脉冲,并将脉冲个数显示出来。 二、方案选择 用中断方式进行计数,利用定时器/计数器0的方式2。使用查寻方式进行计数,利用定时器/计数器0的方式1。本程序使用第一方案进行设计,并能实现计数99999999次 三、系统硬件设计 设计思路 1)、通过按钮产生脉冲信号。 2)、由于按钮按合会出现机械弹跳过程,使得电平跳变发生多次。为了克服按钮抖动而产生的误计数,接入脉冲消抖电路,克服按钮的抖动现象。 3)、脉冲计数可采用定时器/计数器来实现。 4)、选择8279作为6位LED显示器的译码驱动电路,实现累进计数。 2、硬件电路组成:
[单片机]