当前位置:文档之家› CRC差错检验法在PC机与8031单片机串行通讯中的应用

CRC差错检验法在PC机与8031单片机串行通讯中的应用

CRC差错检验法在PC机与8031单片机串行通讯中的应用
CRC差错检验法在PC机与8031单片机串行通讯中的应用

收稿日期:2002-02-14

CRC差错检验法在PC机与8031单片机串行通讯中的应用The Application on Series Communication Between PC and Microprocessor Using CRC Error Detecting Method

刘 涛 廉海涛 马积勋

Liu T ao Lian Haitao M a Jix un

(西安交通大学电气工程学院 西安 710049)

(Elec t ri cal Engineering Schoo l,Xi'an Jiaot ong Uni v ersit y,710049)

摘 要 通过对不同校验方法的分析,介绍了一种适合P C机与8031单片机通讯差错校验的CR C方法并给出了其实现的软件流程图。

关键词 数据传输 差错校验 CRC

随着数据采集系统的功能日益强大,以及微型计算机的普及,在现代工业中,利用微机进行数据通讯的工业控制应用得也越来越广泛。特别是在大规模高精度数据采集系统中,对数据进行分析和计算将占用很大一部分单片机的资源,可以将采集到的数据通过串行通讯方式传送给PC机,由PC机来完成数据的处理工作。但是由于传输距离、现场状况等诸多可能出现的因素的影响,计算机与受控设备之间的通讯数据常会发生无法预测的错误。为了防止错误所带来的影响,在数据的接收端必须进行差错校验。虽然差错校验也可以完全由硬件来承担,但由于单片机和PC都具有很强的软件编程能力,这就为实施软件的差错校验提供了前提条件,而软件的差错校验有经济实用并且不增加硬件开销的优点。本文就是基于多功能应变测试系统而编写的主机和单片机之间的RS-485通讯系统,介绍了一种软件差错校验方案循环冗余差错校验法。

1 C RC法的原理

传统的差错检验法有:奇偶校验法,校验和法,行列冗余校验法等。这些方法都是在数据后面加一定数量的冗余位同时发送出去,例如在单片机的通讯方式2和3中,TB8就可以作为奇偶校验位同数据一起发送出去,在数据的接收端通过对数据信息进行比较、判别或简单的求和运算,然后将所得和接收到的冗余位进行比较,若相等就认为数据接收正确,否则就认为数据传送过程中出现错误。但是冗余位只能反映数据行或列的奇偶情况,所以这类检验方法对数据行或列的偶数个错误不敏感,漏判的概率很高。因此,此种方法的可靠性就差。

循环冗余码校验英文名称为Cy clical Redundan-cy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Erro r Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC 相比较,若两个CRC值不同,则说明数据通讯出现错误。由于这种方法取得校验码的方式具有很强的信息覆盖能力,所以它是一种效率极高的错误校验法。错误的概率几乎为零。在很多的仪器设备中都采用这种冗余校验的通讯规约。

根据应用环境与习惯的不同,CRC又可分为以下几种标准:

CRC-12码; CRC-16码;

CRC-CCITT码;!CRC-32码。

CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT码则是用来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。CRC-32码大都被采用在一种称为Po int-to-Point的同步传输中。

2 C RC校验码的生成过程

我们以最常用的CRC-16码作为例子进行说明。

冗余循环码包括2个字节,即16位二进制数。先预置16位寄存器全部为1,再逐步把每8位的数据信息进行处理。在进行CRC计算时只用8位数据位,起始位和停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC计算。

在计算CRC码时,8位数据与寄存器的数据相异或,得到的数据向低位移一位,用0填补最高位,再检查最低位。如果最低位为1,把寄存器的内容与预置数相异或;若最低位为0,则不进行异或计算。

这个过程一直重复8次,第8次移位后,下一个8位数据再与现在寄存器中的内容相异或,这个过程

21

《现代电子技术》2002年第4期总第135期

单 片 机

和以上一样重复8次。当所有的信息处理完后,最后寄存器中的内容即为CRC 码。这个CRC 码将由发送设备跟在数据的最后一起发送。

计算CRC 的步骤为:

(1)预置16位寄存器位十六进制数FFFF (即全为1)。称此寄存器位CRC 寄存器。

(2)把第一个8位数据与16位寄存器的低位相异或,将结果放于CRC 寄存器中;

(3)把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;

(4)如果最低位为0,重复第三步(再次移位);如果最低位为1,CRC 寄存器与多项式码进行异或;(5)重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;

(6)重复步骤2到5,进行下一个8位数据的处理;

(7)最后得到的CRC 寄存器即为CRC

码。

图1 单片机接收CRC 流程图

3 C RC 法在收发双方的软件实现

根据前面给出的CRC 码的生成过程,我们可以编制CRC 校验程序,根据通讯协议通过RS232-RS485电平转换接口和M AX 485,PC 机的串口与单片机的串行口进行串行异步通讯,需要发送的数据信息位8位,选取异或多项式为A 001(Hex )。

8031单片机CRC 算法的程序流程图如图1所示。同时给出汇编语言的源程序。

CRC 源代码:

CRCH,CRCL,CRCD 分别代表CRC 校验码的高8位,低8位和要处理的数据。

CRCPR O: NO P

CRCIN 1: M O V M OT IM ES,#00H

;设置寄存器,右移8次结束

M O V A ,CRCL

XRL A ,CR CD ;与处理数异或M O V CR CL ,A

CRCRU :CLR C ;右移一位

M O V A ,CRCH RRC A

M O V CR CH,A M O V A ,CRCL RRC A

M O V CR CL ,A

M O V A ,M O T IM ES ;判断循环次数CJN E A ,#08H,CR CR U N 1RET

CRCRU N 1:M O V A ,CRCL

CL R C RR C A

JN C CR CR U N E M O V A ,CRCL XR L A ,#01H M O V CRCL ,A M O V A ,CRCH XR L A ,#0A O H M O V CRCH,A

CRCRU N E:SJM P CRCRU

PC 机的CRC 程序思路与单片机完全相同,信息的处理、发送和接收可以用任何一种高级设计语言来实现。

本文主要讨论了用CRC 法进行差错校验的问题,接收方如果发现接收错误,则返回信息,要求主机重发数据;如果没有发现错误,则不反馈信息。由此可以提高收发效率。实践证明CRC 法在PC 机与8031

单片机异步通讯的差错检验中应用是十分有效的,可以在实际中得到广泛应用。

参 考 文 献

1 薛钧义,张彦斌.M CS -51系列单片微型计算机

及其应用.西安:西安交通大学出版社,19902 姚燕南,薛钧义.微型计算机原理.西安:西安电

子科技大学出版社,1995

Abstract T hr o ug h analy zing different er r or detecting metho ds ,a new CRC method is intr oduced w hich is fitted in the err or

det ect ing o f the communicatio n bet ween PC and micro pro cessor ,t hen the so ftwa re flow chart is giv en .

Keywords D ata T r anmissio n,Err or Detecting ,CRC

作者简介 刘 涛 西安交通大学电气学院电子学教研室研究生,主要从事电子测量技术领域的应用研究。

马积勋 西安交通大学电气工程学院电子学教研室,教授,主要从事电子测量技术及电子技术应用,侧重于模拟信号的处理及电子测量技术在各领域的应用。

22

CRC 差错检验法在PC 机与8031单片机串行通讯中的应用

单片机期末考试题

单项选择题: 1、C语言提供的合法的数据类型关键字是( B )。 A、Double B、short C、integer D、Char 2、片内RAM的20H~2FH为位寻址区,所包含的位地址是( B )。 A、00H~20H B、00H~7FH C、20H~2FH D、00H~FFH 3、MCS-51单片机的复位信号是( A )有效。 A、高电平 B、低电平 C、脉冲 D、下降沿 4、89S51的单片机的堆栈指针( A ) A、只能位于内部RAM低128B字节范围内C、可位于内部ERRAM内。 B、可位于内部RAM低256字节范围内 D、可位于内部RAM或外部RAM内 5、在串行口工作于移位寄存器方式时,其接收由( C )来启动。 A、REN B、RI C、REN和RI D、TR 6、存储16×16点阵的一个汉字信息,需要的字节数为( A ) A、 32 B、 64 C、 128 D、 256 7、在片外扩展一片2764程序存储器芯片要( B )地址线。 A、8根 B、13根 C、16根 D、20根 8、I2C总线的起始条件是:( D ) A、当SCL为低电平时,SDA发生由高到低的跳变 B、当SCL为低电平时,SDA发生由高到低的跳变 C、当SCL为高电平时,SDA发生由低到高的跳变 D、当SCL为高电平时,SDA发生由高到低的跳变 9、8255A是可编程的并行输入/输出接口芯片,内部有( B )个8位的并行口。 A、2个 B、3个 C、4个 D、5个 10、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为( C ) A、2MHz B、1MHz C、500kHz D、250kHz 11、线反转法识别有效按键时,如果读入的列线值全为1,则说明( A ) A、没有键被按下 B、有一个键被按下 C、有多个键被按下 D、以上说法都不对 12、利用下列( D )关键字可以改变工作寄存器组 A、interrupt B、sfr C、while D、using 13、当MCS-51单片机接有外部存储器,P2口可作为 ( D )。 A、数据输入口 B、数据的输出口 C、准双向输入/输口 D、输出高8位地址 14、关于本征函数,说法正确的是( A ) A、编译时直接将固定的代码插入当前行 B、需用LCALL语句调用 C、需用CALL语句调用 D、降低编译效率 15、C51中一般指针变量占用( C )字节存储。 A、一个 B、两个 C、三个 D、四个 16、使用宏来访问绝对地址时,一般需包含的库文件是( B ) A、reg51.h B、absacc.h C、intrins.h D、startup.h 17、单片机的定时器/计数器工作方式1是( D )。 A、8位计数器结构 B、2个8位计数器结构 C、13位计数结构 D、16位计数结构 18、执行#define PA8255 XBYTE[Ox3FFC],PA8255=Ox7e后存储单元Ox3FFC的值是(A) A、Ox7e B、8255H C、未定 D、7e

单片机原理及应用选择题答案

第一章习题 单项选择题 (1) 单片机又称为单片微计算机,最初 的英文缩写是____。 答案(D)
(6) 十六进制数 93 的二进制数是 ______。答案(A)
(2) Intel 公司的 MCS-51 系列单片机是 ______的单片机。 答案(C)
位 位
~
位 位 (3) 单片机的特点里没有包括在内的是 ______。答案(C) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4) 单片机的发展趋势中没有包括的是 ______。答案(B) A.高性能 B.高价格
"
C.低功耗 D.高性价比 (5) 十进制数 56 的二进制数是 ______。答案(A)
~
(7) 二进制数的十六进制数是______。 答案(B)
(8) 二进制数的十进制无符号数是 ______。答案(B)
>
(9) 二进制数的十进制有符号数是 ______。答案(B)
(10)十进制数 29 的 8421BCD 压缩码是 ______。答案(A)

