單片機與計算機串口通信實踐

出版時間:2013-1  出版社:電子工業(yè)出版社  作者:張秀關(guān)  頁數(shù):315  字數(shù):532000  
Tag標簽:無  

前言

  采用Cygnal集成產(chǎn)品公司的C8051F020DK-U型單片機開發(fā)工具,僅需自制一條串行通信線,即可實現(xiàn)與一臺計算機進行串口通信。在單片機程序設(shè)計中,開發(fā)工具采用C51編程語言;在計算機程序設(shè)計中,開發(fā)工具采用Visual C++ 6.0集成開發(fā)環(huán)境。為了易于代碼的理解,本書首先對C8051F020型單片機、Windows API串口通信函數(shù)及多線程等相關(guān)知識做簡單而必要的介紹。   本書中介紹的第一種串口通信模式,也是在同一時刻下,串行通信線路上僅有一個方向的數(shù)據(jù)傳輸;當(dāng)串行通信流量較大、計算機的CPU使用率較高時,可能就會發(fā)生單片機部分測量值未被傳送給計算機的情況。在第二種串口通信模式下,可以保證單片機的測量值均被發(fā)送給計算機,但未考慮數(shù)據(jù)通信錯誤時的重新傳輸。在第三種串口通信模式下,重新考慮了數(shù)據(jù)通信錯誤時的重新傳輸?! ≡诒緯校幷叻治霾L試了單片機接收兩個連續(xù)字符的串口通信模式,且串口通信均正常。為使計算機程序具有一定的通用性,創(chuàng)建了一個串口通信參數(shù)的設(shè)置對話框,相關(guān)地,創(chuàng)建并使用了一個ini配置文件?! 〔捎肅8051F020型單片機,測量了二路差分電壓量、四路單端電壓量,及其自身的片內(nèi)溫度;在ADC中斷服務(wù)程序中,通過計數(shù)自身的執(zhí)行次數(shù),還精確記錄了單片機的上電時間、串行通信時間。單片機將各電壓量的四次ADC平均值、所記錄的兩個時間值等,串行發(fā)送到計算機中,由計算機計算出實際的電壓值、溫度值,并存儲到以當(dāng)前時刻命名的Excel文件中。Visual C++ 6.0向Excel 2003文件寫入數(shù)據(jù),采用了兩種方法:ODBC、自動化?! ”緯珊喨敕保敿氷U述了三種串口通信模式?! 〉谝环N串口通信模式,見第2、3部分;第二種串口通信模式,見第4部分;第三種串口通信模式,見第5、6部分。編者花費了大量的時間及精力,以盡最大可能地對文中所涉內(nèi)容進行注解。三種串口通信模式的程序代碼,后面一種都是以前面一種為基礎(chǔ)進行修改的,可加深讀者對代碼的理解,以及查看三種模式下代碼的差別之處。編程期間所經(jīng)歷的錯誤,也列出了一二。愿本書能夠給您帶來滿意的收獲?! ≡诒緯某霭孢^程中,得到了郭立總經(jīng)理、符隆美編輯的有力支持,在此表示衷心的感謝。  由于編者能力、精力之所限,書中不妥之處在所難免,誠摯接受讀者的批評及指正?! 【幷摺 ?012年8月  于中國石油集團濟柴動力總廠

內(nèi)容概要

  采用Cygnal公司的C8051F020DK-U型單片機開發(fā)工具,即可實現(xiàn)與計算機的串口通信。本書由簡入繁,詳細闡述了三種串口通信模式,依據(jù)其各自的串行數(shù)據(jù)傳輸能力,可適用于不同的實際項目。單片機測量了六路電壓量、片內(nèi)溫度,記錄了兩個時間值,并將它們串行發(fā)送到計算機中;計算機將計算得到的物理電壓值等,采用ODBC、自動化兩種方法,存儲到以當(dāng)前時刻命名的Excel文件中。

書籍目錄

