初始化串列通訊埠 在啟始串列傳輸介面時有以下3個步驟:假設傳輸的通訊協定為9600bps,傳送8個位元資料,沒有同位位元,1個停止位元。

Slides:



Advertisements
Similar presentations
单片机 C 语言应用程序设计 主讲教师:廉哲 QQ: 电话: 办公室:综合楼 C318.
Advertisements

现代电子技术实验 ——综合实验之单片机部分
5.1 中断的概述 5.2 MCS - 51中断系统 5.3 中断系统的应用
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
寫作教學—標點符號.
第7章 AT89S51单片机的 串行口 1.
第一章 C语言概述 计算机公共教学部.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
针刀医学移位性颈椎病 的X线诊断 浙江省仙居县中医院 柴晓峰.
第 5 章 流程控制 (一): 條件分支.
補充: Input from a text file
兒 童 營 養 高雄長庚醫院營養治療科 營養師 洪凱殷.
第三章 控制结构.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
微處理機原理與應用 Chapter 1 簡介 Chung-Min Wu, Ph.D
Timer & KEYPAD 11/24.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
SWITCH&7-SEG元件控制 嵌入式作業系統實作 11/17.
第八章 数据通信.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
港口股份有限公司东源分公司 降本增效 部门:机械队流机二班 发言人:程广州.
微算機(二) 's UART mode0 input
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
第八章 数据通信.
C语言 程序设计基础与试验 刘新国、2012年秋.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
電子音樂 通訊系 B 楊穎穆.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第九章 MCS-51串行接口 9.1 串行数据通信概述 通 信 并行 一、并行通信和串行通信 串行 串行通信 数据是一位一位传送的
C语言概述 第一章.
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
程式結構&語法.
5-6 串列埠模式0輸出埠擴充實習.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
機台監控實務-RS232 實作目的 RS-232C是工業界相當常用的串列通訊介面,且 近年逐漸走向圖形監控,市面上圖控軟體更是如雨
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
含糖飲料的危機 設計者 :蔡慧萍、林漢良.
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
UART通信实验(二) McBSP软件模拟异步通信
#include <iostream.h>
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
微算機(二) 's UART mode1 communication
单片机应用技术 (C语言版) 第8章 串行通信接口
英語職涯規劃 移民署職場生涯 5.2.1善用慈濟資源‧提升職涯就業力.
单片机应用技术 (C语言版) 第4章 C51程序设计入门
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第1章 微型计算机基础.
Presentation transcript:

初始化串列通訊埠 在啟始串列傳輸介面時有以下3個步驟:假設傳輸的通訊協定為9600bps,傳送8個位元資料,沒有同位位元,1個停止位元。 步驟1:設定控制暫存器SCON 以串列傳輸模式1做資料傳送,並將接收致能,則相對SCON暫存器值可以做 如下設定: SM0 SM1 SM2 REN TB8 RB8 TI RI 0 1 0 1 0 0 0 0 其值為50H 程式為 : SCON=0X50;

初始化串列通訊埠 步驟2:設定計時器1工作模式 步驟3:設定鮑率 規劃TMOD暫存器,使用計時器1,工作在模式2,自動重新載入計數值。 GATE C/T M1 M0 GATE C/T M1 M0 0 0 1 0 0 0 0 0 其值為20H,程式為 : TMOD=0X20; 步驟3:設定鮑率 為了方便鮑率的設定,將8051單板上石英振盪晶體改為22MHz,當做系統工作時脈,傳輸的鮑率為9600 bps,所以設定計時器1為重新載入250(FA),對TH1寫入計數值,而TL1可以不管。 程式為 : TH1=0XFA;

初始化串列通訊埠 步驟5:設定串列傳送中斷旗號 設定串列傳送中斷產生旗號, 程式為 : TI=1; 令特殊目的暫存器SCON的位元1(TI)變為1。 因此將上述的5道指令合併,可以完成8051串列埠的初始化工作。初始化副程式設計如下:

