• 大小: 56.6 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-21
  • 语言: 其他
  • 标签:

资源简介

这是最常用到的波形发生器(函数发生器)的单片机程序,硬件用的是ADC0832芯片,电路就用该芯片资料里的电路图,验证,实验成功

资源截图

代码片段和文件信息

//可调信号发生器程序

#include 

unsigned char keykflagoo;
unsigned char VPP;//倍幅数
unsigned int fj;//倍频数
bit time;






/**********初始化子程序************/

void init()
{
    TMOD=0X02;        //定时器0用于控制输出波的频率
    TH0=256-f;
    ET0=1;     //按键接于外部中断0,与中断1
    IT0=1;
    IT1=1;
    EX0=1;
    EX1=1;
    EA=1;
    TR0=1;
    flag=0;     //开始时无输出
}
/*void init()
{
    TMOD=0X01;        //定时器0用于控制输出波的频率
    TH0=(65536-f)/256;
    TL0=(65536-f)%256;
    ET0=1;     //按键接于外部中断0,与中断1
    IT0=1;
    IT1=1;
    EX0=1;
    EX1=1;
    EA=1;
    TR0=1;
    flag=0;     //开始时无输出

    
}*/
 /************延时程序*************/
void delay_1ms(unsigned char z)

    unsigned char ij; 
    for(i=z;i>0;i--) 
    for(j=110;j>0;j--); 



/*************线反转法扫描键盘*************/
unsigned char Getch (  )
{       //线反转法非常简单
    unsigned char XYZ;
    P0=0xff;
    P0=0x0f;       //先对P3置数  行扫描
    if(P0!=0x0f)     //判断是否有键按下
    {delay_1ms(10);    //延时软件去干扰
     if(P0!=0x0f)   //确认按键按下X = P3;
    {
    X=P0;          //保存行扫描时有键按下时状态
    P0=0xf0;       //列扫描
    Y=P0;          //保存列扫描时有键按下时状态
     Z=X|Y;         //取出键值
    switch ( Z )   //判断键值(那一个键按下)
    {
        /*case 0xee: k=0; break; //P2.0~P2.3对应第一行至第四行,P2.4~P2.7对应第一列至第四列
        case 0xde: k=1; break;
        case 0xbe: k=2; break;
        case 0x7e: k=3; break;
        case 0xed: k=4; break;
        case 0xdd: k=5; break;
        case 0xbd: k=6; break;
        case 0x7d: k=7; break;
        case 0xeb: k=8; break;
        case 0xdb: k=9; break;
        case 0xbb: k=10;break;
        case 0x7b: k=11;break;
        case 0xe7: k=12;break;
        case 0xd7: k=13;break; 
        case 0xb7: k=14;break;
        case 0x77: k=15;break;*/


    case 0xe7: k=0; break;//P2.3对应第一行,P2.2对应第二行,P2.1对应第三行,P2.0对应第四行,P2.4对应第一列,P2.5对应第二列,P2.6对应第三列,P2.7
    case 0xd7: k=1; break;         
    case 0xb7: k=2; break;         
    case 0x77: k=3; break;         
    case 0xeb: k=4; break;         
    case 0xdb: k=5; break;          
    case 0xbb: k=6; break;         
    case 0x7b: k=7; break;          
    case 0xed: k=8; break;         
    case 0xdd: k=9; break;         
    case 0xbd: k=10;break;         
    case 0x7d: k=11;break;         
    case 0xee: k=12;break;        
    case 0xde: k=13;break;         
    case 0xbe: k=14;break;         
    case 0x7e: k=15;break;
    }
    }
    }
    return k;
}



void search()
{
  key=Getch();
  switch(key)
  {
        case 0:VPP=2;break;
        case 1:VPP=4;break;
        case 2:VPP=8;break;
        case 3:VPP=8;break;
        case 4:VPP=8;break;
        case 5:VPP=8;break;
        case 6:VPP=8;break;
        case 7:VPP=8;break;
        case 8:VPP=8;break;
        case 9:VPP=8;break;

        case 10:f=f*2;oo=0;break;
        case 11:f=f*3;oo=0;break;
        case 12:f=f*4;oo=0;break;
        case 13:f=f*5;oo=0;break;
        case 14:f=f*6;oo=0;break;
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5115  2002-04-16 15:32  可调信号发生器\STARTUP.A51

     文件      11769  2009-07-27 15:25  可调信号发生器\STARTUP.lst

     文件        873  2009-07-27 15:25  可调信号发生器\STARTUP.obj

     文件       9357  2009-07-27 15:25  可调信号发生器\可调信号发生器

     文件       2571  2009-07-27 15:25  可调信号发生器\可调信号发生器.hex

     文件       9451  2009-07-27 12:21  可调信号发生器\可调信号发生器.LST

     文件      13716  2009-07-27 15:25  可调信号发生器\可调信号发生器.M51

     文件      10303  2009-07-27 12:21  可调信号发生器\可调信号发生器.OBJ

     文件       1063  2009-07-30 08:39  可调信号发生器\可调信号发生器.Opt

     文件        204  2009-07-30 08:39  可调信号发生器\可调信号发生器.plg

     文件       2043  2009-07-30 08:39  可调信号发生器\可调信号发生器.Uv2

     文件       1022  2009-07-27 15:26  可调信号发生器\可调信号发生器_Opt.Bak

     文件       2127  2009-07-27 15:26  可调信号发生器\可调信号发生器_Uv2.Bak

     文件       5629  2009-07-27 15:25  可调信号发生器\可调信号发生器_修改后可调幅.c

     文件      10407  2009-07-27 15:25  可调信号发生器\可调信号发生器_修改后可调幅.lst

     文件      10658  2009-07-27 15:25  可调信号发生器\可调信号发生器_修改后可调幅.obj

     文件       5211  2009-07-27 15:18  可调信号发生器\可调信号发生器_初步程序.c

     文件       9281  2008-07-27 14:43  可调信号发生器\F51\F51

     文件       2571  2008-07-27 14:43  可调信号发生器\F51\F51.hex

     文件      12947  2008-07-27 14:43  可调信号发生器\F51\F51.M51

     文件       1140  2008-07-27 14:44  可调信号发生器\F51\F51.Opt

     文件      22197  2008-07-27 14:44  可调信号发生器\F51\F51.plg

     文件       2103  2008-07-27 14:44  可调信号发生器\F51\F51.Uv2

     文件          0  2008-07-27 12:32  可调信号发生器\F51\F51_Uv2.Bak

     文件       5115  2002-04-16 15:32  可调信号发生器\F51\STARTUP.A51

     文件      11742  2008-07-27 14:43  可调信号发生器\F51\STARTUP.lst

     文件        810  2008-07-27 14:43  可调信号发生器\F51\STARTUP.obj

     文件      10546  2008-07-27 14:43  可调信号发生器\F51\可调信号发生器.lst

     文件      10451  2008-07-27 14:43  可调信号发生器\F51\可调信号发生器.obj

     文件       5629  2009-07-27 15:25  可调信号发生器\F51\可调信号发生器_修改后可调幅.c

............此处省略5个文件信息

评论

共有 条评论