基于串口通信的單片機(jī)仿真和C語言開發(fā)
摘要:隨著單片機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,單片機(jī)的通信功能愈來愈顯得重要。單片機(jī)通信是指單片機(jī)與計(jì)算機(jī)或單片機(jī)與單片機(jī)之間的信息交換,通常單片機(jī)與計(jì)算機(jī)之間的通信用的較多。本文以溫度檢測數(shù)據(jù)為基礎(chǔ),研究了單片機(jī)與PC 機(jī)的通信原理及電路的設(shè)計(jì)。
本文引用地址:http://2s4d.com/article/170973.htm0 引言
本論文題目為基于串口通信的單片機(jī)仿真和C 語言開發(fā),研究的是一種基于串口的溫度檢測數(shù)據(jù)收發(fā)模塊。利用DS18B20 溫度傳感器設(shè)計(jì)溫度監(jiān)測模塊,精確到0.1℃,用液晶顯示當(dāng)前溫度,然后通過串口調(diào)試助手向單片機(jī)發(fā)送指令。當(dāng)單片機(jī)收到十六進(jìn)制指令01時(shí),將當(dāng)前溫度值以1s 為間隔傳回PC 機(jī)顯示,同時(shí)PC 機(jī)顯示Turn on temp;當(dāng)單片機(jī)收到十六進(jìn)制指令02 時(shí),停止溫度值的回傳,PC 機(jī)顯示Turn off temp;當(dāng)單片機(jī)收到其它指令時(shí),PC 機(jī)顯示Error。
1 總體設(shè)計(jì)
本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調(diào)完成,硬件部分主要完成信息的顯示;軟件主要完成信號(hào)的處理及控制功能等。
本系統(tǒng)的硬件采用模塊化設(shè)計(jì),以AT89C52 單片機(jī)為核心,與LCD 顯示電路、串行口通信電路及DS18B20 溫度檢測電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個(gè)模塊:
AT89C52 主控模塊、LCD 顯示模塊、串行口通信模塊、DS18B20 溫度檢測模塊等。其中AT89C52 主要完成外圍硬件的控制以及一些運(yùn)算功能,LCD 顯示模塊完成字符、數(shù)字的顯示功能、串行口通信模塊主要完成單片機(jī)和PC 機(jī)之間的通信功能,DS18B20 溫度檢測模塊主要完成環(huán)境溫度檢測功能。系統(tǒng)組成方框圖如圖1.1 所示。
圖1.1系統(tǒng)硬件組成方框圖
應(yīng)用軟件采用模塊化設(shè)計(jì)方法。該系統(tǒng)軟件主要由主程序、串口接收發(fā)送數(shù)據(jù)中斷子程序、LCD 顯示子程序等模塊組成,系統(tǒng)軟件結(jié)構(gòu)框圖如圖1.2 所示。
圖1.2系統(tǒng)軟件設(shè)計(jì)框圖。
2 系統(tǒng)工作原理
MCS-51 單片機(jī)串行口發(fā)送/接收數(shù)據(jù)時(shí),通過2 個(gè)串行緩沖器SBUF 進(jìn)行,這2 個(gè)緩沖器采用一個(gè)地址(98H),但在物理上是獨(dú)立的。其中接收緩沖器只能讀出不能寫入,50 發(fā)送緩沖器只能寫入不能讀出。
1. 發(fā)送過程
當(dāng)數(shù)據(jù)被寫入SBUF 寄存器后,單片機(jī)自動(dòng)開始從起始位發(fā)送數(shù)據(jù),發(fā)送到停止位的開始時(shí),由內(nèi)部硬件將TI 置1,向CPU 申請(qǐng)中斷,接下來可在中斷服務(wù)程序中做相應(yīng)處理,也可選擇不進(jìn)入中斷。
2. 接收過程
串行口的接收與否受制于允許接收位REN 的狀態(tài),當(dāng)REN 被軟件置1后,允許接收器接收。串口的接收器以所選波特率的16 倍速對(duì)RXD 線進(jìn)行監(jiān)視。當(dāng)1到0跳變時(shí),檢測器連續(xù)采樣到RXD 線上低電平時(shí)。便認(rèn)定RXD 端出現(xiàn)起始位,繼而接收控制器開始工作。在每位傳送時(shí)間的第7、8、9 三個(gè)脈沖狀態(tài)采樣RXD 線,決定所接收的值為0或1.當(dāng)接收完停止位后,控制電路使中斷標(biāo)志R1置為1.
評(píng)論