串行端口程序设计
串行接口实验报告

课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (13)实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。
具体过程如下:1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。
2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。
3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。
控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。
另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。
2.8251方式指令(端口地址2B9H)3.8251工作指令(端口地址2B9H)4.8251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz波特率=1200波特率因=16计数初值= 1000000/1200*16=527.程序流程框图4.程序代码Fxc.asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz nextmov dl,0ffh ;有键盘输入,读入字符mov ah,06hint 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend startSend .asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址buf3 byte 0mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz next; mov dl,0ffh ;有键盘输入,读入字符;mov ah,06h; int 21hmov dx,28ahin al,dxcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend start步进电机:1.K0=0,逆时针转;K0=1,顺时针转2.K1=0,慢转;K1=1,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jnz kai ;转反转test al,01 ;测试K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,9jnz S1call change9_0S1: inc al ;数据加1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;数据完成加1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复C口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试K2=1?jnz T2call change0_9S2: dec al ;数据减1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转rol al,1 ;数据右移mov buf2,almov dx,288h ;A口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复C口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endpchange9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验需要用到两种芯片8253和8251,两种芯片的作用分别是8253提供串行通讯所需的特定频率的脉冲信号,8251提供输入输出控制,所以在实验的过程中需要熟悉这两种芯片的方式字等使用规范,在仔细阅读了书本以及书本的编程实例后,基本摘掉了程序的设计方法实验过程中,出现了程序编译通过了但是不能运行的情况,后来经过检查发现是程序没有设置好的原因,要设置为编译后运行状态,否知只编译不运行,经过这次实验,知道了8253和8251两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。
VB 串口通信程序设计典型实例

V B串口通信程序设计典型实例利用VB开发串口通信程序既可以使用MSComm控件也可以调用Windows API函数实现。
不过,只要MSComm控件可以被选用,我们推荐选择此控件实现,因为MSComm控件的功能和API调用一样强,甚至比它还好且使用起来更加简单。
在本章提供的串口通信程序设计中,除了PC与PC串口通信外,PC与单片机、PC与智能仪表、PC与PLC、PC与GSM短信模块等串口通信任务的实现均采用MSComm控件。
6.1 PC与PC串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需3根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。
本设计通过两台PC串口3线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。
6.1.1 PC与PC串口通信程序设计目的(1)掌握PC与PC串口通信的线路连接方法。
(2)利用MSComm控件和API函数实现PC与PC串口通信的程序设计方法。
6.1.2 PC与PC串口通信程序设计用软、硬件本设计用到的硬件和软件清单如表6-1所示。
表6-1设计用软、硬件6.1.3 PC与PC串口通信程序硬件线路图线路说明,在计算机通电前,按图6-1所示将两台PC通过串口线连接起来:计算机A 串口COM1端口的TXD与计算机B串口COM1端口的RXD相连,计算机A串口COM1端口的RXD与计算机B串口COM1端口的TXD相连,计算机A串口COM1端口的GND与计算机B串口COM1端口的GND相连。
图6-1 PC与PC串口通信线路6.1.4 设计任务利用MSComm控件和VB API函数编写程序实现PC与PC串口通信。
任务要求,两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。
07实验七 Linux环境下的串行通信实验

连接驱动器的使能端,使得当RTS设置成高(逻辑1)时,有效RS485驱动器;设置RTS为低 时,使驱动器处于三态,这时候实际上从总线上断开了驱动器,从而允许其他节点可以使 用同一传输线。当使用RTS时,必须确保发送数据前将RTS设置成高,在发送完数据的最 后一位后,将RTS线设成低。。另一种可选方法是自动发送数据控制。这种方法要求特殊 的电路,当数据传输时自动使能或无效驱动器。它减少了软件开销和程序员的潜在错误。
五、基础知识
串行通信 1、基本原理 串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行 端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提 出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 2、串口通信的基本任务 (1) 实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实 现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的 帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2) 进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是 并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送 入计算机处理。因此串并转换是串行接口电路的重要任务。 (3) 控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选 择和控制的能力。 (4) 进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他 校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5) 进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用
第19章 51系列单片机