初始化串列通訊埠 init_rs232() /* 初始化 RS232 通訊介面 */ /* 設定串列介面工作於模式1,接收資料致能 */ SCON=0x50; TMOD=0x20; /* 設定計時器1 工作於模式2 */ TH1 =0xFA; /* 設定鮑率為 9600 BPS */ TR1=1; /* 啟動計時器1 開始計數 */ TI=1; /* 設定串列傳送中斷產生旗號 */ }

四、燒錄程式 燒錄程式 J32 1-2, 3-4, 5-6 pin 短路 按RESET SW

RS-232串列埠單元 J32

Flash Magic燒錄軟體-找到rpc.hex

五、執行程式 燒錄程式 執行程式 J32 1-2, 3-4, 5-6 pin 短路 按RESET SW J32 1-2, 3-4pin 短路

Examples 1 –8051接收字元並傳送控制碼

命令0 0x01 0x00 沒意義的回覆 8051有在線上嗎 1 0x3F 8051在線上 命令1 2 0x02 命令2 3 0x05 選單命令 LabVIEW輸出 PC輸出 / 8051輸入 8051輸出 / PC接收 顯示結果 命令0 0x01 0x00 沒意義的回覆 8051有在線上嗎 1 0x3F 8051在線上 命令1 2 0x02 命令2 3 0x05 命令3 4 0x04

Example 2

8051有在線上嗎 1 0x3F 8051在線上 抓取timer 0的值 4 0x2B “+” TL0的值 傳回計數器的值 選單命令 LabVIEW輸出 PC輸出 / 8051輸入 8051輸出 / PC接收 顯示結果 命令0 0x01 0x00 沒意義的回覆 8051有在線上嗎 1 0x3F 8051在線上 命令1 2 0x02 命令2 3 0x05 抓取timer 0的值 4 0x2B “+” TL0的值 傳回計數器的值

#include <reg51.h> char *title="rpc IO51 rx data from PC.....\r\n"; delay(int d) { int i, j; for(i=0; i<d; i++) for(j=0; j<200; j++); } init_rs232() //設定8051串列通訊組態 { SCON=0x50; TMOD=0x20; TH1 =0xFA; TR1=1; TI=1;

tx_char(unsigned char c) { while(1) if(TI) break; TI=0; SBUF=c; } tx_str(char *str) { do { tx_char(*str++); while(*str!='\0');

char rx_char() { while(1) if(RI) break; RI=0; return SBUF; } init_timer() //設定8051計時器組態 init_timer() { TR0=1;

main() { char c; init_rs232(); while(1) { c=rx_char(); case 0x3f: tx_char(0x01); break; case 0x2b: //”+”號 tx_char(TL0); default: tx_char(0x00); } }

Example 3

命令0 0x01 0x00 沒意義的回覆 8051有在線上嗎 1 0x3F 8051在線上 顯示跑馬燈 2 0x2D “-” 0x02 選單命令 LabVIEW輸出 PC輸出 / 8051輸入 8051輸出 / PC接收 顯示結果 命令0 0x01 0x00 沒意義的回覆 8051有在線上嗎 1 0x3F 8051在線上 顯示跑馬燈 2 0x2D “-” 0x02 跑馬燈正在跑 命令2 3 0x05 抓取timer 0的值 4 0x2B “+” TL0的值 傳回計數器的值

sbit wled = P3^7; delay(int d) { int i, j; for(i=0; i<d; i++) for(j=0; j<200; j++); } //P3.7閃燈 led_bl() int i; for(i=0; i<4 ;i++) wled=0; delay(500); wled=1; delay(500);

//P1向左走閃燈 led_left() { char i; unsigned char c; P1=0x00; delay(100); c=1; /* 0000 0001 */ for(i=0; i<8; i++) P1=c; delay(200); c=c<<1; } //P1向右走閃燈 led_right() { char i; unsigned char c; P1=0x00; delay(100); c=0x80; /* 1000 0000 */ for(i=0; i<8; i++) P1=c; delay(200); c=c>>1; }

main() { char c; init_rs232(); while(1) { c=rx_char(); case 0x3f: tx_char(0x01); break; case 0x2b: //”+”號 tx_char(TL0); case 0x2d: led_bl(); default: tx_char(0x00); } }