单片机课程设计产生三角波、正弦波、方波剖析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scl1=0;
delay();
}Байду номын сангаас
void write_byte1(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl1=0;
delay();
sda1=CY;
delay();
scl1=1;
delay();
}
scl1=0;
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
void delay()
{ ;; }
void delay1(uchar x)
LATCH1=0;
Delay2(500); //扫描间隙延时,时间太长会闪烁,太短会造成重影
}
}
//pcf8591
void init1()
{
sda1=1;
delay();
scl1=1;
delay();
}
void start1() //开始信号
{
sda1=1;
delay();
scl1=1;
delay();
STC89C51单片机产生正弦波、方波、三角波LED显示频率源程序
#include <stdio.h>
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LATCH1=P2^6;//定义锁存使能端口段锁存
2,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,2,2,2,3,4,4,5,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,22,23,24,26,27,29,30,32,33,35,36,38,39,41,42,44,45,47,48,50};
89,90,90,91,92,93,94,95,95,96,96,97,97,98,98,98,99,99,99,99,100,100,100,100,100,99,
99,99,99,98,98,98,97,97,96,96,95,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,79,78,
unsigned char code DuanMa2[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示段码值0~9
unsigned char code DuanMa1[3]={0x77,0x7c,0x39};
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码
sda1=0;
delay();
}
void stop1() //停止
{
sda1=0;
delay();
scl1=1;
delay();
sda1=1;
delay();
}
void respons1() //应答
{
uchar i;
scl1=1;
delay();
while((sda1==1)&&(i<250))i++;
{
uchar a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void Delay2(unsigned int t)
{
while(--t);
}
void Display()
{
uchar i;
for(i=0;i<4;i++)
{
DataPort=WeiMa[i]; //取位码
#define DataPort P0
sbit keyA=P3^3;
sbit keyB=P3^4;
sbit keyC=P3^5;
sbit wc=P1^0;
sbit scl=P1^1;
sbit sda=P1^2;
sbit scl1=P1^3;
sbit sda1=P1^4;
sbit p5=P1^5;
sbit p6=P1^6;
sbit LATCH2=P2^7;//位锁存
unsigned char TempData[8]; //存储显示值的全局变量
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9
LATCH2=1; //位锁存
LATCH2=0;
if(i==0) DataPort=DuanMa1[sign-1];
else if(i==1) DataPort=DuanMa2[temp1[i]];
else DataPort=DuanMa[temp1[i]]; //取显示数据,段码
LATCH1=1; //段锁存
sbit p7=P1^7;
uint sign,ad;
uchar temp[10], temp1[3];//定义显示区域临时存储数组
uchar voltage; //定义浮点变量
uchar l=0,m=100,n=0;
uchar code sin[200] = {52,53,55,56,58,59,61,62,64,65,67,68,70,71,73,74,75,77,78,79,81,82,83,84,85,86,88,
}
void write_add1(uchar date) //写入DA
delay();
sda1=1;
delay();
}
uchar read_byte1()
{
uchar i,k;
scl1=0;
delay();
sda1=1;
delay();
for(i=0;i<8;i++)
{
scl1=1;
delay();
k=(k<<1)|sda1;
scl1=0;
delay();
}
return k;
77,75,74,73,71,70,68,67,65,64,62,61,59,58,56,55,53,52,50,48,47,45,44,42,41,39,38,36,
34,33,32,30,29,27,26,24,23,22,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,5,4,4,3,2,2,
相关文档
最新文档