第1篇 HTML
第1章 概述
1.1 應(yīng)用程序的分類及特點
1.1.1 C/S編程模型
1.1.2 B/S編程模型
1.1.3 富互聯(lián)網(wǎng)應(yīng)用程序模型
1.2 W3C和ECMA標準
1.2.1 HTML
1.2.2 CSS
1.2.3 JavaScript和jQuery
1.2.4 DOM
1.2.5 C#語言
1.3 VS2010集成開發(fā)環(huán)境
1.3.1 安裝集成開發(fā)環(huán)境
1.3.2 安裝擴展開發(fā)工具
1.3.3 安裝客戶端瀏覽器
1.3.4 安裝擴展管理工具
1.4 網(wǎng)頁分類與基本代碼交互技術(shù)
1.4.1 靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁
1.4.2 HTML頁與Web窗體
習(xí)題
第2章 HTML基礎(chǔ)
2.1 HTML入門
2.1.1 基本概念
2.1.2 HTML和XHTML
2.1.3 HTML5的基本結(jié)構(gòu)
2.1.4 HTML5新增標記和不再支持的標記
2.2 字體和排版
2.2.1 h1標記到h6標記
2.2.2 p標記和br標記
2.2.3 hr標記
2.2.4 pre標記
2.2.5 span標記和div標記
2.2.6 粗體斜體和上下標控制標記(b、i、sup、sub)
2.2.7 短語標記(strong、em、code、cite、blockquote)
2.3 列表和圖像顯示
2.3.1 有序列表(ol、li)
2.3.2 無序列表(ul、li)
2.3.3 自定義列表(dl、dt、dd)
2.3.4 圖像顯示標記(img)
2.4 超鏈接和頁內(nèi)框架
2.4.1 絕對URL和相對URL
2.4.2 超鏈接標記(a)
2.4.3 頁內(nèi)框架標記(iframe)
2.4.4 利用a標記和iframe標記實現(xiàn)導(dǎo)航
2.4.5 利用a標記和iframe標記鏈接到錨點
2.5 表格
2.5.1 表格標記(table)
2.5.2 規(guī)則表格
2.5.3 非規(guī)則表格
2.6 音頻和視頻
2.6.1 音頻播放標記(audio)
2.6.2 視頻播放標記(video)
2.7 語義化標記
習(xí)題
第3章 CSS樣式控制
3.1 基本概念
3.1.1 CSS的級聯(lián)控制
3.1.2 CSS的單位表示形式
3.1.3 設(shè)計和引用CSS
3.2 CSS選擇器
3.2.1 基本選擇器
3.2.2 關(guān)系選擇器
3.2.3 特性選擇器
3.2.4 偽元素選擇器
3.2.5 偽類選擇器
3.3 CSS的盒模型
3.3.1 盒模型簡介
3.3.2 外邊距(margin)
3.3.3 內(nèi)邊距(padding)
3.3.4 盒大小(box-sizeing)
3.3.5 盒陰影效果(box-shadow)
3.4 定位與布局控制
3.4.1 寬度和高度控制
3.4.2 定位控制
3.4.3 布局控制
3.5 邊框控制
3.5.1 復(fù)合屬性(border)
3.5.2 邊框?qū)挾群蜆邮?border-width、border-style)
3.5.3 邊框顏色(border-color)
3.5.4 邊框圓角(border-radius)
3.6 字體和文本控制
3.6.1 字體控制
3.6.2 文本控制
3.7 背景控制
3.7.1 復(fù)合屬性(background)
3.7.2 背景色與背景圖像
3.7.3 背景圖像的控制
習(xí)題
第4章 JavaScript和jQuery
4.1 在網(wǎng)頁中使用JavaScript和jQuery
4.1.1 基本概念
4.1.2 在網(wǎng)頁中直接編寫JavaScript和jQuery代碼
4.1.3 在js文件中編寫JavaScript和jQuery代碼
4.1.4 提高JavaScript和jQuery性能的技巧
4.2 JavaScript和jQuery基本用法
4.2.1 變量和運算符
4.2.2 流程控制語句
4.3 JavaScript內(nèi)置的函數(shù)和對象
4.3.1 定義函數(shù)和對象
4.3.2 JavaScript的內(nèi)置函數(shù)
4.3.3 數(shù)據(jù)類型轉(zhuǎn)換
4.4 瀏覽器對象和客戶端事件
4.4.1 DOM
4.4.2 window對象
4.4.3 screen對象
4.4.4 document對象
4.4.5 客戶端事件
4.5 jQuery選擇器
4.5.1 基本格式
4.5.2 基本選擇器
4.5.3 層次選擇器
4.5.4 特性選擇器
4.5.5 基本過濾選擇器
4.5.6 內(nèi)容過濾選擇器
4.5.7 可見性過濾選擇器
4.5.8 子元素過濾選擇器
4.5.9 表單對象選擇器
4.5.10 表單對象特性選擇器
4.6 jQuery方法
4.6.1 CSS操作
4.6.2 HTML操作
4.6.3 元素大小和位置操作
4.6.4 元素特性和屬性操作
4.6.5 元素自定義數(shù)據(jù)操作
4.6.6 文檔處理
4.6.7 事件處理
4.7 jQuery動畫
4.7.1 參數(shù)(duration、easing、callback)
4.7.2 顯示隱藏和切換(hide、show、toggle)
4.7.3 滑動效果(slideDown、slideUp、slideToggle)
4.7.4 淡入淡出效果(fadeIn、fadeOut)
4.7.5 透明度漸變(fadeTo)
4.7.6 自定義動畫(animate)
4.7.7 jQuery動畫常見問題
習(xí)題
第5章 Canvas
5.1 Canvas基礎(chǔ)
5.1.1 HTML5的canvas標記
5.1.2 路徑(beginPath、closePath、stroke、fill)
5.1.3 移動坐標(moveTo)
5.2 基本形狀的繪制
5.2.1 直線(lineTo)
5.2.2 矩形(fillRect、strokeRect、clearRect)
5.2.3 圓形和弧形(arc)
5.2.4 用貝塞爾曲線繪制圖形(quadraticCurveTo)
5.3 顏色和樣式
5.3.1 填充樣式和輪廓樣式(fillStyle、strokeStyle)
5.3.2 透明度(Transparency)
5.3.3 漸變(Gradients)
5.3.4 圖案(Patterns)
5.4 陰影和文字繪制
5.4.1 陰影(Shadow)
5.4.2 字符文本的繪制
5.5 像素級繪圖
5.5.1 導(dǎo)入和繪制圖像
5.5.2 切片(Slicing)
5.5.3 剪切(clip)和蒙版(mask)
5.6 繪圖狀態(tài)與矩陣變換
5.6.1 繪圖狀態(tài)
5.6.2 變換(Transformations)
習(xí)題
第2篇 ASP.NET Web應(yīng)用程序
第6章 Web窗體和基本控件
6.1 基于事件的編程模型
6.1.1 Web窗體頁
6.1.2 母版頁和使用母版頁的Web窗體頁
6.1.3 主題和外觀
6.2 界面交互控件的分類
6.2.1 表單(form)
6.2.2 HTML控件
6.2.3 HTML服務(wù)器控件
6.2.4 Web服務(wù)器控件
6.3 HTML控件的基本用法
6.3.1 label標記和button標記
6.3.2 input標記
6.4 基本W(wǎng)eb服務(wù)器控件
6.4.1 標簽和按鈕
6.4.2 文本框及密碼框(TextBox)
6.4.3 列表和下拉列表(ListBox、DropDownList)
6.4.4 單選按鈕(RadioButton、RadioButtonList)
6.4.5 復(fù)選框(CheckBox、CheckBoxList)
6.4.6 容器控件(Panel、Literal、View、MultiView)
6.4.7 圖像顯示和區(qū)域控制(Image、ImageMap)
6.5 ASP.NET內(nèi)置對象與狀態(tài)管理
6.5.1 ASP.NET提供的API
6.5.2 Page類及其擴充類
6.5.3 ASP.NET狀態(tài)管理
6.5.4 ASP.NET配置
6.6 頁面切換與頁間數(shù)據(jù)傳遞
6.6.1 從一個網(wǎng)頁轉(zhuǎn)到另一個網(wǎng)頁
6.6.2 網(wǎng)頁之間的數(shù)據(jù)傳遞
6.7 用戶控件
習(xí)題
第7章 ASP.NET AJAX
7.1 基本概念
7.1.1 ajax
7.1.2 ASP.NET AJAX
7.2 內(nèi)置的ASP.NET AJAX擴展控件
7.2.1 ScriptManager控件
7.2.2 UpdatePanel控件
7.2.3 UpdateProgress控件
7.2.4 Timer控件
7.3 AJAX控件工具包
7.3.1 彈出擴展
7.3.2 動畫擴展
7.3.3 顯示擴展
7.3.4 數(shù)據(jù)輸入擴展
7.3.5 數(shù)據(jù)選擇擴展
7.3.6 其他擴展
7.3.7 AJAX控件工具包中的獨立控件
習(xí)題
第8章 在ASP.NET中使用jQuery
8.1 jQuery UI及其基本操作
8.1.1 jQuery UI的選項和方法
8.1.2 拖動(draggable)
8.1.3 拖放(droppable)
8.1.4 改變元素大小(resizable)
8.1.5 選擇(selectable)
8.1.6 排序(sortable)
8.2 聯(lián)合使用ASP.NET AJAX和jQuery UI
8.2.1 PageRequestManager類
8.2.2 拉簾式折疊面板(accordion)
8.2.3 自動完成(autocomplete)
8.2.4 按鈕(button)
8.2.5 日期選擇(datepicker)
8.2.6 對話框(dialog)
8.2.7 進度條(progressbar)
8.2.8 滑動條(slider)
8.2.9 頁簽(tabs)
8.3 jQuery代碼和C#代碼之間的數(shù)據(jù)交互
8.3.1 通過HiddenField控件傳遞數(shù)據(jù)
8.3.2 通過HTML5的data特性傳遞數(shù)據(jù)
8.3.3 通過RegisterDataItem方法傳遞數(shù)據(jù)
8.3.4 通過jQuery ajax和Web服務(wù)實現(xiàn)jQuery和C#的交互
8.4 利用jQuery Validate實現(xiàn)客戶端數(shù)據(jù)驗證
8.4.1 調(diào)用不帶參數(shù)的Validate方法實現(xiàn)客戶端驗證
8.4.2 在Validate方法的參數(shù)中定義驗證選項
8.4.3 jQuery Validate提供的驗證規(guī)則
習(xí)題
第9章 ASP.NET數(shù)據(jù)訪問
9.1 LINQ基本技術(shù)
9.1.1 語言集成查詢(LINQ)
9.1.2 查詢表達式
9.1.3 Lambda表達式
9.2 ASP.NET數(shù)據(jù)綁定
9.2.1 數(shù)據(jù)綁定表達式
9.2.2 將數(shù)據(jù)源綁定到控件
9.3 利用實體框架訪問數(shù)據(jù)庫
9.3.1 實體框架基本概念
9.3.2 創(chuàng)建數(shù)據(jù)庫和實體數(shù)據(jù)模型
9.3.3 GridView控件
9.3.4 EntityDataSource控件
9.3.5 實體框架完整示例
習(xí)題
第3篇 ASP.NET MVC Web應(yīng)用程序
第10章 ASP.NET MVC基礎(chǔ)
10.1 基本概念
10.1.1 什么是MVC
10.1.2 Web窗體和MVC的兼容性
10.2 ASP.NET MVC 3 Web應(yīng)用程序模板
10.2.1 創(chuàng)建項目
10.2.2 查看MVC3應(yīng)用程序的結(jié)構(gòu)
10.3 ASP.NET路由
10.3.1 路由
10.3.2 URL路由
10.3.3 MVC應(yīng)用程序中的典型URL模式
10.4 控制器和操作方法
10.4.1 控制器
10.4.2 操作方法
10.4.3 創(chuàng)建控制器和操作方法
10.5 視圖
10.5.1 使用視圖呈現(xiàn)UI
10.5.2 布局頁和視圖頁
10.5.3 分部視圖
10.5.4 創(chuàng)建視圖頁
10.5.5 將參數(shù)從控制器傳遞到視圖
10.6 創(chuàng)建簡單的模型
習(xí)題
第11章 Razor視圖引擎
11.1 基本知識
11.1.1 Razor視圖引擎的優(yōu)點
11.1.2 Razor基本用法
11.1.3 在Razor視圖中引用.NET命名空間
11.2 Razor引擎提供的類和對象
11.2.1 視圖操作類
11.2.2 數(shù)據(jù)類型轉(zhuǎn)換類
11.2.3 HttpRequestBase對象和HttpResponseBase對象
11.2.4 HttpServerUtilityBase對象
11.2.5 其他對象
11.2.6 Razor引擎增加的數(shù)據(jù)庫操作方法
11.3 常用的HTML幫助器
11.3.1 @helper標記
11.3.2 form和input幫助器
11.3.3 在控制器中處理同一個視圖中的多個按鈕
11.4 具有特殊功能的HTML幫助器
11.4.1 URL幫助器
11.4.2 WebGrid幫助器
11.4.3 WebImage幫助器
11.4.4 Chart幫助器
11.4.5 Video幫助器
11.4.6 WebMail幫助器
11.4.7 其他HTML幫助器
習(xí)題
第12章 MVC中的數(shù)據(jù)訪問和客戶端驗證
12.1 實體框架開發(fā)模式和技術(shù)
12.1.1 實體框架開發(fā)模式
12.1.2 采用數(shù)據(jù)庫優(yōu)先開發(fā)模式創(chuàng)建實體數(shù)據(jù)模型
12.1.3 采用代碼優(yōu)先開發(fā)模式創(chuàng)建和訪問數(shù)據(jù)庫
12.2 數(shù)據(jù)驗證與強類型視圖
12.2.1 使用特性控制顯示格式和驗證規(guī)則
12.2.2 動態(tài)類型視圖和強類型視圖
12.3 MVC中的數(shù)據(jù)訪問和驗證示例
12.3.1 修改與學(xué)生管理有關(guān)的控制器和視圖
12.3.2 利用WebGrid幫助器實現(xiàn)分頁和排序
12.3.3 為學(xué)生信息頁添加搜索框
12.3.4 使用模板化幫助器顯示日歷
附錄 上機實驗
附錄A 基礎(chǔ)型實驗
實驗1 HTML5頁面設(shè)計
實驗2 CSS3樣式控制
實驗3 jQuery事件與動畫設(shè)計
實驗4 Canvas繪圖設(shè)計
實驗5 Web窗體界面交互
實驗6 AJAX和客戶端驗證
實驗7 ASP.NET數(shù)據(jù)訪問
附錄B 設(shè)計型實驗
B.1 需求說明
B.2 系統(tǒng)模塊功能要求
B.3 成果要求