19.4.2 模式1的接收
• 在串行口的工作模式1中,RXD引脚为数据接收端。模式1接 收数据中的定时信号可以有两种,接收移位脉冲和接收字 符的检测脉冲。 • 串行口模式1接收数据时的移位脉冲,由定时器1的溢出信 号和波特率倍增位SMOD来共同决定,即由定时器1的溢出信 号经过16或32分频得到。 • 接收字符的检测脉冲,其频率是接收移位脉冲的16倍。在 接收一位数据的时候,有16个检测脉冲,以其中的第7、8、 9这3个脉冲作为真正的接收信号的采样脉冲。对三次采样 结果采取三中取二的原则来确定所检测到的值。采样这种 机制是为了抑制干扰,由于采样的信号总是在接收位的中 间位置,这样便可以避免信号两端的边沿失真,也可以防 止由于收发时钟频率不完全一致而带来的错误接收。
19.2.1 单片机串行接口的内部结构
• 51系列单片机的全双工串行口主要由数据发送缓 冲器、发送控制器TI、输出控制门、接收控制器、 输入移位寄存器、数据接收缓冲器等组成,如图 所示。
19.2.2 单片机串行接口的程序控制
• 51系列单片机的串行通信接口,通过控制寄存器 SCON和波特率选择特殊功能寄存器PCON来控制。 下面分别介绍这两个寄存器。 • 1.串行接口控制寄存器SCON
19.7.1 查询方式
• 假设发送方A需要把片内RAM中50H~6FH单元中的数 据,通过串行接口发送给接收方B。接收方B将接 收到的这32个字节数据后,存入片外1000H~101FH。 • 发送方和接收方均采用8051单片机,外接 fosc=6MHz的晶振,使用串行口工作方式2,波特率 规定为187.5kbit/s,需要使用波特率倍增位,即 置SMOD=1。 • 发送方定义TB8作为奇偶校验位。接收方进行奇偶 校验位RB8的判断,如果出错,则置F0标志位为1; 如果正确,则置F0标志位为0,然后返回。
RS232与RS485串行接口转换电路及编程实现

RS232与RS485串行接口转换电路及编程实现RS232和RS485都是串行通信接口,但它们在信号电平、传输距离和通信方式等方面有所不同。
RS232是一种单向通信的接口,常用于连接个人计算机和外部设备,如打印机、调制解调器等,信号电平为正负12V。
而RS485是一种半双工通信的接口,常用于远距离和多点通信,信号电平为正负2-6V。
为了实现RS232与RS485之间的转换,我们需要使用特定的电路和编程实现。
电路设计:1.信号电平转换:由于RS232和RS485的信号电平不同,所以我们需要使用电平转换电路将RS232的正负12V转换为RS485的正负2-6V。
这可以通过使用MAX202芯片来实现。
MAX202芯片是一个双向转换器,可以将RS232信号转换为RS485信号。
2.数据方向控制:RS485是一种半双工通信接口,需要通过数据方向控制线来实现发送和接收的切换。
可以使用一个双四极开关(如74HC4053)来控制数据方向。
其中A路和B路分别连接到RS485的A线和B线上,控制端连接到MCU的IO口。
3.电源供电:RS485通信线需要提供独立的5V供电,可以使用一个稳压芯片(如LM7805)来为RS485提供稳定的电源。
编程实现:1.初始化串口:在MCU上初始化串口,设置波特率、数据位、停止位等参数。
根据不同的MCU,具体的初始化方法会有所不同。
2.设置数据方向:根据发送或接收操作,通过控制IO口的电平来控制数据方向,将数据发送到RS485或从RS485接收数据。
3.发送数据:将要发送的数据写入串口缓冲区,并发送出去。
4.接收数据:通过轮询串口缓冲区检查是否有数据到达,若有数据则读取并进行相关处理。
总结:通过以上电路设计和编程实现,我们可以实现RS232与RS485之间的串行接口转换。
这样可以实现单向通信接口与远距离多点通信接口之间的互联。
在实际应用中,我们需要根据具体的系统需求和MCU的特性进行具体的电路和编程设计。
一种串口通信程序的设计与实现方法

