久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1637|回復: 4
收起左側

求指導 用8051單片機,DAC0832和LCD1602實現函數發生器功能

[復制鏈接]
ID:1075678 發表于 2023-5-9 21:49 | 顯示全部樓層 |閱讀模式
用單片機實現函數發生器功能
硬件:單片機+LCD1602+N個按鍵+4個LED燈+DAC0832。
基本要求:
按下按鍵可使DAC輸出不同波形(正弦波、三角波、鋸齒波、方波),對應LED燈亮,且在LCD1602上顯示當前波形信息。
1.LCD顯示增加當前波形的頻率;
2.有按鍵可增加or減少頻率;
3.波形幅值可設定;
1.png

回復

使用道具 舉報

ID:1043290 發表于 2023-5-10 16:52 | 顯示全部樓層
回復

使用道具 舉報

ID:1043290 發表于 2023-5-10 16:54 | 顯示全部樓層
回復

使用道具 舉報

ID:1043290 發表于 2023-5-10 16:57 | 顯示全部樓層
我貼個代碼給你吧,用51的單片機來實現,也有詳細鏈接自己可以看看

#include <reg52.h>
#include <intrins.h>
sbit OE=P3^0;
sbit EOC=P3^1;
sbit CLK=P3^4;
sbit ST=P3^2;
sbit K1=P1^4;
sbit K2=P1^5;
sbit K3=P1^6;
sbit K4=P1^7;
sbit LEDB=P1^0;
sbit LEDG=P1^1;
sbit LEDR=P1^2;
sbit LEDY=P1^3;
#define ADC P2
#define uchar unsigned char
#define uint  unsigned int
uchar code sin[]={0,0,0,0,1,1,2,3,4,5,6,8,
                                        9,11,13,15,17,19,22,24,
                                        27,30,33,36,39,42,46,49,
                                        53,56,60,64,68,72,76,80,
                                        84,88,92,97,101,105,110,
                                        114,119,123,128,132,136,
                                        141,145,150,154,158,163,
                                        167,171,175,179,183,187,
                                        191,195,199,202,206,209,
                                        213,216,219,222,225,228,
                                        231,233,236,238,240,242,
                                        244,246,247,249,250,251,
                    252,253,254,254,255,255,255};


void timer () interrupt 1                                //用定時器來創造時鐘函數
{
  CLK=~CLK;
}
uchar adc0808()
{
    uchar t;
    ST=0;
        ST=1;                                                   //形成下跳脈沖信號,開啟ad
        ST=0;
        while(!EOC);                                 //等待轉換完成
        OE=1;                                                 //允許輸出
        t=ADC;                                                 //獲取輸出
        return (t);
}
/**********方波*********/
void square()
{
   uchar a,b;
   for(a=0;a<127;a++)
   {
       P0=0xff;
           P2=0xff;
           b=adc0808();
           b=~b;
           while(b--);
   }
    for(a=0;a<127;a++)
   {
       P0=0x00;
           P2=0xff;
           b=adc0808();
           b=~b;
           while(b--);
   }
}
/********鋸齒波*******/
void sawtooth()
{
   uchar a,b;
   for(a=0;a<255;a++)
   {
      P0=a;
          P2=0xff;
          b=adc0808();
          b=~b;
          while(b--);
        }
}
/*******三角波*******/
void triang()
{
   uchar a,b;
   for(a=0;a<254;a=a+2)
   {
      P0=a;
      P2=0xff;
      b=adc0808();
          b=~b;
          while(b--);
   }
   for(a;a>1;a=a-2)
   {
      P0=a;
      P2=0xff;
          b=adc0808();
          b=~b;
          while(b--);
   }
}
/*******正弦波******/
void sinwave()
{
   uchar a,b;
   for(a=0;a<92;a++)
   {
      P0=sin[a];
          P2=0xff;
          b=adc0808();
          b=~b;
          while(b--);
   }
   for(a=a-1;a>0;a--)
   {
      P0=sin[a];
          P2=0xff;
          b=adc0808();
          b=~b;
          while(b--);
   }
}
                
main()
{
  EA=1;                                                                        //開定時
  ET0=1;
  TMOD=0X02;
  TH0=0Xff;
  TL0=0Xff;
  TR0=1;

  while(1)
  {
  P0=0;
  if(K1==0)
  {
     LEDB=0;
         square();                                  //方波,藍燈
  }
  LEDB=1;
  if(K2==0)
  {
     LEDG=0;
         sawtooth();                         //鋸齒波,綠燈
  }
   LEDG=1;
  if(K3==0)
  {
     LEDR=0;
         triang();                                //三角波, 紅燈
  }
  LEDR=1;
  if(K4==0)
  {
     LEDY=0;
         sinwave();                           //正弦波,黃燈
  }
  LEDY=1;
   
  }
}
————————————————
版權聲明:本文為CSDN博主「森嶼~~」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_62281625/article/details/122104086
回復

使用道具 舉報

ID:1075678 發表于 2023-5-15 20:49 | 顯示全部樓層
謝謝各位的指導,已經寫出來了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美性精品 | 日韩在线中文字幕 | 91精品久久久 | 天天操夜夜操 | 亚洲成人在线视频播放 | 国产精品欧美一区二区三区不卡 | 亚洲精品免费视频 | 亚洲精品一区二区 | 97精品视频在线 | 久久新 | 热99在线| 99国内精品久久久久久久 | 天天看逼 | 国产日韩欧美在线 | 精品成人佐山爱一区二区 | 国产精品久久亚洲 | 亚洲精品电影在线 | 亚洲精品成人av | 国产亚洲一区二区三区在线观看 | 欧美成人影院在线 | 91精品久久久久久久久中文字幕 | 成人性视频免费网站 | 国产欧美一区二区三区在线播放 | 国产91视频一区二区 | 黄网站色大毛片 | 日本在线视频不卡 | 在线欧美日韩 | 成人一区二区视频 | 国产精品特级片 | 人人鲁人人莫人人爱精品 | 日韩在线一区视频 | 日本啊v在线 | 久久久久亚洲国产| 欧美黄色一区 | 欧美午夜精品久久久久久浪潮 | 亚洲精品一区在线观看 | 免费欧美 | 久久久免费毛片 | 欧美一区在线视频 | 黄色三级在线播放 | 亚洲乱码国产乱码精品精98午夜 |