|
51單片機利用ADC0832芯片產(chǎn)生方波 三角波 鋸齒波 梯形波的簡單仿真,全部資料下載:
信號發(fā)生器.rar
(95.26 KB, 下載次數(shù): 66)
2016-9-25 15:11 上傳
點擊文件名下載附件
源程序:
- #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;
- }
- }
- }
復(fù)制代碼
|
|