效的方 法 , 它可以利 用 On o C mm 事件捕获 并 处理通 信 中发 生 的事件 或错误 , 时性 较 强。 实 O C mm 事 件是 MS o no C mm 控件提供的唯 一 的事 件 ,当有 数据到 达端 口或端 口状 态发 生 改变或有通讯错 误时 ,都将 触发 O C mm事 no 件 ,以获取 和处 理这些 通讯 事件 和通 讯中产 生的错误 。通 过查询 C mmE e t o v n 属性值 , 可以获 得关 于通 讯事 件和 通讯错误 的 完整信 息 ,进 而进 行处 理 。这 是 一种功 能很 强的处 理 串行 口错 误 的方 法 ,具 有 程序 响 应 及时 , 可 靠性 高 的优 点 。 示 : 查询方式是 程序通过查询 C mm vn 属 o E et C0 mP r : o r 0 t 设置 并返 回通信 端 口号 ; 性 的值 来判 断通信 过程 中的事 件或 错误 ,这 S ti g : e tn s 以字符 串的 形式设 置并 返 回波 特 种 方式 适合 于应 用程序 较小 、 实时性 要求 不 率 、 奇 偶 校 验 、 数 据 位 、 停 止 位 ; 是很 高的系统。 P rO e : o t P n 设置并返 回通信端 口的状态 , 也可 鉴于 以上 两种 通信 方式 的优缺 点 以及实 打 开和关 闭端 口;I p t 保 存和接 收从接 收 际应用 的需 求 ,本 系统 采 用查询 方式 来处理 n u: 缓 冲区获 得的数据 I up t 向发送缓 冲区发 通 信过 程 的 事件 或 错误 。 tu: O 送 命令和数据 ;Ib f rie 设 置接收缓 冲 n u f sz : e 区分配的 内存 数量 ;O tufri : 置发送 4远程门禁系统应用实例 ub f s e设 e z 缓 冲区分 配的内存数量 ; t rs od 设置为 4 1 系统设计 简介 R h eh l: . 某一 定值 , 每当接收缓 冲区收到该 定值个位字 当红 外线传 感 器感知 有 用户刷 卡时 ,读 符时 , 都会使 MS o C mm控件 产生 O C m 事 卡 器将卡 中信 息读 出 ,通过控 制 器传到 上位 n om 件 ; t rs od: 置为某一 定值 , 当传 输 机 ( 机 ) S h eh l 设 每 PC ,与 数据 库 中信 息 进 行 比对 , 缓 冲 区 中 的 字 符 个 数 少 于 该 定 值 时 , 如果 正确 ,上 位机 给控制 器发 送信 息 ,控 制 M sC0 m 控 件 产生 OnC0 m 事 件 ; 器 根 据 收 到 的 信 息 判 断是 否 需 要 开 门 和 关 m m Ip t d : n uMo e 确定 Ip t n u 属性取 回的数据格式 门 。 由于 该 门禁系 统是远 程控 制的 ,因此信 是 字 符 串 还 是 二 进 制 数 据 的 数 组 ; 息 需 要 通 过 以太 网传 输 ,控 制 器的 传 输 是 Ip te : n uL n 设置并返 回 Ip t n u 属性从接收缓 冲 Rs 2 2格式 的 ,而远 程 网络 数据 传输是 3 区读 取的字符 数 ; C mm: C mmE e t TC / P格 式的 ,因此 需要使 用接 口 换器 On o 当 o v n P I 转 属性 的值 变化时 , 产生 O C mm 事件 , 就 no 标志 完成 两种 数据 格式之 间的 转换 。整 个系统 的 发 生 了 一 个 通 信 事 件 或 一 个 错 误 ; 数据 传输 流 程如 图 1所 示 。 C mmE e t返 回最 近的通 信事件和 错误 ; 42 P o vn : . C机 单片机 串行通信 电路设计 C mE S n : o v e d在传 输缓冲 区中有 ̄Sheh l . rsod t 该 系统使 用的单片机 为凌阳 S C 0 1 P E6A 数 少 的 字 符 时 , 产 生 该 事 件 ; 单片机 ,利用单 片机 自带串 口与 P C机进行通 Co mEv e d c ie: S n Re ev 收到 Rt ehod个 字 信 , 中R - 3 接 口芯片完成 S C o l hrs l 其 S 22 P E 6A与 符 , 事件将 持续产生 直到用 Ip t 该 n u 属性从接 P C机 串 口 间的电平转换 。整个通信 电路 的 之 收缓 冲 区 中删 除数 据 。 框 架如图 2 ‘ 。根据实 际的需 要 , 卡器也 所示 读 32 M C m . S o m控件通信步骤 可以通过 RS 3 接 口芯片直接连 到上位机 -2 2 MS o m 控件进 行 串口通信的一 般步骤 上 。 Cm 为 : 置通 信对 象 、通 信 端 口号 以及 其他 属 4 3 通信 协议说明 设 . 性; 设定 通信协 议 ;打 开通 信端 口, 进行 数据 上 位 机 与 下 位 机 之 间 以 通 讯 速 率 的 传 送 ;关 闭 通 信 端 口 。 9 0b s 6 0 p /秒传输 数据 ,无奇 偶校验 ,八位 33 M a m , S o m控件通信方式 数 据 位 和 一位 停 止 位 。 MS o C mm 控 件有两 种处理通 信的 方式 , 4 4 串行通信 模块框架 . 即事 件 驱动 方式 和 查询 方 式 。 上位机 与 S C 0 1 P E 6 A单片机通 过一系列 应 答联络后 ��
AT89C51单片机与PC机串行通信的接口实现

