設(shè)計(jì)題目:甲機(jī)通過(guò)串口控制乙機(jī)LED閃爍 一、設(shè)計(jì)實(shí)驗(yàn)條件 計(jì)算機(jī)與通信工程實(shí)驗(yàn)室 二、設(shè)計(jì)任務(wù)及要求 兩片單片機(jī)(稱為甲機(jī)和乙機(jī))之間采用串行通信方式1來(lái)控制乙機(jī)的LED1閃爍,LED2閃爍, LED1和LED2同時(shí)閃爍,或者同時(shí)關(guān)閉LED1和LED2。 - 甲機(jī)發(fā)送字符“A”,控制乙機(jī)的LED1閃爍;
- 甲機(jī)發(fā)送字符“B”,控制乙機(jī)的LED2閃爍;
- 甲機(jī)發(fā)送字符“C”,控制乙機(jī)的LED1和LED2同時(shí)閃爍;
- 甲機(jī)停止發(fā)送任何命令字符,則乙機(jī)的LED1和LED2均停止閃爍。
在上述功能的基礎(chǔ)上,在電路中添加LED指示燈和蜂鳴器,使系統(tǒng)可以同時(shí)識(shí)別依次按下的多個(gè)按鍵,在到達(dá)指定位置后蜂鳴器發(fā)出短暫聲音且LED閃爍片刻,數(shù)字繼續(xù)滾動(dòng)顯示。例如,當(dāng)前位置在1層時(shí),用戶依次按下4、6、5時(shí),則數(shù)字分別向上滾動(dòng)到4、5、6時(shí)暫停且LED閃爍片刻,同時(shí)蜂鳴器發(fā)出提示音。聲音頻率可固定或可變。如果在待去的樓層的數(shù)字中,有的在當(dāng)前運(yùn)行的反方向,則數(shù)字現(xiàn)在當(dāng)前方向運(yùn)行完畢后,再依次按順序前往反方向的數(shù)字位置。
三、設(shè)計(jì)報(bào)告的內(nèi)容 為了增強(qiáng)實(shí)踐能力,拓展學(xué)習(xí)范圍,加深對(duì)單片機(jī)原理及相關(guān)知識(shí)的理解與應(yīng)用,我們組隊(duì)參加了此次單片機(jī)課程設(shè)計(jì),并選擇了“甲機(jī)通過(guò)串口控制乙機(jī)LED閃爍”作為本次課設(shè)的題目。 設(shè)計(jì)電路圖:
結(jié)束語(yǔ):本次單片課設(shè)試驗(yàn)是鍛煉我們動(dòng)手能力的一個(gè)考驗(yàn),讓我們將課上學(xué)到的以及試驗(yàn)中學(xué)到的融入到此次課設(shè)中,極大地增強(qiáng)了我們的實(shí)際操作能力,感謝我的隊(duì)友和老師。
參考資料陳海宴.51單片機(jī)原理及應(yīng)用【M】.北京:北京航空航天大學(xué)出版社,2006年四、設(shè)計(jì)時(shí)間與安排
1、設(shè)計(jì)時(shí)間: 1周2、設(shè)計(jì)時(shí)間安排: 熟悉實(shí)驗(yàn)設(shè)備、收集資料: 1 天設(shè)計(jì)圖紙、實(shí)驗(yàn)、計(jì)算、程序編寫(xiě)調(diào)試:4 天編寫(xiě)課程設(shè)計(jì)報(bào)告: 1 天答辯: 1 天
MAX232:簡(jiǎn)介和主要作用 【MAX232是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在單5V電源供電時(shí)提供EIA/TIA-232-E電平�!� 當(dāng)用單片機(jī)和PC機(jī)通過(guò)串口進(jìn)行通信,盡管單片機(jī)有串行通信的功能,但單片機(jī)提供的信號(hào)電平和RS232的標(biāo)準(zhǔn)不一樣,因此要通過(guò)max232這種類(lèi)似的芯片進(jìn)行電平轉(zhuǎn)換。 引腳介紹 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。 其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從11引腳(T1IN)、10引腳(T2IN)輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從14腳(T1OUT)、7腳(T2OUT)送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從13引腳(R1IN)、8引腳(R2IN)輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從12引腳 (R1OUT)、9引腳(R2OUT)輸出。 第三部分是供電。15腳GND、16腳VCC(+5v)。 電路分析: 甲機(jī)P1.0口連接一個(gè)秒脈沖,當(dāng)開(kāi)關(guān)按下時(shí),產(chǎn)生一個(gè)下降沿,此時(shí)軟件命令p3.1口發(fā)送一個(gè)字符,經(jīng)過(guò)max232傳輸?shù)揭覚C(jī)p3.0口,由軟件命令控制乙機(jī)p0.0口和p0.3口連接的LED閃爍與熄滅。從而實(shí)現(xiàn)甲機(jī)通過(guò)串口控制乙機(jī)LED閃爍。 代碼:甲機(jī)程序
- #include<reg51.h>
- #define uchar unsigned char
- sbit K1=P1^0; //P1.0腳作為換檔開(kāi)關(guān)
- void delay(); //延時(shí)子函數(shù)
-
- void conveysymbol(uchar c) //傳送字符
- {
- SBUF=c; //將要傳送字符的ASCII碼寫(xiě)入甲機(jī)的SBUF上
- while(TI==0); //當(dāng)SBUF數(shù)據(jù)滿時(shí)跳出循環(huán)
- TI=0; //將TI手動(dòng)清零
- }
-
- void main()
- {
- uchar model=0; //換檔變量
- SCON=0x40; //串口為工作方式1
- TMOD=0x20; //定時(shí)器1工作方式2
- PCON=0x00; //波特率不加倍
- TH1=0xfd; //波特率為9600bps
- TL1=0xfd;
- TI=0; //默認(rèn)SBUF未寫(xiě)滿
- TR1=1; //啟動(dòng)定時(shí)器1
- while(1)
- {
- if(K1==0)
- {
- while(K1==0); //每檢測(cè)到P1.0引腳有下降沿,即換檔
- model=(model+1)%4;
- }
- switch(model)
- {
- case 0: break;//無(wú)操作
- case 1: conveysymbol('A'); break; //傳送字符A的ASCII碼
- case 2: conveysymbol('B'); break; //傳送字符B的ASCII碼
- case 3: conveysymbol('C'); break; //傳送字符C的ASCII碼
- }
- delay(); //延時(shí)
- }
-
- }
-
- void delay() //延時(shí)子函數(shù)
- {
- uchar i,j;
- for(i=200;i>0;i--)
- for(j=500;j>0;j--);
- }
-
- 乙機(jī)程序
-
-
- #include<reg51.h>
- #define uchar unsigned char
- sbit LED1=P0^0; //P0.0引腳接LED燈1
- sbit LED2=P0^3; //P0.0引腳接LED燈1
- void delay(); //延時(shí)子函數(shù)
- void main()
- {
- SCON=0x50; //串口為工作方式1,允許接收
- TMOD=0x20; //定時(shí)器1工作方式2
- PCON=0x00; //波特率不加倍
- TH1=0xfd; //波特率為9600bps
- TL1=0xfd;
- RI=0; //默認(rèn)SBUF未寫(xiě)滿
- TR1=1; // 啟動(dòng)定時(shí)器1
- LED1=LED2=0; //led燈初始狀態(tài)為滅
- while(1)
- {
- if(RI) //當(dāng)RI為1,即SBUF寫(xiě)滿時(shí),進(jìn)入換檔
- {
- RI=0; //手動(dòng)將RI清零
- switch(SBUF)
- {
- case 'A': LED1=~LED1;LED2=0;break; //接收到A的ASCII碼值時(shí)執(zhí)行此句
- case 'B': LED2=~LED2;LED1=0;break; //接收到B的ASCII碼值時(shí)執(zhí)行此句
- case 'C': LED1=~LED1;LED2=~LED2; //接收到C的ASCII碼值時(shí)執(zhí)行此句
- }
- }
- else LED1=LED2=0; //若接收不到來(lái)自主機(jī)的字符,兩個(gè)led燈均滅
- delay();
- }
-
- }
- void delay()
- {
- uchar i,j;
- for(i=200;i>0;i--)
- for(j=500;j>0;j--);
- }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
串口.doc
(188.5 KB, 下載次數(shù): 26)
2018-9-11 17:06 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|