|
|
單片機(jī)音樂噴泉程序源碼
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit out=P3^7;
- sbit led1=P0^0;
- sbit led2=P0^1;
- sbit led3=P0^2;
- sbit led4=P0^3;
- sbit led5=P0^4;
- sbit led6=P0^5;
- sbit led7=P0^6;
- sbit led8=P0^7;
- sbit SCL=P1^2; //SCL定義為P1口的第3位腳,連接ADC0832SCL腳
- sbit DO=P1^3; //DO定義為P1口的第4位腳,連接ADC0832DO腳
- sbit CS=P1^0; //CS定義為P1口的第4位腳,連接ADC0832CS腳
- uchar h1,date;
- unsigned char adval;
- void delay(uint z)
- {
- uchar y;
- for(;z>0;z--)
- for(y=5;y>0;y--);
- }
- /***********讀數(shù)模轉(zhuǎn)換數(shù)據(jù)********************************************************/
- //請先了解ADC0832模數(shù)轉(zhuǎn)換的串行協(xié)議,再來讀本函數(shù),主要是對應(yīng)時序圖來理解,本函數(shù)是模擬0832的串行協(xié)議進(jìn)行的
- // 1 1 0 通道
- // 1 1 1 通道
- unsigned char ad0832read(bit SGL,bit ODD)
- {
- unsigned char i=0,value=0,value1=0;
- SCL=0;
- DO=1;
- CS=0; //開始
- SCL=1; //第一個上升沿
- SCL=0;
- DO=SGL;
- SCL=1; //第二個上升沿
- SCL=0;
- DO=ODD;
- SCL=1; //第三個上升沿
- SCL=0; //第三個下降沿
- DO=1;
- for(i=0;i<8;i++)
- {
- SCL=1;
- SCL=0; //開始從第四個下降沿接收數(shù)據(jù)
- value<<=1;
- if(DO)
- value++;
- }
- for(i=0;i<8;i++)
- { //接收校驗(yàn)數(shù)據(jù)
- value1<<=1;
- if(DO)
- value1+=0x80;
- SCL=1;
- SCL=0;
- }
- CS=1;
- SCL=1;
- if(value==value1) //與校驗(yàn)數(shù)據(jù)比較,正確就返回?cái)?shù)據(jù),否則返回0
- return value;
- return 0;
- }
- void penquan() //PWM調(diào)壓
- {
- date=ad0832read(1,0);
-
- h1=(255-date);
- out=0;
- delay(h1);
- if(h1>30) led1=1; else led1=0;
-
- …………余下代碼請下載附件…………
復(fù)制代碼
下載:
單片機(jī)音樂噴泉.zip
(1.05 KB, 下載次數(shù): 82)
2017-3-16 22:10 上傳
點(diǎn)擊文件名下載附件
程序
|
評分
-
查看全部評分
|