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;
}//频率up
a = 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;}//频率down
a = 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; ///初始频率为1Hz
TH1=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站演示视频:
全部资料(源程序、仿真文件、安装包、演示视频):
链接: https://pan.baidu.com/s/1vvaAZXOqk87dgPrYmRI-_w?pwd=xaz4 提取码: xaz4
原文地址:https://blog.csdn.net/zs849644371/article/details/144169426
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!