單片機的異步串行通信功能和基本使用方法
于只有兩路輸出,因此實際上只要控制PD6、PD7就可以了。點擊“開關1”按鈕可以改變PD6的輸出狀態,點擊“開關2”按鈕可以改變PD7的輸出狀態。點擊“全部開啟”按鈕PD6、PD7均輸出高電平1;點擊“全部關閉”按鈕PD6、PD7均輸出低電平0。PD6、PD7的輸出電平決定繼電器K1、K2的工作狀態。
3.控制實驗
先將程序目標文件寫入單片機,再接好串口通信線,通信線的接線方法見上圖。打開實驗板的電源,運行上位機程序文件夾中的電源開關控制器.exe可執行文件,如果出現缺少控件的提示,只先執行一下install.bat即可。點擊上位機軟件上的命令按鈕,我們發現實驗板上的發光二極管VD5、VD6發光狀態會隨之發生相應的變化,與之對應的繼電器的工作狀態也會發生相應的變化。
如果我們把繼電器的觸點串聯在電源插座上,再將家用電器的插頭插在這個電源插座上就可以用計算機對家用電器的開關進行控制了。
實驗二串口通信
1.實驗電路
實驗板上與本實驗相關的電路見上圖,這個實驗主要用來演示計算機與單片機收發字符串的實驗。計算機通過軟件“串口調試助手”將字符串發送給單片機,單片機將收到的字符串在LCD顯示屏上顯示,并自動將字符串回發給計算機。
2.程序設計
計算機上的程序使用“串口調試助手”,用來通過串口發送和接收字符串。這個實驗中串口傳遞的是字符的ASC碼,一個字符的ASC碼正好是8位二進制數,所以一幀信號即可傳遞一個字符。 單片機程序中的主程序如下:
void main(void)
{
uchar i;
DelayMs(500);//啟動等
待,等LCD進入工作狀態
Init();//初始化
while(1)
{
Display(O,O,RS_Data)
;//顯示接收數據
for(i=O;i6;i++)
{
while(!(UCSRA0x80))
;//等待接收完成
. RS_Data[i]=UDR;//接
收數據
}
for(i=O;i6;i++)
{
while(!(UCSRA0x20));
//等待移位寄存器空
UDR=RS_Data[i];//發
送數據
}
}
}
程序中的數組Rs_Data[]用來存儲接收和發送的字符串。RS_Data[]的初始值為RS_Data[]=“:Hello!”,接收和發送均使用循環語句,因為接收和發送的字符數為6個,所以循環次數為6次。
3.通信實驗
主站蜘蛛池模板:
安仁县|
松滋市|
阜平县|
吉木乃县|
绵竹市|
海伦市|
合作市|
广德县|
南丹县|
岑溪市|
基隆市|
日土县|
库尔勒市|
方城县|
商丘市|
杨浦区|
阿拉善右旗|
铁岭市|
韩城市|
惠东县|
潮州市|
齐齐哈尔市|
招远市|
和硕县|
巴中市|
黄浦区|
远安县|
九龙城区|
井研县|
奉贤区|
石泉县|
建湖县|
都江堰市|
常州市|
竹山县|
蕉岭县|
毕节市|
贵定县|
青海省|
台北县|
永昌县|
用串口通信線連接好計算機和實驗板后,接通實驗板的電源,這時實驗板LCD顯示屏顯示的是:“Hello!”。在計算機上打開串口調試助手軟件,對串口按波特率9600、8位數據位、1位停止位、無校驗設置。在發送區隨便填寫6個字符,比如abc123,點擊“手動發送”按鈕,我們會發現LCD顯示屏顯示:abc123(見題圖),同時串口調試助手接收區也收到單片機回發的字符串,如下圖所示。
數字通信相關文章:數字通信原理
通信相關文章:通信原理
評論