当前位置: 首页 > news >正文

55 基于单片机的方波频率可调

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

采用STC89C52单片机最小系统,设计DAC0832、放大器、与示波器显示方波,四位数码管显示频率,两个按键可调。

二、硬件资源

基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。

三、程序编程

#include "reg51.h" 
#include <data.h>
#define uchar unsigned char   
#define uint unsigned int   
#define key P1   
#define dataout P3   
#define dula P0		//段选信号的锁存器控制
sbit wei1=P2^4;
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
static int mc[5]={0,0,6,0,0};
static int a;
uchar fre[5] ="001Hz";
uint data THHL=65536-3906;
uchar data keyword,n=0;   
uchar data div = 1; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};			 //0-F字符串void delay(uint count)      //delay
{uint i;while(count){i=200;while(i>0)i--;count--;}
}void keyscan()   
{    keyword=key&0x3f;   if(keyword!=0x3f)   {   while((key&0x3f)!=0x3f);	//等待按键松开   switch(keyword)   {   case 62: {   //增加if(div>=100) THHL=65536-39; else {div++;THHL=65536-3906/div;}//频率upa = div *60;mc[0]=a/1000%10;  mc[1]=a/100%10;mc[2]=a/10%10;mc[3]=a%10;					fre[0]=div/100 + '0';fre[1]=div/10%10 + '0';fre[2]=div%10 + '0';TR1=0;TR1=1; break;}   case 61: { //减小if(div<=1) THHL=65536-3906; else {div--;THHL=65536-3906/div;}//频率downa = div *60;mc[0]=a/1000%10;  mc[1]=a/100%10;mc[2]=a/10%10;mc[3]=a%10;	fre[0]=div/100 + '0';fre[1]=div/10%10 + '0';fre[2]=div%10 + '0';TR1=0;TR1=1; break;}   			default:{break;}   }   }   
}   void init()	//初始化 
{   key=0x3f;P2=0x00;dataout=0x00;THHL=65536-3906;  ///初始频率为1HzTH1=THHL/256;TL1=THHL%256;   TMOD=0x11;ET1=1;TR1=1;EA=1;   
}   void display()
{wei1=0;		//显示千位wei2=1;wei3=1;wei4=1;P0=table[mc[0]];delay(2);wei1=1;		//显示百位wei2=0;wei3=1;wei4=1;P0=table[mc[1]];delay(2);wei1=1;		//显示十位wei2=1;wei3=0;wei4=1;P0=table[mc[2]];delay(2);wei1=1;		//显示个位wei2=1;wei3=1;wei4=0;P0=table[mc[3]];delay(2);P0=0x00;
}
void main()   
{   init();while(1)   {   keyscan(); //按键dataout=squ_tab[n]; //方波display();}   
}   void time_intt1(void) interrupt 3   
{   TL1=THHL%256;TH1=THHL/256;   n++;
}   

四、实现现象

具体动态效果看B站演示视频:

基于单片机的方波频率可调_哔哩哔哩_bilibili

全部资料(源程序、仿真文件、安装包、演示视频):
链接: https://pan.baidu.com/s/1vvaAZXOqk87dgPrYmRI-_w?pwd=xaz4 提取码: xaz4 

相关文章:

55 基于单片机的方波频率可调

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 采用STC89C52单片机最小系统&#xff0c;设计DAC0832、放大器、与示波器显示方波&#xff0c;四位数码管显示频率&#xff0c;两个按键可调。 二、硬件资源 基于KEIL5编写C代码&#xff0c;PROT…...

23.useUnload

在 Web 应用开发中,处理页面卸载(unload)事件是一个重要但常常被忽视的方面。无论是提醒用户保存未保存的更改,还是执行一些清理操作,都需要在用户即将离开页面时进行处理。useUnload 钩子提供了一种简洁的方式来在 React 组件中处理 beforeunload 事件,使得在用户试图关…...

linux环境搭建

1、**连接外网** ssh在192.168.4.x上运行sudo ip link set ens160 down ssh切换到192.168.3.x(外网ip)&#xff0c;运行sudo ip route add default via 192.168.2.1 dev ens192 onlink //连接外网 使用完外网后 ssh在192.168.3.x上运行sudo ip link set ens160 up ssh在1…...

《C++与生物医学的智能融合:医疗变革新引擎》

在当今科技飞速发展的时代&#xff0c;人工智能正以前所未有的深度和广度渗透到各个领域&#xff0c;为传统行业带来革新与突破。其中&#xff0c;将 C与生物学、医学等领域知识相结合&#xff0c;开发用于处理生物医学数据、辅助疾病诊断和治疗的人工智能应用&#xff0c;成为…...

Matlab 绘制雷达图像完全案例和官方教程(亲测)

首先上官方教程链接 polarplothttps://ww2.mathworks.cn/help/matlab/ref/polarplot.html 上实例 % 定义角度向量和径向向量 theta linspace(0, 2*pi, 5); r1 [1, 2, 1.5, 2.5, 1]; r2 [2, 1, 2.5, 1.5, 2];% 绘制两个雷达图 polarplot(theta, r1, r-, LineWidth, 2); hold …...

Lua的环境与热更

一、global_State,lua_State与G表 Lua支持多线程环境&#xff0c;使用 lua_State 结构来表示一个独立的 Lua 线程&#xff08;或协程&#xff09;。每个线程都需要一个独立的全局环境。而lua_State 中的l_G指针&#xff0c;指向一个global_State结构&#xff0c;这个就是我们常…...

HTML CSS JS基础考试题与答案

一、选择题&#xff08;2分/题&#xff09; 1&#xff0e;下面标签中&#xff0c;用来显示段落的标签是&#xff08; d &#xff09;。 A、<h1> B、<br /> C、<img /> D、<p> 2. 网页中的图片文件位于html文件的下一级文件夹img中&#xff0c;…...

若依解析(一)登录认证流程

JWTSpringSecurity 6.X 实现登录 JWT token只包含uuid ,token 解析uuid&#xff0c;然后某个常量加UUID 从Redis缓存查询用户信息 流程图如下 感谢若依&#xff0c;感谢开源&#xff0c;能有这么好系统供我学习。 设计数据库&#xff0c;部门表&#xff0c;用户表&#xff0c…...

Redis设计与实现第17章 -- 集群 总结1(节点 槽指派)

集群通过分片sharding来进行数据共享&#xff0c;并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点node组成&#xff0c;刚开始每个节点都是相互独立的&#xff0c;必须将各个独立的节点连接起来&#xff0c;才能构成一个包含多个节点的集群。通过CLUSTER …...

汽车控制软件下载移动管家手机控车一键启动app

移动管家手机控制汽车系统是一款实现车辆远程智能控制的应用程序‌。通过下载并安装特定的APP&#xff0c;用户可以轻松实现以下功能&#xff1a;‌远程启动与熄火‌&#xff1a;无论身处何地&#xff0c;只要有网络&#xff0c;即可远程启动或熄火车辆&#xff0c;提前预冷或预…...

推荐几个可以免费下载网站模板的资源站

推荐几个可以免费下载网站模板的资源站&#xff0c;上面有免费的wordpress模板和帝国CMS模板可以下载。 模板帝 Mobandi.com 模板帝是一个提供丰富网站模板资源的平台&#xff0c;旨在帮助用户快速构建和美化自己的网站。无论是个人博客、企业官网还是电子商务平台&#xff…...

H3C OSPF实验

实验拓扑 实验需求 按照图示配置 IP 地址按照图示分区域配置 OSPF &#xff0c;实现全网互通为了路由结构稳定&#xff0c;要求路由器使用环回口作为 Router-id&#xff0c;ABR 的环回口宣告进骨干区域 实验解法 一、配置IP地址 [R1]int l0 [R1-LoopBack0]ip add 1.1.1.1 32 […...

Vue框架开发一个简单的购物车(Vue.js)

让我们利用所学知识来开发一个简单的购物车 &#xff08;记得暴露属性和方法&#xff01;&#xff01;&#xff01;&#xff09; 首先来看一下最基本的一个html框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…...

Windows Terminal Solarized Dark 配色方案调整

起因 Widnows 10/11 下面自带的 Terminal 还是比较方便的&#xff0c;因为不需要安装额外的 Terminal 软件。 我喜欢 Solarized Dark 配色方案&#xff0c;虽然有人批评这个配色方案比较老&#xff0c;但我觉得它比较优雅&#xff0c;尤其对外这种眼神比较差的人&#xff0c;比…...

PyTorch张量运算与自动微分

PyTorch张量运算与自动微分 PyTorch由Facebook人工智能研究院于2017年推出&#xff0c;具有强大的GPU加速张量计算功能&#xff0c;并且能够自动进行微分计算&#xff0c;从而可以使用基于梯度的方法对模型参数进行优化&#xff0c;大部分研究人员、公司机构、数据比赛都使用P…...

【从零开始的LeetCode-算法】3264. K 次乘运算后的最终数组 I

给你一个整数数组 nums &#xff0c;一个整数 k 和一个整数 multiplier 。 你需要对 nums 执行 k 次操作&#xff0c;每次操作中&#xff1a; 找到 nums 中的 最小 值 x &#xff0c;如果存在多个最小值&#xff0c;选择最 前面 的一个。将 x 替换为 x * multiplier 。 请你…...

【Linux】gdb / cgdb 调试 + 进度条

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 一、Linux调试器-gdb &#x1f31f;开始使用 &#x1f320;小贴士&#xff1a; &#x1f31f;gdb指令 &#x1f320;小贴士&#xff1a; ✨watch 监视 ✨打条件断点 二、小程序----进…...

Jenkins Nginx Vue项目自动化部署

目录 一、环境准备 1.1 Jenkins搭建 1.2 NVM和Nodejs安装 1.3 Nginx安装 二、Jenkins配置 2.1 相关插件安装 2.2 全局工具安装 2.3 环境变量配置 2.4 邮箱配置&#xff08;构建后发送邮件&#xff09; 2.5 任务配置 三、Nginx配置 3.1 配置路由转发 四、部署项目 …...

视频汇聚平台Liveweb国标GB28181视频平台监控中心设计

在现代安防视频监控领域&#xff0c;Liveweb视频汇聚平台以其卓越的兼容性和灵活的拓展能力&#xff0c;为用户提供了一套全面的解决方案。该平台不仅能够实现视频的远程监控、录像、存储与回放等基础功能&#xff0c;还涵盖了视频转码、视频快照、告警、云台控制、语音对讲以及…...

文件比较和文件流

文件比较和文件流 一、文本比较工具 diff1.基本用法1.1输出格式 2.常用选项 二、文件流1.文件的打开模式2.文件流的分类ifstreamofstreamfstrem区别 3.文件流的函数1. 构造函数2. is_open 用于判断文件是否打开3. open4. getline5. close6. get()7. read8. write9. put10. gcou…...

技术演讲的恐惧症:从实验室到舞台的艰难跨越

一、实验室里的从容&#xff0c;舞台上的慌乱对于软件测试从业者而言&#xff0c;实验室是我们的“舒适区”。在堆满服务器、屏幕上跳动着代码与测试用例的空间里&#xff0c;我们能精准定位一行代码的bug&#xff0c;能设计出覆盖所有场景的测试方案&#xff0c;能在复杂的系统…...

用PTA题库学C语言:手把手教你拆解‘选择与循环’的嵌套逻辑

用PTA题库学C语言&#xff1a;手把手教你拆解‘选择与循环’的嵌套逻辑 学习C语言时&#xff0c;最让初学者头疼的莫过于那些层层嵌套的选择结构和循环结构。面对一堆if-else和for/while语句&#xff0c;很多人会感到无从下手。本文将通过PTA题库中的典型题目&#xff0c;教你一…...

60 秒应急窗口下 AI 钓鱼攻击防御体系构建与工程实践

摘要 2026 年网络钓鱼攻击呈现秒级入侵、全域渗透、AI 驱动的显著特征&#xff0c;钓鱼邮件抵达至用户输入敏感信息的中位时间仅 60 秒&#xff0c;勒索软件攻击频率约每 2 秒一起&#xff0c;AI 自动化鱼叉式钓鱼点击率高达 54%&#xff0c;传统防御机制已无法适配当前威胁节奏…...

告别Wireshark手动分析:用Python的flowcontainer库5分钟搞定pcap流量特征提取

用Python的flowcontainer库实现pcap流量特征自动化提取 每次面对几十GB的pcap文件时&#xff0c;你是否也厌倦了在Wireshark中反复点击、筛选、导出数据的繁琐操作&#xff1f;网络流量分析是安全研究和数据挖掘的基础工作&#xff0c;但传统的手动分析方法效率低下&#xff0…...

让机房管理告别粗放,每一寸资源都物尽其用

对于机房运维人员而言&#xff0c;U 位管理看似是基础小事&#xff0c;却是决定机房运维效率、资产安全与合规水平的关键。当前&#xff0c;不少企业机房、单位机房仍沿用传统人工管理模式&#xff0c;机柜 U 位全靠记忆、台账全靠 Excel、盘点全靠熬夜&#xff0c;看似节省了成…...

你的oh-my-zsh插件列表还缺它吗?深度体验autojump:不止是目录跳转

深度探索autojump&#xff1a;oh-my-zsh终端导航的智能记忆系统 终端操作效率一直是开发者关注的焦点。当你的命令行环境从基础功能升级到oh-my-zsh这样的强大框架后&#xff0c;如何进一步挖掘工具潜力成为提升工作流的关键。在众多效率插件中&#xff0c;autojump以其独特的&…...

ESLyric-LyricsSource:Foobar2000高级逐字歌词同步解决方案技术指南

ESLyric-LyricsSource&#xff1a;Foobar2000高级逐字歌词同步解决方案技术指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource ESLyric-LyricsSource 是…...

大模型长文档理解新拐点已至(2026年Claude专项能力解密):支持128K上下文+动态摘要锚点+引用溯源追踪

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;大模型长文档理解新拐点已至&#xff1a;Claude 2026能力演进全景图 随着长上下文窗口突破200万token、原生支持跨页语义锚定与结构化元数据感知&#xff0c;Claude 2026标志着大模型对长文档的理解正式…...

给MT7628路由器插上4G翅膀:OpenWRT下EC20模块保姆级配置与避坑指南

让老旧路由器重获新生&#xff1a;MT7628EC20打造高性价比4G物联网网关 在物联网和边缘计算快速发展的今天&#xff0c;稳定可靠的网络连接成为各类智能设备的基础需求。然而传统有线宽带在移动监控、车载设备、临时部署等场景中往往难以满足需求。本文将详细介绍如何利用MT762…...

创建虚拟机、

...