找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1310|回復: 3
打印 上一主題 下一主題
收起左側(cè)

有大神可以講一下下面的程序和圖嗎為什么?怎么做的

[復制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:453993 發(fā)表于 2018-12-25 15:13 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
#include<reg51.h>
sbit S1=P1^3;
sbit S2=P1^2;
sbit S3=P1^1;
sbit S4=P1^0;  
#define uchar unsigned char
#define uint unsigned int  
#define DAdata P0
uchar keyval;

void delay(unsigned char i)
{
TR0=1;
for( ;i>0;i--)
{
  while (!TF0);
  TF0=0;
  TH0=0Xec;
  TL0=0X78;
}
TR0=0;
}  

void square()
{
DAdata=0xff;
delay(100);
DAdata=0x00;  
delay(100);
}  
void jieti(void)
{
DAdata=0x00;
delay(1);  
DAdata=0x3f;
delay(1);
DAdata=0x7f;
delay(1);
DAdata=0xaf;
delay(1);
DAdata=0xff;  
delay(1);
}
  
void saw(void)
{
int i;
for(i=0;i<255;i++)
DAdata=i;
}
  
void sanjiao()
{
int i;
for(i=0;i<255;i++)
DAdata=i;  
for(i=255;i>0;i--)
DAdata=i;
}

void key(void)
{
if((P1&0x0f)!=0x0f)     
         delay(1);           
      if((P1&0x0f)!=0x0f)
          {
           if(S1==0)
             keyval=1;
           if(S2==0)
             keyval=2;
           if(S3==0)
             keyval=3;
           if(S4==0)
             keyval=4;
          }
}

  
void main()
{
keyval=0;
while(1)  
{
key();
  switch(keyval)
   {
           case 1 : square();
                 break;
           case 2 : saw();
                 break;
        case 3 : sanjiao();
                 break;
        case 4 : jieti();
                 break;
   }  
}
}

-4c8f2bdfa8c7b058.png (62.77 KB, 下載次數(shù): 31)

-4c8f2bdfa8c7b058.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

板凳
ID:371527 發(fā)表于 2018-12-26 07:43 | 只看該作者
不同按鍵實現(xiàn)輸出顯示不同的波形
回復

使用道具 舉報

沙發(fā)
ID:174087 發(fā)表于 2018-12-25 19:16 | 只看該作者
那玩意兒是叫波形發(fā)生器還是什么的?就是按鍵1產(chǎn)生方波,按鍵2鋸齒形波,按鍵3三角波,按鍵4階梯形波,實現(xiàn)方法就是IO口拉低拉高然后延時,延時時間不同產(chǎn)生的波形也不一樣
回復

使用道具 舉報

樓主
ID:453993 發(fā)表于 2018-12-25 16:01 來自觸屏版 | 只看該作者
沒有人嗎
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表