章節(jié)摘錄

版權(quán)頁:   插圖:   在串口通信協(xié)議中,計算機向單片機連續(xù)發(fā)送的字符個數(shù),由一個更改為兩個,其他無任何變化。與“3.3單片機程序A—1”節(jié)相比較,單片機代碼的差異之處,主要在UARTO ISR()中斷服務(wù)程序的if(RIO){…}模塊中。 5.1單片機接收兩個連續(xù)字符的分析 1.單片機的硬件條件 在8051系列單片機中,名為SBUF的串行數(shù)據(jù)緩沖寄存器,實際是兩個寄存器:一個發(fā)送緩沖寄存器、一個接收緩沖寄存器。讀操作自動訪問接收緩沖寄存器、寫操作自動訪問發(fā)送緩沖寄存器。在C8051F020型單片機中,串行口UARTO的數(shù)據(jù)緩沖寄存器是SBUFO、串行口UART1的數(shù)據(jù)緩沖寄存器是SBUF1。 在單片機串口的所有工作方式下,接收到的數(shù)據(jù)被放入進一個保持(移位)寄存器,然后才可能進入接收緩沖寄存器SBUF;這就允許在軟件尚未讀取前一個數(shù)據(jù)字節(jié)的情況下,開始接收第二個數(shù)據(jù)字節(jié)。 2.單片機的接收工作分析 單片機UART的接收控制電路,監(jiān)測其RX信號狀態(tài):當(dāng)檢測到一個下降沿時,表明起始位出現(xiàn)了;在確定起始位之后,每接收到一個二進制數(shù)據(jù)位,就使接收(輸入)移位寄存器(共九位)移動一位。在C8051F020單片機的UARTO工作于方式1、(SCON0.5=SM20)=1設(shè)置下,當(dāng)接收到停止位的邏輯電平為1且接收中斷標志位RI0=0時,將接收到的8個數(shù)據(jù)位裝入到接收(輸入)數(shù)據(jù)緩沖器之中,并設(shè)置RIO=1。在這一個字符接收完畢之后,UART接收控制電路繼續(xù)測試RX信號。 在C8051F020單片機的UARTO工作于方式1設(shè)置下,當(dāng)串行通信波特率為115.2kbps時,接收一個字符(共十位)所用的時間為10/115.2=1/11.52≈0.0868ms=86.8us。在發(fā)送設(shè)備采取連續(xù)發(fā)送兩個字符的策略下,當(dāng)C8051F020單片機接收到第一個字符的停止位之后,只要在86.8us時間內(nèi),將這一個字符的8個數(shù)據(jù)位自移位寄存器裝入到接收緩沖寄存器SBUFO,然后復(fù)位RI0=0(其他操作無須執(zhí)行完畢),則就有條件將第二個字符的8個數(shù)據(jù)位裝入到接收數(shù)據(jù)緩沖器SBUFO中。顯然,這是非常簡單的任務(wù);但是,需要繼續(xù)分析較之UARTO ISR相同優(yōu)先級及更高優(yōu)先級的中斷函數(shù)的執(zhí)行時間。 在本設(shè)計中,系統(tǒng)時鐘SYSCLK=22.1184MHz,則對于單時鐘周期的指令,每一條指令的執(zhí)行時間為1/22.1184≈0.045us,1us可執(zhí)行22.1184條指令,19.53us可執(zhí)行19.53×22.1184≈432條指令;同樣在19.53us時間內(nèi),則可執(zhí)行432/2=216條雙時鐘周期指令。本設(shè)計中的UARTO_ISR中斷函數(shù),其RIO模塊中的執(zhí)行內(nèi)容很少。雖然ADCO_ISR的中斷優(yōu)先級高于UARTO_ISR,但ADCO_ISR函數(shù)中的代碼也不算長,且已知ADCO_ISR晦執(zhí)行頻率為19.53us,可推知,為了給UARTO_ISR中斷函數(shù)留有處理時間,則ADCO_ISR中斷函數(shù)的執(zhí)行時間必須小于19.53us。

編輯推薦

《單片機與計算機串口通信實踐》具有思路清晰、講解詳細的特點,從實際應(yīng)用出發(fā)、程序代碼經(jīng)過反復(fù)調(diào)試,可直接為采用Keilc的單片機編程者、采用VC++6.0的串口編程者使用。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    單片機與計算機串口通信實踐 PDF格式下載


用戶評論 (總計6條)

 
 

  •   庖丁解牛、堪稱串口通信的經(jīng)典書籍 !!
  •   這本書的內(nèi)容很好!很喜歡這本書
  •   今天收到書,很好,質(zhì)量不錯
  •   給同學(xué)買的,還行,講的還可以。
  •   內(nèi)容安排感覺不是太好,也沒見到代碼。
  •   講解非常細膩,看流程圖也很多、很詳細,能夠節(jié)省個人思考及總結(jié)的時間,故推薦。放假了,歡歡喜喜準備過大年!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7