AT89C51单片机与PC机串行通信的接口实现[摘要] 本文介绍了AT89C51单片机与PC机采用RS232C标准进行串行通信的接口实现。
在接口中采用MAX232作电平转换电路,简单的通信协议,PC 机用VB编程,AT89C51单片机采用中断收发方式。
文章给出了相应通信接口电路与程序。
[关键词] 通信协议RS232C 通信接口电路通信接口程序AT89C51是一种带4K字节可编程可擦除只读存储器(FLASH FPEROM)和128字节的存取数据存储器(RAM)的低电压,高性能CMOS8位微处理器。
采用了ATMEL公司的高密度、不容易丢失存储技术,与MCS-51系列的单片机兼容。
具有集成程度高、系统结构简单、价格低廉等优点被广泛应用到控制领域中。
但是在复杂的数据处理、良好的人机交互等方面不能满足需要,常采用PC 机与AT89C51单片机进行通信,AT89C51单片机(下位机)实时采集数据传送给PC机(上位机)处理,然后接收PC机处理的结果,并进行相应的控制的方式来弥补。
本文介绍单片机与PC机进行串行通信的一种接口实现。
一、接口电路的设计(一)接口逻辑电平的转换在PC机系统大都装有异步通信适配器,为标准的RS-232C接口。
RS-232C 为负逻辑,用+3V~+15V表示逻辑“0”, 用-3V~-15V表示逻辑“1”。
AT89C51单片机采用正逻辑TTL电平0和+5V.所以AT89C51与PC机通信时必须进行电平转换。
转换的方法有多种。
常采用MAXIM公司生产的专用的双向电平转换集成电路MAX232。
MAX232引脚排列与外围电路如图1所示。
图1MAX引脚及外围接口图(二)通信接口电路本文采用可靠性高的MAX232作电平转换芯片,选择其中一对发送器与接收器,PC机的串行口与MAX232的电平端口相连,MAX232的逻辑电平端口与单片机的串行口相连,接口电路如图2所示。
图2PC机与AT89C51通信接口图二、通信接口程序(一)通信协议PC机与AT89C51进行通信必须有一定的通信协议,本文采用简单的通信协议。
VC++中串行通信程序设计