:
(11)十进制数-36 在 8 位微机中的反码 和补码是______。答案(D)
A. 00100100B、B 、B 、B 、B (12)十进制数+27 在 8 位微机中的反码 和补码分别是______。答案(C) 、B 、B

、00011011B 、B (13) 字符 9 的 ASCII 码是______。答案 (D)
(14) ASCII 码 1111111B 的对应字符是 ______。答案(C)
+B=F ⊕B=F D.(A? B) ?=F (16)异或逻辑的表达式是______。答案 (C) *B=F +B=F
{
⊕B=F D.(A? B) ?=F (17)二进制数 B 与 00000000B 的“与”、 “或”和“异或”结果是______。答案(B) 、B、00000000B 、B、B 、B、00000000B 、00000000B、B (18)二进制数 B 与 01110111B 的“与”、 “或”和“异或”结果是______。答案(D) 、B、B 、B、01100110B
.
、01110111B、B 、B、B (19)下列集成门电路中具有与门功能的 是______。答案(D)

D.{ (15)或逻辑的表达式是______。答案(B)
*B=F
(20)下列集成门电路中具有非门功能的 是______。答案(B)

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.doczj.com/doc/5c14223865.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

单片机期末考试试卷以及参考答案

单项选择 1. PC的内容是: A 当前指令前一条指令的地址 B 下一条指令的地址 C 控制器中指令寄存器的地址 D 当前正在执行指令的地址 2. 在MOVX A,@DPTR指令中,DPTR的内容是 A 片内数据存储器地址 B 片外程序存储器地址 C 片内程序存储器地址 D 片外数据存储器地址 3.以下指令没有错误的是 A PUSH DPTR B SUBB R3,R0 C POP DPTR D ADD A,@R1 https://www.doczj.com/doc/5c14223865.html,B是 A 总线标准 B 可编程并行接口 C 可编程串行接口 D 译码器 5.在MCS-51中,为实现P0口数据和低位地址分时复用,应使用 A 地址寄存器 B 地址译码器 C 地址缓冲器 D 地址锁存器 6.MCS-51单片机启动复位后,程序计数器PC的内容为 A 0000H B 1000H C 2000H D 3000H 7.不能使MCS-51单片机的SP改变的指令是 A ANL 指令 B PUSH指令 C POP指令 D LCALL指令 8.MCS-51单片机PUSH指令的操作数是 A 位操作数 B 双字操作数 C 字节操作数 D 字操作数 9. 8031片外扩展数据存储器的最大容量是 A 16K B 64K C 8K D 32K 10.在LED显示中,为了输出位控和段控信号,应使用指令 A MOVX B MOV C MOVC D XCH 11.MCS-51执行子程序返回指令,从栈顶弹出的断点地址送给 A DPTR B CY C SP D PC 12.MCS-51执行出栈指令过程中,SP A 加2 B 减2 C 减1 D 加1 13.MCS-51的定时器/计数器是 A 两个16位的加法计数器 B 1个16位的加法计数器 C 两个16位的减法计数器 D 1个16位的减法计数器 14.MCS-51的MOV A,20H指令的源操作数的寻址方式是 A 直接寻址 B 位寻址 C 立即寻址 D 间接寻址 15.以下关于8155的叙述哪一个是错误的 A 是一个可编程的并行接口 B 有256个单元的RAM C 是一个可编程的接口芯片 D 是一个可编程的串行接口 16.D/A是 A 模数转换器 B 解调器 C 调制器 D 数模转换器

单片机选择题(有答案)教学文案

单片机选择题(有答案)

第一章 (C)1、89S51的内部程序存储器与数据存储器容量各为多少? A、64K B、128B B、4KB、 64KB C、4KB、128B D、8KB、256B (B)2、89S51比89C51多出了哪个功能? A、存储器加倍 B、具有WDT 工能 C、多了一个8位输入/输出端口 D、多了一个串行 口 (A)3、在DIP40封装的8×51芯片里,复位RESET引脚的引脚编号是什么? A、9 B、19 C、29 D、39 (C)4、在DIP40封装的8×51芯片里,接地引脚与电源引脚的引脚编号是什么? A、1、21 B、11.31 C、20、40 D、19、39 (A)5、下列哪个软件同时提供8×51的汇编语言以及C语言的编译器? A、Keil μVision3 B、JavaC++ C、Delphi D、 VisualC++ (A)6、在12MHz始终脉冲的8051系统里,一个机器周期有多长? A、1μs B、12μs C、1ms D、12ms (B)7、在8×51芯片里,哪个引脚用于控制使用内部程序存储器还是外部程序存储器? A、XTAL1 B、EA C、PSEN D、 ALE (D)8、下列哪个不是8051所提供的寻址方式? A、寄存器寻址 B、间接寻址 C、直接寻址 D、独立寻 址 (C)9、下列哪个寄存器是8×51内的16位寄存器? A、ACC B、C C、PC D、 R7 (C)10、开发微型计算机系统所使用的在线仿真器简称什么? A、ISP B、USP C、ICE D、SPI

第二章 (A)1、在Keil μVision3里开发的8051程序的第一步是什么? A、打开新的项目文件 B、调试与仿真 C、生成程序 D、产生执行文件 (D)2、在Keil μVision3里,若要打开项目,应如何操作? A、运行File/New命令 B、运行File/Project命令 C、运行Project/New命令 D、运行Project/New Project命令 (B)3、在Keil μVision 3里,若要将C源文件添加当前的项目应如何操作? A、运行运行File/Add Source File命令 B、选择项目窗口里的Source Group1项,单机鼠标右键,在弹出菜单中选 择Add Source to Group ‘Source Group1’选项 C、单击按钮 D、按键 (B)4、在Keil μVision3里,若要生成工程,应如何操作? A、运行Tools/Build命令 B、单击按钮 C、单击按钮 D、按键 (D)5、在Keil μVision3里,若要打开调试/仿真工具栏,应如何操作? A、单击按钮 B、单击按钮 C、单击按钮 D、单击按钮 (C)6、在Keil μVision3里,若要全速进行程序的调试/仿真,应如何操作? A、单击按钮 B、单击按钮 C、单击按钮 D、单击按钮 (B)7、同上题,若要单步执行程序的调试/仿真,且要能跳过子程序,应如何操作? A、单击按钮 B、单击按钮 C、单击按钮 D、单击按钮 (A)8、进行调试/仿真时,若想要观察输入/输出端口的状态,应如何处理? A、运行Peripherals/I/O-Ports命令 B、运行View/Ports命令 C、运行Edit/Ports命令 D、单击按钮 (C)9、下列哪个不是Keil C的预处理命令? A、#include B、#define C、#exit D、#if (B)10、下列哪个不是Keil C的数据类型? A、void B、string C、char D、float

汇编语言实现串口通信(PC和单片机间)教学文案

8.用C语言或汇编语言实现串口通信(PC和单片机间) 上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示 1 硬件电路的设计 MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51 机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。

总体设计按照整体设计思路方案绘制原理图如下所示: 2 系统软件设计 软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信, 1上位PC机与下位单片机异步串行通信的通信协议

单片机期末考试试题

单片机期末考试试题 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

单片机期末考试试题 01、单片机是将微处理器、一定容量的 RAM 和ROM以及?? I/O?? 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了???? 4??? KB的FLASH ROM,共有??? 5???? 个中断源。 3、两位十六进制数最多可以表示??? 256?? 个存储单元。 4、89C51是以下哪个公司的产品(?? C?? ) A、INTEL??? B、AMD??? C、ATMEL?? D、PHILIPS 5、在89C51中,只有当EA引脚接??? 高??? 电平时,CPU才访问片内的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由?? P0?? 口提供,高八位地址由?? P2?? 口提供,8位数据由??? P0?? 口提供。 9、在I/O口中,??? P0??? 口在接LED时,必须提供上拉电阻,??? P3?? 口具有第二功能。 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 15、89C51具有??? 64?? KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX 指令,访问片内RAM区时用MOV指令。T 17、在89C51中,片内RAM分为地址为?? 00H~7FH?? 的真正RAM区,和地址为80H~FFH的特殊功能寄存器(SFR) 区两个部分。 18、在89C51中,通用寄存器区共分为?? 4?? 组,每组??? 8?? 个工作寄存器,当CPU复位时,第?? 0?? 组寄存器为当前的工作寄存器。 19、是非题:工作寄存器区不允许做普通的RAM单元来使用。F 20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T

《单片机基础》练习试题和答案

单片机基础(第3版) 第1章计算机基础知识 (一)填空题 1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH)。十进制数-100的补码为(9CH),+100的补 码为(64H)。 2.在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。 3.8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。 4.可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。 5.已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。 6.若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。 7.在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。 8.设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A∧B=(00100100),A⊕B=(11011011)。 9.机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机 器数10001101的真值是(+206或-50)。 (二)单项选择题 1. 用8位二进制补码数所能表示的十进制数范围是(D) (A)-127 ~ +127 (B)-128 ~ +128 (C)-127 ~ +128 (D)-128 ~ +127 2. 下列等式中,正确的是(B) (A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 3. 程序与软件的区别是(C) (A)程序小而软件大(B)程序便宜而软件昂贵 (C)软件包括程序(D)程序包括软件 4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A) (A)地址(B)字节(C)列号(D)容量 5. 8位二进制数所能表示的最大无符号数是(B) (A)255 (B)256 (C)128 (D)127 6. 下列4个无符号数中,最小的数是(B) (A)11011001(二进制)(B)37(八进制) (C)75(十进制)(D)24(十六进制) 7. 下列字符中,ASCII码最小的是(B) (A)a (B)A (C)x (D)X 8. 下列字符中,ASCII码最大的是(C) (A)a (B)A (C)x (D)X 9. 有一个数152,它与十六进制数6A相等,那么该数是(B) (A)二进制数(B)八进制数(C)十进制数(D)十六进制数 第2章80C51单片机的硬件结构 (一)填空题 1.通过堆栈实现子程序调用,首先要把(PC)的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断 点送回(PC)。 2.80C51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器反相器)和芯片外跨接的(石英晶体振荡器 晶振)与(两个微调电容)。若调高单片机的晶振频率,则单片机的机器周期会变(短)。 3.通常单片机有两种复位操作,即(上电复位)和(手动复位)。复位后,PC值为(0000H),SP值为(07H),通用寄存 器的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H)到(07H)。 4.80C51单片机中,一个机器周期包含(6)个状态周期,一个状态周期又可划分为(2)个拍节,一个拍节为(1)个振 荡脉冲周期。因此,一个机器周期应包含(12)个振荡脉冲周期。 5.80C51中惟一一个可供用户使用的16位寄存器是(DPTR),它可拆分为两个8位寄存器使用,名称分别为(DPH)和 (DPL)。 6.单片机程序存储器的寻址范围由PC的位数决定。80C51的PC为16位,因此程序存储器地址空间是(64 KB)。(二)单项选择题 1. 下列概念叙述正确的是(D) (A)80C51中共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚

