51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频)

这篇具有很好参考价值的文章主要介绍了51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


51单片机可调幅度频率信号发生器( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0055

讲解视频

基于51单片机的可调幅度频率波形信号发生器

1.主要功能:

基于51单片机的三角波信号发生器

1、幅值在0-5V可以通过按键调整,频率在0-50Hz,可以通过按键调整

2、通过LCD1602显示幅值和频率

3、使用示波器查看波形

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
以下为本设计资料展示图:

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

经以上调试,确认程序没有问题时,加载到Proteus软件中进行仿真,所得仿真结果如下。

刚开始运行程序,没有按键操作时,仿真结果如图25所示。

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

图25 仿真初始化结果

(2)通过按键调整振幅频率选择时,四个按键操作的仿真结果如下。

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

图26 频率调低到1HZ

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

图27 频率加到50HZ,振幅不变

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

图27 振幅减到2.5V,频率不变

以上仿真结果均符合设计要求。

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

main函数

#include<reg51.h>
#include"absacc.h"
#include"intrins.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
#define out XBYTE[0xfeff]
/*
 XBYTE 的作用,可以用来定义绝对地址,是P0口和P2口的,其中P2口对应的是高位,P0口对应的是地位
如 XBYTE[0x1234] = 0x56;
则等价于
mov dptr,#1234h
mov @dptr,#56h
P0口和P2口共同作用,可以作为外部存储器的地址线
P2接地址总线的高8位(A15~A8),P0接地址总线的低8位(A7~A0)同时接数据总线,对片外地址由P2P0构成
,当dac0832的cs'接p2^7时低电平有效,所
以P2最大为01111111=0x7f(最大为P2^6~P2^0=1),P0最大为11111111=0xff,
所以为XBYTE[0x7fff],若cs'接p2^6则为XBYTE[0xbfff],若cs'接p2^6则为XBYTE[0xbfff]。
*/
sbit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^7;

		
uint freq=25,set=0;	//频率
uchar amp=255;//振幅
uchar time=0,sec=0;//计时
uchar hang1[]="fre:025Hz";
uchar hang2[]="Amp:5.0V ";//振幅

void main()
{
	uint i;	
	//设置定时器
	TMOD|=0X02;//选择为定时器0模式,工作方式2,8位自动重装载,仅用TR0打开启动。
	TH0=156;//给定时器赋初值
	TL0=156;		
	ET0=1;//打开定时器0中断允许
	TR0=0;//打开定时器
	EA=1;//打开总中断

	init_1602();//初始化LCD
	write_string(1,0,hang1);
	write_string(2,0,hang2);
	while(1)
	{
		if(!k1)//频率加
		{
			if(freq<50)
				freq++;
			set=50/freq;//50HZ-1HZ
			if(set>0)
				set--;
			hang1[4]=freq/100+0x30;
			hang1[5]=freq%100/10+0x30;
			hang1[6]=freq%10+0x30;
			write_string(1,0,hang1);
			while(!k1);
		}
		if(!k2)//频率减
		{
			if(freq>1)
				freq--;
			set=50/freq;//50HZ-1HZ
			if(set>0)
				set--;
			hang1[4]=freq/100+0x30;
			hang1[5]=freq%100/10+0x30;
			hang1[6]=freq%10+0x30;
			write_string(1,0,hang1);
			while(!k2);
		}
		if(!k3)//振幅加
		{
			amp+=3;
			i=amp*10/51;
			hang2[4]=i/10+0x30;
			hang2[6]=i%10+0x30;
			write_string(2,0,hang2);
			while(!k3);
		}
		if(!k4)//振幅减
		{
			amp-=3;
			i=amp*10/51;
			hang2[4]=i/10+0x30;
			hang2[6]=i%10+0x30;
			write_string(2,0,hang2);
			while(!k4);
		}
	}
}
void Timer0() interrupt 1//定时器中断
{
	uint i;
/*

	if(time<51)// 方波输出
	{
		i=amp;	 
		out=i;
	}
	else
	{
		i=0;
		out=i;
	}
*/
 	if(time<51)//三角波输出
	{
		i=time*amp/50;	 
		out=i;
	}
	else
	{
		i=(99-time)*amp/50;
		out=i;
	}

	if(sec<set)//延时控制	set是变量 set越小,周期越小,频率越大
		sec+=1;
	else
	{
		sec=0;
	if(time<99)
		time++;
	else
		time=0;
	}	
}

4. 原理图

原理图使用AD绘制,可供实物参考。

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

4. 设计报告

9547字设计报告,内容包括摘要,硬件设计、软件设计、软硬件框图、调试、结论等

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频

5. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、开题报告

3、原理图

5、功能要求

6、元器件清单

7、设计报告

8、软硬件流程框图

9、讲解视频

Altium Designer 软件资料

KEIL软件资料

Proteus软件资料

单片机学习资料

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频),51单片机,51单片机,proteus,音视频文章来源地址https://www.toymoban.com/news/detail-717340.html

