因為比來忙著測驗,所以都沒時間更新博客了,在后臺有個蜜斯姐給我留言說本身對單片機很感興趣,但是又不曉得從哪里起頭學起,是先學硬件好仍是先學軟件好,其其實我們復雜的電子學里,硬件和軟件是分不開的,硬件就像是我們的心臟和四肢,軟件就像我們的大腦,若是只要軟件沒有硬件,那我們的系統就是一個沒用的法式,不克不及施行任何操做,而若是只要硬件沒有軟件那么整個系統就是一個行尸走肉,是一個沒有“大腦”的軀殼,我說到如今各人也應該大白了,硬不離軟,軟不離硬,只要軟硬兼修,方能大成!好了,回到適才的問題,我建議先從硬件起頭學起,先理解了硬件的架構和各部門的工做原理,然后再去看軟件,如許能更好的理解原理,就像我保舉各人先用匯編后用C一樣 好了,寫了那么多,若是你有差別定見或者設法歡送留言和私信。
今天送給各人一個比力簡單的小項目吧,若是你有興趣的話能夠試著做一下呦!
好了老例子先上實物圖
正面圖:
焊接好的廢品后背圖:
電路原理圖:
PCB圖:
音樂噴泉的項目元器件清單:
音樂噴泉單片機C語言參考源代碼如下:
#include
#define 跑泉uchar unsigned char
#define uint unsigned int
sbit out=P3^7;
sbit led1=P0^7;
sbit led2=P0^6;
sbit led3=P0^5;
sbit led4=P0^4;
sbit led5=P0^3;
sbit led6=P0^2;
sbit led7=P0^1;
sbit led8=P0^0;
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=120;y>0;y--);
}
以下是模數轉換部門
/***********讀數模轉換數據******興趣噴泉**************************/
//請先領會ADC0832模數轉換的串行協議,再來讀本函數,次要是對應時序圖來理解,本函數是模仿0832的串行協議停止的
// 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=ODD;
SCL=1; //第二個上升沿
SCL=0;
DO=SGL;
SCL=1; //第三個上升沿
DO=1;
for(i=0;i180) led6=1; else led6=0;
if(h1>200) led7=1; else led7=0;
if(h1>220) led8=1; else led8=0;
out=1;
delay(date);
}
評論(0)