51单片机与PC串口通讯

目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -

单片机期末考试复习题与答案

一、选择题(每题 1 分,共 10分) 1.8031单片机的 ( D ) 口的引脚,还具有外中断、串行通信等第 二 功能。 2.单片机应用程序一般存放在( B ) a ) RAM b ) ROM c ) 寄 存器 d ) CPU 3.已知某数的BC [码为0111 0101 0100 0010 则其表示的十进制数 值为( B ) 4. 下列指令中不影响标志位CY 的指令有(D a ) ADD A , CLR c ) RRC A 5. CPU 主要的组成部部分为(A a )运算器、控制器 a ) 7542H b ) 7542 c d ) c )运算器、寄存器 d )运算器、指令译码器 a )P0 b ) P1 c )P2 d ) P3 20H b ) d ) INC A ) b )加法器、寄存器

a ) 16 4 c )8 7. 8031复位后,PC 与SP 的值为( B ) a ) 0000H , 00H b ) 0000H , 07H 07H d ) 0800H , 00H 8. 当需要从 MCS-51 单片机程序存储器取数据时, (B )。 a ) MOV A, @R1 MOVC A, @A + DPTR c ) MOVX A, @ R0 MOVX A, @ DPTR 9. 8031 单片机中既可位寻址又可字节寻址的单元是 a )20H b )30H 00H d ) 70H 10. 下列哪条指令是正确的( D ) a ) PUSH R2 ) ADD R0,A 6. INTEL 8051 CPU 是(C )位的单片 b ) d )准 16 c ) 0003H , 采用的指令为 b ) d ) (A )