O 引言
在很多情况下 , 远程监控和 自动化领域系统常见的通信
控件 的 C mmE et o vn 属性 以检查执行结果或者检查某 一事件 是否发 生。如果应用 程序较 小 , 并且 是 自成 一体 , 这种 方法
可 能是 更 可取 的 。
编程多为 串口通信 编程 。计算 机 串口编程在通信 软件 中有
C mmP r o ot
设 置 / 取控 件 对 应 的 串 行 口 获
S ti s et g n Pr e ot n Op Ipt nu
Oup t tu
设置/ 取波特率、 获 校验方式 、 数据位 、 停止位 打开/ 关闭通信 口 读取 数 据
发 送种 是利 用 Mioot 司提供 c sf 公 r 的 AcvX控 件 Mi ootC mmu i t n o t l te i c sf o r nc i sC nr 。本 文将 ao o 主要介绍第二种方法 。
话框的 MF C应用程序项 目, 命名为 my O 记住在设置 项 C m,
目选 项 时 必 须 选 上 Aci X C nrl 其 他 的 按 照 缺 省 设 置 。 t e ot s v o,
它的核心 内容是组 件对象 模型 C OM( m o e tO j t o C p nn be c Moa 。A t e d ) ci X控件包 括一 系列 的属性 、 法和事件 , 用 1 v 方 使
问串口, 一种是 利 用 Mioot 司提供 的 A t e c sf公 r ci X控件 Mi oot o v c sf C mmu i tn nrl r nc i s a o C t 编写 串行通 信程序 的方 o o
法, 并给 出了例 程 , 具有一定 的实用意义 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Makefile Make term term.c term.o tty.c
3、下载调试:到超级终端窗口,使用 NFS mount 开发主机的/arm2410cl 到/host 目录。进入exp\basic\03_tty 目录,运行 term,观察运行结果的正确性。
F
123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX
五、实现现象与实验结果:
六、实验小结:
通过本次实验对串行口在嵌入式系统中的应用有了初步的了解。在源程序的阅读理解中有一定的困难 由于对嵌入式实验平台和Linux的不熟悉,具体操作步骤操作起来有些困难和不理解,但是在多次尝试、调试后逐一解决了这些问题。
任课教师评语:
教师签字:年月日
armv4l-unknown-linux-gcc -c -o term.o term.c
armv4l-unknown-linux-gcc -o ../bi n/term term.o -lpthread
armv4l-unknown-linux-gcc -o te rm term.o -lpthread
3、学习使用多线程来完成串口的收发处理。
二、实验内容:
读懂程序源代码,学习终端I/O函数的使用方法,学习将多线程编程应用到串口的接收和发送程序设计中。
三、实验设备及器件:
硬件:UP-TECH S2410/P270 DVP嵌入式实验平台、PC机Pentium 500以上,硬盘10G以上。
软件:PC机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+ARM-LINUX开发环境。
[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/arm2410cl /host
[/mnt/yaffs]cd /host/exp/basic/03_tty/
[/host/exp/basic/03_tty]./term
read modem
send data
四、实验步骤:
1、阅读理解源码:进入 exp\basic\03_tty 目录,使用 vi 编辑器或其他编辑器阅读理解源代码。
2、编译应用程序:运行 make 产生 term 可执行文件
[root@zxt root]# cd /a rm2410cl/exp/basic/03_tty/
[root@zxt 03_tty]# make
云南师范大学信息学院
实验报告
学号:
姓名:
班级:
课程名称:嵌入式系统技术
实验名称:串行端口程序设计
实验性质:①综合性实验 √②设计性实验 ③验证性实验
实验时间:2013年4月3日
实验地点:学院310
1、实验目的:
1、了解在linux环境下串行程序设计的基本方法。
2、掌握终端的主要属性及设置方法,熟悉终端I /O函数的使用。