资料下载链接

到了这里,关于51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【51单片机】DAC0832制作信号发生器(方波,三角波,锯齿波)

    将模拟量转换为数字量称为模数转换(A/D转换), 模拟量是连续的 ,比如电压、电流等,可以连续变化的量; 数字量是离散的 ,对应于计算机中的位,每一个位只能是0或1,是不存在中间状态的。通过模数转换原件将模拟量转化为数字量输入计算机,以便计算机进行计算、

    2024年02月06日
    浏览(39)
  • 51单片机(数码管可调时钟)

    1.数码管(共阴极)如何显示数字:位选+段选(单个) 位选:138译码器通过P22、P23、P24三个端口输入二进制数(011、000等)来选择连同译码器右边的哪一条线,而这些线又分别连着数码管的LED12345678、决定选择哪一个来显示数字 段选:决定输出什么数字,数码管下方又连着一

    2024年02月05日
    浏览(50)
  • 基于51单片机的可调时钟(开源)

            应用DS1302实现在LCD1602上显示时间,包括年月日,时分秒以及星期几的英文缩写,并具有时间可调的功能,调节当前位时闪烁。利用独立按键1实现模式切换,按键2设置时间位选择,按键3当前时间位+1,按键4当前时间位-1,调节时间具有边界判断和自动校正功能,同时

    2024年02月06日
    浏览(51)
  • 51单片机——DS1302可调时钟

    目录 一、功能介绍 二、主要模块介绍 2.1 DS1302模块 2.1.1 DS1302芯片介绍 2.1.2  DS1302的使用 三、程序汇总 3.1测试文件test.c 3.2 LCD1602模块程序 3.2.1 LCD1602.h 3.2.2 LCD1602.c 3.3 DS1302模块程序 3.3.1 DS1302.h 3.3.2 DS1302.c 3.4 独立按键模块程序 3.4.1 Independentkey.h 3.4.2 Independentkey.c 3.5 T0定时器模

    2024年02月02日
    浏览(71)
  • 基于51单片机交通灯带紧急开关+黄灯倒计时+可调时间

    仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J000 功能说明: 采用51单片机以及单片机最小系统和三极管驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。 1.四路交通灯,带有红绿灯倒计时,绿灯倒计时结束后转黄灯

    2024年02月06日
    浏览(46)
  • 基于51单片机的频率计

    前言:设计一个能产生固定频率的电路,然后经过单片机处理后显示该固定频率的系统。 1、指标以及功能要求 指标:该系统要能够产生一个31KHz的方波,进过单片机脉冲采集后能够在液晶上显示出该频率。要求:所用的知识要涉及到模拟电路知识和数字电路知识。 2、设计分

    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)
  • 基于51单片机数字温度报警器_DS18B20可调上下限

    (仿真+程序+原理图) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0009 1、实时温度测量及显示,超出温度范围声光报警,上下限温度可通过按键设定等功能; 2、温度测量范围0到99.9摄氏度,精度为0.1摄氏度; 3、可设置上下

    2024年02月06日
    浏览(48)
  • 基于51单片机数字频率计的设计与实现

    目录 第一章 系统原理与总体设计 1.1系统组成 1.2系统原理 1.3测量原理 1.4频率测量与总体设计 第二章 硬件电路设计 2.1硬件电路框图 2.2数字频率计原理图 2.3硬件电路设计 第三章 软件程序设计 3.1程序流程图 3.2显示电路程序设计 3.3 定时器初始化程序设计 3.4中断控制程序设计

    2024年02月08日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包