单片机选择题有答案

第一章 (C)1、89S51的内部程序存储器与数据存储器容量各为多少? A、64K B、128B B、4KB、64KB C、4KB、128B D、8KB、256B (B)2、89S51比89C51多出了哪个功能? A、存储器加倍 B、具有WDT工能 C、多了一个8位输入/输出端口 D、多了一个串行口 (A)3、在DIP40封装的8×51芯片里,复位RESET引脚的引脚编号就是什么? A、 9 B、19 C、29 D、39 (C)4、在DIP40封装的8×51芯片里,接地引脚与电源引脚的引脚编号就是什么? A、1、21 B、11、31 C、20、40 D、19、39 (A)5、下列哪个软件同时提供8×51的汇编语言以及C语言的编译器? A、Keil μVision3 B、JavaC++ C、Delphi D、VisualC++ (A)6、在12MHz始终脉冲的8051系统里,一个机器周期有多长? A、1μs B、12μs C、1ms D、12ms (B)7、在8×51芯片里,哪个引脚用于控制使用内部程序存储器还就是外部程序存储器? A、XTAL1 B、EA C、PSEN D、ALE (D)8、下列哪个不就是8051所提供的寻址方式? A、寄存器寻址 B、间接寻址 C、直接寻址 D、独立寻址 (C)9、下列哪个寄存器就是8×51内的16位寄存器? A、ACC B、C C、PC D、R7 (C)10、开发微型计算机系统所使用的在线仿真器简称什么? A、ISP B、USP C、ICE D、SPI 第二章 (A)1、在Keil μVision3里开发的8051程序的第一步就是什么? A、打开新的项目文件 B、调试与仿真 C、生成程序 D、产生执行文件 (D)2、在Keil μVision3里,若要打开项目,应如何操作? A、运行命令 B、运行命令 C、运行Project/New命令 D、运行Project/New Project命令 (B)3、在Keil μVision 3里,若要将C源文件添加当前的项目应如何操作? A、运行运行Source File命令 B、选择项目窗口里的Source Group1项,单机鼠标右键,在弹出菜单中选择 Add Source to Group ‘Source Group1’选项 C、单击按钮 D、按键

实验单片机与PC机串口通信

实验单片机与PC机串口通信(C51编程)实验 要求: 1、掌握串行口的控制与状态寄存器SCON 2、掌握特殊功能寄存器PCON 3、掌握串行口的工作方式及其设置 4、掌握串行口的波特率(bondrate)选择 任务: 1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和PROTEUS分别仿真。 需要用到以下软件:KEIL,VSPDXP5(虚拟串口软件),串口调试助手,Proteus。 (1)虚拟串口软件、串口调试助手和KEIL C的联调 首先在KEIL里编译写好的程序。

打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。 左边栏最上面的是电脑自带的物理串口。点右边的addpair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 modecom39600,0,8,1 %分别设置com3的波特率、奇偶校验 位、数据位、停止位 assigncom3sout %把单片机的串口和COM3绑定到一 起。因为所用的单片机是

(以上参数设置注意要和所编程序中设置一致!) 打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。 实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。 2、以下在Proteus和串口调试助手实现的结果: 将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。 点击串口,可以对串口进行设置: 用串口调试助手发送数据,即可看到仿真结果。 实验参考程序源文件在exp2-comm文件夹中。

单片机原理及应用期末考试题试卷大全(含答案)

单片机模拟试卷001 一、选择题(每题1分,共10分) 1.8031单片机的( )口的引脚,还具有外中断、串行通信等第二功能。 a)P0 b)P1 c)P2 d)P3 2.单片机应用程序一般存放在() a)RAM b)ROM c)寄存器 d)CPU 3.已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为()a)7542H b)7542 c)75.42H d)75.42 4.下列指令中不影响标志位CY的指令有()。 a)ADD A,20H b)CLR c)RRC A d)INC A 5.CPU主要的组成部部分为() a)运算器、控制器 b)加法器、寄存器 c)运算器、寄存器 d)运算器、指令译码器 6.INTEL 8051 CPU是()位的单片机 a)16 b)4 c)8 d)准16 7.8031复位后,PC与SP的值为() a )0000H,00H b)0000H,07H c)0003H,07H d)0800H,00H 8.当需要从MCS-51单片机程序存储器取数据时,采用的指令为()。 a)MOV A, @R1 b)MOVC A, @A + DPTR c)MOVX A, @ R0 d)MOVX A, @ DPTR 9.8031单片机中既可位寻址又可字节寻址的单元是() a)20H b)30H c)00H d)70H 10.下列哪条指令是正确的() a)PUSH R2 b)ADD R0,A c)MOVX A @DPTR d)MOV @R0,A 二、填空题(每空1分,共30分) 1.一个完整的微机系统由和两大部分组成。2.8051 的引脚RST是____(IN脚还是OUT脚),当其端出现____电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到____电平,8051才脱离复位状态,进入程序运行状态,从ROM H单元开始取指令并翻译和执行。 3.半导体存储器分成两大类和,其中具有易失性,常用于存储。 4.求十进制数-102的补码(以2位16进制数表示),该补码为。 5.PC存放_______________,具有___________特性。在8051中决定程序执行顺序的是PC 还是DPTR?它是______位?(是,不是)SFG? 6.123= B= H。 7.8051内部有并行口,P0口直接作输出口时,必须外接;并行口作输入口时,必须先,才能读入外设的状态。 8.MCS-51的堆栈只可设置在,其最大容量为,存取数据的原则是。堆栈寄存器SP是位寄存器,存放。 9.中断处理的全过程分为以下3个段:、、。 10.定时和计数都是对进行计数,定时与计数的区别是

单片机考试试题(带答案)

一、选择题 访问片外数据存储器的寻址方式是( C ) A、立即寻址 B、寄存器寻址 C、寄存器间接寻址 D、直接寻址 堆栈数据的进出原则是( B ) A、先进先出 B、先进后出 C、后进后出 D、进入不出 若某存储器芯片地址线为12根,那么它的存储容量为( C ) A、1KB B、2KB C、4KB D、8KB 控制串行接口工作方式的寄存器是( C ) A、TCON B、PCON C、SCON D、TMOD 判断是否溢出时用PSW的(B )标志位,判断是否有进位时用PSW的( A )标志位。 A.CY B.OV C.P D.RS0 E.RS1 当串行口向单片机的CPU发出中断请求时,若CPU 允许并接受中断请求时,程序计数器PC的内容将被自动修改为( E )。 A.0003H B.000B C.0013H D.001BH E.0023H 子程序的返回和中断响应过程中的中断返回都是通过改变PC的内容实现的,而PC内容的改变是(D )完成的。 A.通过POP命令B.通过MOV 指令C.通过RET或RETI指令D.自动 单片机复位后,SP、PC、I/O口的内容为(C )A.SP = 07H PC = 00H P0 = P1 = P2 = P3 = FFH B.SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00H C.SP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFH D.SP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H 堆栈指针SP的作用是( B )。 A 指示堆栈的栈底 B 指示堆栈的栈顶 C 指示下一条将要执行指令的地址 D 指示中断返回的地址 下列指令中,不影响堆栈指针的指令是( B)。 A RET B JB bit,rel C LCALL addr16 D RETI 定时器T1的中断入口地址是( C ),从该地址开始一般可(F )。 A 0003H B 000BH C 001BH D 0013H E 连续存放中断服务程序 F 存放转移指令定时器T0的溢出标志TF0,在CPU响应中断后( B )。 A 由软件清零 B 由硬件清零 C 随机状态 D AB都可以 在进行串行通信时,若两机的发送与接收可以同时进行,则称为(D )。 A 半双工传送 B 单工传送 C 双工传送 D 全双工传送 在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是(B )。 A . PC B. PSW C. A D. SP 二、填空题 晶振的频率为6MHz时,一个机器周期为(2)μS。 欲使P1口的低4位输出0,高4位不变,应执行一条(ANL P1,#0F0H )命令。 MCS-51单片机系列有( 5 )个中断源,可分为( 2 )个优先级。 计算机三大总线分别为(数据总线)、(地址总线)和控制总线。 MCS-51指令系统中,ADD与ADDC指令的区别是(是否带进位)。 8051单片机有( 2 )个16位定时/计数器。MCS-51单片机有(4 )个并行输入/输出口,当系统扩展外部存储器或扩展I/O口时,(P0 )口作地

单片机期末考试试题(答案)

单片机期末考试试题(答案) 01、单片机就是将微处理器、一定容量得 RAM与ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成得微型计算机. 2、单片机89C51片内集成了 4 KB得FLASH ROM,共有 5 个中断源。 3、两位十六进制数最多可以表示 256 个存储单元。 4、89C51就是以下哪个公司得产品?(C) A、INTEL B、AMD C、ATMEL D、PHILIPS 5、在89C51中,只有当EA引脚接高电平时,CPU才访问片内得Flash ROM. 6、就是非题:当89C51得EA引脚接低电平时,CPU只能访问片外ROM,而不管片内就是否有程序存储器。T 7、就是非题:当89C51得EA引脚接高电平时,CPU只能访问片内得4KB空间。F 8、当CPU访问片外得存储器时,其低八位地址由P0 口提供,高八位地址由P2 口提供,8位数据由 P0 口提供。 9、在I/O口中,P0口在接LED时,必须提供上拉电阻, P3 口具有第二功能。 10、就是非题:MCS-51系列单片机直接读端口与读端口锁存器得结果永远就是相同得。F 11、就是非题:就是读端口还就是读锁存器就是用指令来区别得。T 12、就是非题:在89C51得片内RAM区中,位地址与部分字节地址就是冲突得。F 13、就是非题:中断得矢量地址位于RAM区中。F 14、MCS-51系列单片机就是属于( B )体系结构. A、冯诺依曼 B、普林斯顿 C、哈佛 D、图灵 15、89C51具有64 KB得字节寻址能力。 16、就是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX指令,访问片内RAM区时用MOV指令.T 17、在89C51中,片内RAM分为地址为 00H~7FH得真正RAM区,与地址为80H~FFH 得特殊功能寄存器(SFR)区两个部分。 18、在89C51中,通用寄存器区共分为 4 组,每组8个工作寄存器,当CPU复位时,第0组寄存器为当前得工作寄存器. 19、就是非题:工作寄存器区不允许做普通得RAM单元来使用。F

单片机练习题标准答案

单片机练习题答案 一、填空题 1、若单片机振荡脉冲频率为6MHz时,一个机器周期为______2μs________。 2、AT89C51单片机的XTAL1和XTAL2引脚是___外接晶振或时钟__引脚。 3、定时器/计数器的工作方式3是指的将定时器/计数器T0 拆成两个独立的8位计数器。 4、若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为__08~0FH____。 5、写出完成相应功能的汇编指令:将立即数11H送到R2____ MOV R2,#11H ____、使ACC.2置位____ SETB ACC.2__、使累加器的最低2位清零___ ANL A,#0FCH ___。 6、A/D转换的作用是将__模拟____量转为数字量。ADC0809是__8___位的A/D转换芯片。 7、8051的堆栈区一般开辟在用户RAM区的地址为30H~7FH。 8、所谓寻址,其实质就是__如何确定操作数的单元地址问题_。 9、若单片机振荡脉冲频率为12MHz时,一个机器周期为____1μs ______。 10、定时器中断请求发生在__计数溢出的时候_____。 11、中断响应时间是指__从中断请求发生直到被响应去执行中断服务程序所需的时间____。 12、通过CPU对I/O状态的测试,只有I/O已准备好时才能进行I/O传送,这种传送方 式称为____程序查询方式___。 13、在中断服务程序中现场保护和现场恢复期间,中断系统应处在__关中断__状态。 14、8051单片机的内部硬件结构包括了:中央处理器(CPU)、数据存储器(RAM)、程序存储器、和2个16位定时/计数器以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过内部总线相连接。 15、MCS-51的堆栈只可设置在RAM的地址为30H~7FH,堆栈寄存器sp是8位寄存器。 16、MCS-51单片机的P0~P4口均是并行I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的数据总线和地址总线,在P0~P4口中,P0为真正的双相口,P1—P3为准双向口;P3口具有第二引脚功能。 17、若LED为共阳极接法(即负逻辑控制),则字符3的八段代码值(a->dot)应当为__0D__H。 18、MCS-51片内20H~2FH范围内的数据存储器,既可以__字节__寻址又可以位寻址。

相关主题
文本预览
相关文档 最新文档