巧用单片机的奇偶校验位

合集下载

STM8UART奇偶校验的使用方法

STM8UART奇偶校验的使用方法
/* UART configuration -----------------------------------------*/ UART_Config();
while(1) {
/* Wait the byte is entirely received by UART2 */ while (UART2_GetFlagStatus(UART2_FLAG_RXNE) == RESET)
/* Enable UART2 */ UART2_Cmd(ENABLE); }
主程序可简化为:
void main(void) {
unsigned char val = 0x00;
/* CLK configuration -----------------------------------------*/ CLK_Config();
/* UART configuration -----------------------------------------*/ UART_Config();
while(1) {
/* Wait the byte is entirely received by UART2 */ while (UART2_GetFlagStatus(UART2_FLAG_RXNE) == RESET) { }
/* Get data */
val = UART2_ReceiveData8();
/* Wait until end of transmit */ while (UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET) { }
/* Send data */ /* Write one byte in the UART1 Transmit Data Register */ UART2_SendData8(val); } }

51单片机基础知识复习练习题(含答案)

51单片机基础知识复习练习题(含答案)

51单片机基础知识复习题(含答案)1.8051单片机的片内有(一)个16位的特殊功能寄存器。

2.MCS-51单片机的堆栈区应建立在(片内数据存储区底128字节单元)。

3.MCS-51单片机定时器工作方式1是指的(D)工作方式。

A.8位 3B.8位自动重装2C.13位0D.16位14.当需要从MCS-51单片机程序存储器取数据时,采用的指令为(B)。

A.MOV A, @R1)片内B.MOVC A, @A + DPTR或MOVC A,@A+PC (C.MOVX A, @ R0D.MOVX A, @ DPTR)片外5.8751单片机程序存储器的容量最大可扩展为(64K)。

B.64K6.如果某MCS-51单片机系统的定时/计数器0的中断服务程序放在程序存储区的3000H地址开始的一段空间内,此时跳转到定时/计数器0的中断服务程序的指令LJMP 3000H应放在( 000BH)开始的中断地址区A、0003H(外部中断0服务入口)B、0013H(外部中断1服务入口)C、0023H(串行口中断服务程序入口)D、000BH(定时/计数器0中断服务程序的开始地址区)E、001BH为定时/计数器1中断服务开始地址区F、0000H (系统复位后的入口)7.MCS-51系列单片机外扩存储器芯片时,4个I/O口中用作数据总线的是:(B)B、P0口(SDA /SCL 连接到总线的器件输出级必须是漏极开路或者是集电极开路,才能执行线与的功能)8.AJMP跳转空间最大可达到(2字节)A、2KB9.8051单片机中,唯一一个能出现在符号指令的16位寄存器是(B)A、P S WB、D P T R C 、P C D、B10.当需要从MCS-51单片机程序存储器取数据时,采用的指令为(B )A、MOV A,@R1片内B、MOVC A,@A+DPTR/@A+PCC、MOVX A, @R0片外D、MOVX A,@ DPTR11.8051单片机内有2个(16 )位的定时器。

奇偶位产生和校验电路

奇偶位产生和校验电路
奇偶校验位用于纠正数据传输过程中的错误
在数据传输过程中,如果发现数据存在错误,可以通过奇偶校验位来纠正这些错 误,保证数据的正确传输。
奇偶校验位在数据存储中的应用
奇偶校验位用于检测数据存储过程中的错误
在数据存储过程中,由于存储介质本身的问题或者存储设备的问题,可能会导致数据发生错误,奇偶校验位可以 检测出这些错误。
奇偶校验电路的功耗分析
功耗定义
功耗是指电路在工作过程中消耗的能量,通 常以瓦特为单位。
奇偶校验电路的功耗分析
奇偶校验电路在实现数据传输的可靠性时, 会增加额外的硬件开销,导致功耗增加。因 此,需要在保证可靠性的同时,尽可能降低
功耗。
05
奇偶校验电路优化设计
硬件优化设计
硬件资源优化
通过优化硬件资源,如减少逻辑门数 量、降低功耗等,提高奇偶校验电路 的性能和效率。
奇偶校验位用于纠正数据存储过程中的错误
在数据存储过程中,如果发现数据存在错误,可以通过奇偶校验位来纠正这些错误。
奇偶校验位在数据完整性检查中的应用
奇偶校验位用于检查数据的完整性
在数据传输或者存储过程中,如果数据发生了变化,奇偶校验位也会发生变化,因此可以通过比较奇 偶校验位的变化来检查数据的完整性。
奇偶校验电路通过增加冗余校验位来检测数据传输过程中的 错误,降低误码率。但随着冗余校验位的增加,会降低数据 传输效率。
奇偶校验电路的效率分析
效率定义
效率是指数据传输过程中,正确传输的 比特数与总比特数的比值,用于衡量数 据传输的有效性。
VS
奇偶校验电路的效率分析
奇偶校验电路通过增加冗余校验位来检测 数据传输过程中的错误,但冗余校验位的 增加会降低数据传输效率。因此,需要在 误码率和效率之间进行权衡。

单片机编程题练习

单片机编程题练习

乙机发送,甲机接收。

请画出电路图并写出初始化发送(查询)和接收(中断方式)程序。

2、口线P1.0接一个发光二极管,由定时器0控制,用于演示1秒钟亮、1秒钟暗的效果。

3、给80C51单片机扩展一片6116,0809和8155,要求0809采用中断方式,8通道工作;采用138译码选择芯片。

请画出系统连接图,写出各芯片的地址范围并写出8155内各口及其内部的RAM地址范围。

4、已知系统的连接如图所示,试编写程序实现下列功能:(1).编写上电显示程序,显示“123456”。

(2).编写主程序,功能为:当有键按下(0~7号)时,都显示键号;无键按下,保持原有显示状态。

5、选用DAC0832芯片产生一个三角波,要求幅值为0~2.5V。

1200bps,甲机发送数据88H(查询方式),乙机接收(中断方式)。

请画出电路图并编程实现上述功能。

7、已知一单片机应用系统如下图所示。

试回答问题并编写显示程序,以1秒为间隔,亮暗相间,显示“88888888”。

(1).写出各口的地址和控制字A口地址:B口地址:C口地址:控制口地址:控制字:(2).显示程序8、已知ADC0809单片机的连接如下图所示,试写出启动0809第3通道A/D转换的程序段。

(1)、把外部2000H内容送到内部RAM的20H单元。

(2)、找出20H~22H三个单元中的最大数,放在A累加器中。

9、编写程序完成以下功能:每响应一次外部中断,发光二极管亮一秒钟。

六、简单编程题:(1)、用间接寻址方式,把外部20H内容送到内部RAM的20H单元。

(2)、依据第四题接线图,写出启动0809第3通道A/D转换的程序段。

(3)、编写串行口方式1串行发送初始化程序。

(省略波特率发生器初始化)。

10、假定甲乙机以方式1进行串行数据通信,晶振=6MHz,要求波特率为1200。

甲机发送,乙机接收。

请画出电路图并计算出波特率,写出初始化发送和接收程序。

11、当系统选用12MHz晶体振荡器时,由定时器0控制产生周期为4ms(脉冲宽度为2ms)的方波序列(采用中断方式),并由P1.0输出,请编写实验程序。

51单片机基础知识复习练习题含答案

51单片机基础知识复习练习题含答案

51单片机根底知识复习题〔含答案〕1.8051单片机的片有〔一〕个16位的特殊功能存放器。

2.MCS-51单片机的堆栈区应建立在〔片数据存储区底128字节单元〕。

3.MCS-51单片机定时器工作方式1是指的〔D〕工作方式。

A.8位3 B.8位自动重装2 C.13位0 D.16位1 4.当需要从MCS-51单片机程序存储器取数据时,采用的指令为〔B〕。

A.MOV A, R1〕片B.MOVC A, A + DPTR或MOVC A,A+PC〔C.MOV* A, R0 D.MOV* A, DPTR〕片外5.8751单片机程序存储器的容量最大可扩展为〔64K〕。

B.64K6.如果*MCS-51单片机系统的定时/计数器0的中断效劳程序放在程序存储区的3000H地址开场的一段空间,此时跳转到定时/计数器0的中断效劳程序的指令LJMP 3000H应放在( 000BH)开场的中断地址区A、0003H〔外部中断0效劳入口〕B、0013H〔外部中断1效劳入口〕C、0023H〔串行口中断效劳程序入口〕D、000BH〔定时/计数器0中断效劳程序的开场地址区〕E、001BH为定时/计数器1中断效劳开场地址区F、0000H(系统复位后的入口)7.MCS-51系列单片机外扩存储器芯片时,4个I/O口中用作数据总线的是:(B)B、P0口〔SDA /SCL 连接到总线的器件输出级必须是漏极开路或者是集电极开路,才能执行线与的功能〕8.AJMP跳转空间最大可到达〔2字节〕A、2KB9.8051单片机中,唯一一个能出现在符号指令的16位存放器是〔B〕A、PSWB、DPTRC、PCD、B10.当需要从MCS-51单片机程序存储器取数据时,采用的指令为〔B 〕A、MOV A,R1片B、MOVC A,A+DPTR/A+PCC、MOV* A, R0片外D、MOV* A, DPTR11.8051单片机有2个〔16〕位的定时器。

B、1612.8031单片机当允许CPU响应串行口的中断请求时,共IE中的( A )位必须为1。

单片机课后习题答案

单片机课后习题答案

单片机课后习题答案思考题与习题部分参考答案第1章答案1.解:MCS-51为主流产品。

MSP430的功能较强。

是一种特低功耗的Flash微控制器。

主要用于三表及超低功耗场合。

EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。

具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。

具有优越的数据处理性能,采用RISC结构设计。

PIC系列8位单片机是Microchip公司的产品。

CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。

Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。

其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。

AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU 直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。

端口有较强的负载能力,可以直接驱动LED。

支持ISP、IAP,I/O口驱动能力较强。

2.解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。

CPU是整个单片机的核心部件,由运算器和控制器组成。

运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。

控制器是由程序计数器PC (Program Counter)、指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)、定时控制逻辑和振荡器OSC等电路组成。

CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR 中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。

程序存储器(ROM)用于存储程序、常数、表格等。

单片机串行通信的奇偶校验位

单片机串行通信的奇偶校验位

单片机串行通信的奇偶校验位在单片机的串行通信中,为了保证数据的正确性,通常会使用奇偶校验位来进行数据校验。

奇偶校验位是一种简单有效的数据校验方法,它可以检测出数据传输过程中的错误,并进行纠正。

本文将从奇偶校验位的原理、应用和实现方法三个方面进行介绍。

一、奇偶校验位的原理奇偶校验位是通过在数据传输时添加一个校验位来实现的。

校验位的值可以是0或1,它的值是根据数据位中1的个数来确定的。

如果数据位中1的个数是偶数,那么校验位的值就是0;如果数据位中1的个数是奇数,那么校验位的值就是1。

在接收端,接收到数据后,再次计算数据位中1的个数,如果计算出来的结果与接收到的校验位不一致,就说明数据传输过程中出现了错误。

二、奇偶校验位的应用奇偶校验位广泛应用于串行通信中,例如RS232、RS485、SPI、I2C等通信协议中。

在这些通信协议中,奇偶校验位可以有效地检测出数据传输过程中的错误,从而保证数据的正确性。

在实际应用中,奇偶校验位通常被用于传输重要的数据,例如密码、控制指令等。

三、奇偶校验位的实现方法在单片机中实现奇偶校验位通常有两种方法:硬件实现和软件实现。

硬件实现是通过单片机内部的硬件电路来实现奇偶校验位的计算和校验。

在硬件实现中,单片机内部的UART模块通常都会提供奇偶校验位的功能。

在使用UART进行串行通信时,只需要设置相应的参数即可开启奇偶校验位的功能。

软件实现是通过单片机的程序来实现奇偶校验位的计算和校验。

在软件实现中,需要编写相应的程序来计算数据位中1的个数,并根据计算结果来确定校验位的值。

在接收端,同样需要编写相应的程序来计算接收到的数据位中1的个数,并与接收到的校验位进行比较,从而判断数据传输是否正确。

总之,奇偶校验位是一种简单有效的数据校验方法,它可以在串行通信中保证数据的正确性。

在实际应用中,我们可以根据具体的需求选择硬件实现或软件实现的方法来实现奇偶校验位的功能。

天津理工大学单片机经典练习

天津理工大学单片机经典练习

天津理工大学单片机经典练习第一篇:天津理工大学单片机经典练习须知:1.大作业的所有题目都应在PROTEUS 7.7(注意:只能使用7.7版本)仿真环境下运行通过。

大作业完成后发至:*************题目51 串行口方式1的应用设计要求单片机甲、乙双机进行串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。

甲机设置为只能发送不能接收的单工方式。

要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。

双方晶振均采用11.0592MHz。

题目52 串行口方式3的应用设计要求甲乙两个单片机进行方式3(或方式2)串行通讯。

甲机将8个流水灯控制数据发送给乙机,乙机再利用该数据点亮其P1口的8个LED。

方式3比方式1多了一个可编程位TB8,该位一般作奇偶校验位。

乙机接收到的8位二进制数据有可能出错,需进行奇偶校验,其方法是将乙机的RB8和PSW的奇偶校验位P进行比较,如果相同,接收数据;否则拒绝接收。

题目53 并行接口芯片82C55的应用设计要求根据题53图,要求82C55的PC口工作在方式0,并从PC5脚输出连续的方波信号,频率为500Hz,并用示波器观察。

题53图82C55的接口电路题目54 利用74LSTTL 扩展的I/O接口的应用设计要求电路如题54图所示,编写程序把开关S7~ S0的状态通过74LS373输出端的8个发光二极管显示出来。

例如当S5合上时,则LED5点亮。

题54图利用74LSTTL 扩展的I/O接口1题目55测量INT引脚上正脉冲的宽度设计要求:利用定时器/计数器门控制位GATEx的应用:测量INT1引脚上正脉冲的宽度(该脉冲宽度应该可调),并在6位LED数码管上以机器周期数显示出来。

其方法如题55图所示。

题55图利用GATE位测量正脉冲的宽度题目56 单片机之间的双向通信设计要求:两片单片机(称为甲机和乙机)之间采用方式1双向串行通信。

《微机原理与单片机技术》试卷及答案(2)

《微机原理与单片机技术》试卷及答案(2)

东莞理工学院本科试卷(B 卷)2012--2013学年第1学期《微机原理与单片机技术》试卷及评分标准开课单位:电子工程学院考试形式:闭卷题序一二三四五六七八总分得分评卷人一、填空题(共10分每空1分)1.MCS-51单片机系统晶振为6MH,则机器周期=2μS ,最长指令执行时间为8μS 。

2.51单片机的当前工作寄存器组由SFR 程序状态寄存器PSW 中的RS1、RS0来决定。

3.8032单片机片内ROM 容量为0KB,系统复位时,SP 的内容为07H ,P0~P3口的内容均为FF H。

4.89C51单片机内部定时器/计数器工作方式3时,将T0拆成两个独立的8位计数器,而T1此时通常作为串行口波特率发生器使用。

5.地址线14根可选16K 个存储单元,2KB ROM 的首地址为2000H,则末地址为23FF H.二、判断题(共10分每题2分)(正确的打√,错误的打×)1.中断初始化时,对中断控制器IE 的设置,只可使用位操作,而不能使用字节操作。

2.单片机系统扩展时,使用锁存器锁存高8位地址,锁存信号来自CPU 的ALE 引脚。

3.Rn 寄存器寻址与寄存器间接寻址间不能相互传送,片内RAM 二单元允许直接传送。

4.堆栈指针SP 占据片内RAM 81H 单元,若其内容是52H ,当执行完指令RET 后,SP 内容变为51H 。

5.I 2C 数据传输时,每个字节必须是8位,先送高位,且每个字节后面都要跟随应答位。

答:1(×)2(×)3(√)4(×)5(√)三、选择题(共10分每题2分)1.当执行MOV P1,#0FFH 和MOV A,P1指令后,累加器A 里的内容一定是。

A.0FFH B.P1引脚状态 C.P1锁存器内容2.51单片机访问片外RAM 时采用的指令只有类指令,且只能是寻址方式。

A.MOV,直接 B.MOVX,间接 C.MOVC,间接D MOVX,变址3.MOV P2,#0FFH MOV R0,#20H MOVX A,@R0上述指令序列是将存储器单元的内容送给A。

单片机常用校验方法

单片机常用校验方法

常见校验算法一、校验算法奇偶校验(单字节奇偶校验和多字节奇偶校验)MD5校验求校验和BCC(Block Check Character/信息组校验码),常说的异或校验方法CRC(Cyclic Redundancy Check/循环冗余校验)LRC(Longitudinal Redundancy Check/纵向冗余校验)二、奇偶校验内存中最小的单位是比特,也称为“位”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。

不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。

而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。

在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数,那么在校验位定义为1,反之为0。

当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。

从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误三、MD5校验MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc 发明,由MD2/MD3/MD4 发展而来的。

MD5的实际应用是对一段Message(字节串)产生fingerprint(指纹),可以防止被“篡改”。

举个例子,天天安全网提供下载的MD5校验值软件WinMD5.zip,其MD5值是1e07ab3591d25583eff5129293dc98d2,但你下载该软件后计算MD5 发现其值却是81395f50b94bb4891a4ce4ffb6ccf64b,那说明该ZIP已经被他人修改过,那还用不用该软件那你可自己琢磨着看啦。

单片机网上课程作业第七章答案

单片机网上课程作业第七章答案

1. 串行数据传送的主要优点和用途是什么?答:串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。

主要用于多个单片机系统之间的数据通信。

2.简述串行口接收和发送数据的过程。

答:以方式一为例。

发送:数据位由TXT端输出,发送1帧信息为10为,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送。

发送开始时,内部发送控制信号/SEND变为有效,将起始位想TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。

8位数据位全部完毕后,置1中断标志位TI,然后/SEND信号失效。

接收:当检测到起始位的负跳变时,则开始接收。

接受时,定时控制信号有2种,一种是位检测器采样脉冲,它的频率是RX时钟的16倍。

也就是在1位数据期间,有16个采样脉冲,以波特率的16倍的速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。

3.帧格式为1个起始位,8个数据位和1个停止位的异步串行通讯方式是方式( 1 )。

4.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有3种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD/32×定时器T1的溢出率方式2的波特率=2SMOD/64×fosc 方式3的波特率=2SMOD/32×定时器T1的溢出率5.假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“A”的帧格式。

起始位0 1 0 0 0 0 0 0 校验位停止位6.判断下列说法是否正确:(A)串行口通讯的第9数据位的功能可由用户定义。

奇偶验证

奇偶验证
TI=0;
}
else
{
P0=rcvd_num;
ACC='c';
TB8=P;
ES=0;
if(chk_error)
{
ACC='e';
TB8=P;
SBUF='e';
while(!TI);
uchar rcvd_num;
bit chk_error;
bit rcvd_ok;
void init(void);
void main
{
if(rcvd_ok)
{
rcvd_ok=0;
TH1=0xfd; //初值装载,波特率9600
TL1=0xfd;
SCON=0x50; //串口工作模式3
EA=1; //开总中断
ES=1; //开串行中断
TR1=1; //启动定时器1
}
void serial() interrupt 4
在通信中要求单字节偶校验,很少碰到在这里校验的,一般都是帧校验就可以了,但是为了提高精度,就加了偶校验。
那么用C语言怎么来处理单片机收发的偶校验问题呢?
直接使用项目中的要求:波特率:9600,偶检验,停止位1,数据位 51单片机奇偶校验C51程序 采用偶校验,单片机串口方式3,9位数据,最后一位是奇偶校验位。
如果传送的8为数据位的1的个数为偶数 则 P=0 9位数据1的个数为偶数 正确 将P中值送给TB8 作为要发送到第九位数据
3 接受数据时,把接受的数据先送给累加器A,如果接受的第九位RB8=P 则说明接受的数据正确
否则不对 需要对方重新发送。
1、在使用串口之前,应对其进行初始化,步骤如下:

单片机大作业题目51-70

单片机大作业题目51-70

须知:1. 大作业的所有题目都应在PROTEUS 7.5(注意:只能使用7.5版本)仿真环境下运行通过。

2. 要求:(1)在keil IDE(μvision3)中完成应用程序设计、并编译;(2)在PROTEUS 7.5下的ISIS Professional中完成电路设计、调试与仿真通过。

题目51 串行口方式1的应用设计要求单片机甲、乙双机进行串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。

甲机设置为只能发送不能接收的单工方式。

要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。

双方晶振均采用11.0592MHz。

题目52 串行口方式3的应用设计要求甲乙两个单片机进行方式3(或方式2)串行通讯。

甲机将8个流水灯控制数据发送给乙机,乙机再利用该数据点亮其P1口的8个LED。

方式3比方式1多了一个可编程位TB8,该位一般作奇偶校验位。

乙机接收到的8位二进制数据有可能出错,需进行奇偶校验,其方法是将乙机的RB8和PSW的奇偶校验位P进行比较,如果相同,接收数据;否则拒绝接收。

题目53 并行接口芯片82C55的应用设计要求根据题53图,要求82C55的PC口工作在方式0,并从PC5脚输出连续的方波信号,频率为500Hz,并用示波器观察。

题53图82C55的接口电路题目54 利用74LSTTL 扩展的I/O接口的应用设计要求电路如题54图所示,编写程序把开关S7~ S0的状态通过74LS373输出端的8个发光二极管显示出来。

例如当S5合上时,则LED5点亮。

题54图利用74LSTTL 扩展的I/O接口题目55测量INT1引脚上正脉冲的宽度设计要求:利用定时器/计数器门控制位GATEx的应用:测量INT1引脚上正脉冲的宽度(该脉冲宽度应该可调),并在6位LED数码管上以机器周期数显示出来。

单片机第七章习题参考答案

单片机第七章习题参考答案

第七章习题参考答案一、填空题1、在串行通信中,有数据传送方向为单工、半双工和全双工三种方式。

2、要串口为10位UART,工作方式应选为方式1 。

3、用串口扩并口时,串行接口工作方式应选为方式0 。

4、计算机的数据传送有两种方式,即并行数据传送和串行数据传送方式,其中具有成本低特点的是串行数据传送方式。

5、串行通信按同步方式可分为异步通信和同步通信。

6、异步串行数据通信的帧格式由起始位、数据位、奇偶校验位和停止位组成。

7、串行接口电路的主要功能是串行化和反串行化,把帧中格式信息滤除而保留数据位的操作是反串行化。

8、专用寄存器“串行数据缓冲寄存器”,实际上是发送缓冲寄存器和接收缓冲寄存器的总称。

9、MCS-51的串行口在工作方式0下,是把串行口作为同步移位寄存器来使用。

这样,在串入并出移位寄存器的配合下,就可以把串行口作为并行输出口使用,在并入串出移位寄存器的配合下,就可以把串行口作为并行输入口使用。

10、在串行通信中,收发双方对波特率的设定应该是约定的。

11、使用定时器/计数器设置串行通信的波特率时,应把定时器/计数器1设定作方式 2 ,即自动重新加载方式。

12、某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。

当该串行口每分钟传送1800个字符时,则波特率应为300b/s 。

解答:串口每秒钟传送的字符为:1800/60=30个字符/秒所以波特率为:30个字符/秒×10位/个字符=300b/s13、8051单片机的串行接口由发送缓冲积存器SBUF、接收缓冲寄存器SBUF 、串行接口控制寄存器SCON、定时器T1构成的波特率发生器等部件组成。

14、当向SBUF发“写”命令时,即执行MOV SBUF,A 指令,即向发送缓冲寄存器SBUF装载并开始由TXD 引脚向外发送一帧数据,发送完后便使发送中断标志位TI 置“1”。

15、在满足串行接口接收中断标志位RI=0 的条件下,置允许接收位REN=1 ,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1,当发读SBUF命令时,即指令MOV A,SBUF 指令,便由接收缓冲寄存器SBUF取出信息同过8051内部总线送CPU。

单片机串口通信奇偶校验

单片机串口通信奇偶校验

单片机串口通信奇偶校验在串口通信中,每个数据位都需要通过传输线路进行传输,传输过程中可能会出现噪声、电磁干扰等干扰因素,从而导致传输的数据出错。

为了避免这种情况的发生,通常采用奇偶校验的方式来保证数据的正确性。

奇偶校验是一种简单的校验方法,通过在传输的数据位中添加一位校验位来保证数据的正确性。

校验位的取值可以是“奇校验”或“偶校验”,具体来说,当数据位中“1”的个数为奇数时,奇校验位的取值为“0”;当数据位中“1”的个数为偶数时,奇校验位的取值为“1”;同理,偶校验位的取值则正好相反。

在单片机中实现奇偶校验非常简单,只需要在发送数据的函数中添加校验位的计算和发送即可。

例如,在使用UART发送数据时,可以在发送函数中添加如下代码:```cunsigned char parity = 0; // 奇偶校验位for (i = 0; i < data_len; i++) {if (data[i] == '1') {parity++;}}if (parity % 2 == 1) {// 奇校验UART_SendData('0');} else {// 偶校验UART_SendData('1');}```在接收数据时,需要再次进行奇偶校验来验证数据的正确性。

例如,在使用UART接收数据时,可以在接收函数中添加如下代码:```cunsigned char parity = 0; // 奇偶校验位for (i = 0; i < data_len; i++) {if (data[i] == '1') {parity++;}}if (parity % 2 != parity_bit) {// 校验失败,数据出错} else {// 校验通过,数据正确}```值得注意的是,奇偶校验并不能保证数据的百分之百正确,只能在一定程度上提高数据传输的正确率。

巧用8051单片机的奇偶校验位

巧用8051单片机的奇偶校验位

巧用8051单片机的奇偶校验位
罗钦骑;容太平
【期刊名称】《微型机与应用》
【年(卷),期】1997(16)12
【摘要】利用8051单片机的奇偶校验实现伪随机序发生器和「8,4」扩展汉明解码的方法。

【总页数】2页(P50-51)
【作者】罗钦骑;容太平
【作者单位】武汉华中理工大学电信系;武汉华中理工大学电信系
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.以奇偶校验位为标识的分布式计算机系统 [J], 李德裕;王文晶;孟祥宇
2.巧用函数奇偶性解决函数零点问题 [J], 雷亚庆
3.以奇偶校验位为标识的分布式计算机系统 [J], 李德裕;王文晶;等
4.巧用函数奇偶性解决函数零点问题 [J], 雷亚庆;
5.巧用奇偶函数定义的变形讨论函数奇偶性 [J], 赖日刚
因版权原因,仅展示原文概要,查看原文内容请购买。

51单片机奇偶校验C51程序

51单片机奇偶校验C51程序
偶校验单片机串口方式39位数据最后一位是奇偶校验位
51 单片机奇偶校验 C51 程序 采用偶校验,单片机串口方式 3,9 位数据,最后一位是奇偶校验位。 偶校验:就是发送的 8 位数据中 1 的个数为偶数时,TB8=0;为奇数时,TB8=1; 奇校验:就是发送的 8 位数据中 1 的个数为奇数时,TB8=0;为偶数时,TB8=1; 由于 PSW 中的 P 可以表达累加器 A 中“1”的个数的奇偶性,具体如下: P(PSW.0)奇偶标志位: P=1,A 中“1”的个数为奇数 P=0,A 中“1”的个数为偶数 所以要用 P 和 TB8、RB8 作为发送与接收的判据,则必须使用偶校验。 C 语言程序如下: 发送程序 Void chek_even(uchar data) { ACC=data; TB8=P; SBUF=data; While(!TI); TI=0; } 接收程序 Void chek_even(uchar data) { While(!RI); RI=0; data= SBUF; ACC=data; If(RB8==P)chek_flag=0; Else chek_flag=1; }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

巧用8051单片机的奇偶校验位() 南京东南大学电子工程系 210096 孙洪军() 南京理工大学化工学院 210094孙秀云周学铁摘根连线即可达到 3要: 一种微机间的串行通信方法, 只需用 R XD、T XD 和GN D115200bp s 的传输速率。

中断关键词: 串行通信语言 8250 IN S C送出去。

IN S 8250接收由 R XD 来的数据后, 经过串?在工程设计中, 经常会遇到近距离的微机间数据交换问题, 通常的解决方法是利用微机的异步串行通并信适配器, 通过把2台微机的串行通信口相连来实现转换后, 放在中供读取。

RBR C PU 表1 IN S 8250中可访问的寄存器据交换。

在程序的设计上往往利用或数 B IO S DO S 的功 1 2 能调用来实现对适配器的初始化、状态检测、数COM COM 方向寄存器名称口地址口地址据的发 3828输出发送器保持寄存器() F H F H T HR 送和接收等。

这种方法实现的串行通信程序, 设计起来 3828输入接收器缓冲寄存器() F H F H RBR 相对简单, 但是在连线上要复杂一些, 除了通信线外, 3828输出除数寄存器( 低位) () F H F H D R 还需要握手信号线, 通信速率最高只可达到9600。

bp s3929输出除数寄存器( 高位) () F H F H D R 而在实践中, 人们往往更希望采用3线通信形式, 只采 3929输出中断允许寄存器( ) F H F H IER 用、、根线, 通信速率也希望能达到更 3R XDT XDGN D 32输入中断识别寄存器( ) FA H FA H IIR 高水平。

通过对微机的异步串行通信适配器的研究发32输出线路控制寄存器() 现, 完全可以避开对或的功能调用, 通过 FBH FBH L CR B IO S DO S 调制解调器控制寄存器直接访问其寄存器来实现对适配器的初始化、状态检 3FCH 2FCH 输出 ()M CR 测、数据的发送和接收等功能, 可以达到115200的 bp s 32输入线路状态寄存器()FD H FD H L SR 传输速率, 再通过对中断控制器8259的编程, 采用中 A 调制解调器状态寄存器 3F EH 2F EH 输入断方式接收数据, 可以可靠地实现高速3线串行通信。

()M SR1 异步串行通信适配器的工作原理微机上通常有2个异步串行通信适配器, 分别为D R 中存放的数据用来决定数据传输时的波特主适配器和辅适配器, 适配器和外部的通信连接通过率, 其计算公式如下: () = 基准时钟频率?( 163 波 D R 9芯特率) , 基准时钟频率为181432, 那么可以计算出M H z 或25芯的型插座, 即微机的 1 和 2 口。

D COM COM 当D R 中放入最小值1时, 最高波特率为115200bp s。

适配器的关键部件是通用异步收发器 () U A R T 主要用于指定通信时的数据格式, 的各 L CR L CR IN S 位定义如图1。

8250, 要设计高速3线串行通信程序, 就要对 IN S 8250 b 7 b 6 b 5 b4 b 3 b 2 b 1 b 0 的原理和结构有所了解。

10L CR DL A B SB SP E P S P EN STB W L S W L S 可接收来自的并行字符数据, 然后 8250IN S C PU 将其转换为连续的串行数据流发送出去, 也可以接收图1 线路控制寄存器L CR 串行数据流, 并将其转换为并行数据再提供给。

C PU 图1中、用于选择数据位数, 可选择5, 8位b1b 0 可工作在全双工的形式下, 即可同时发送和 8250IN S 数据位。

位数和的关系为: 数据位数= 5+ 。

b1 b0 b 1b0b2 接收数据而不会发生冲突。

的内部有10个寄 8250IN S 选择停止位个数: = 0, 1位停止位; = 1, 2位停止b 2 b2 存器, 分别用于通信参数的设置、对线及的 M OD EM 位。

选择有无奇偶校验: = 1, 有奇偶校验; = 0, b3 b 3 b 3 状态访问、数据的发送和接收及中断管理等功能。

其地无奇偶校验。

在 = 1时, 选择校验方式: = 1, 为b3 b4 b4 址和名称如表1。

偶校验;和共用1个地址, 但中数据只T H R RBR T H R = 0为奇校验; 选择是否在串行数据格式中的奇偶 b b 4 5 能写入, 中数据只能读出, 以此加以区分。

RBR C PU 校验位和停止位之间插入奇偶标志位: = 1, 附加1b 5 把要通过线发送出的数据放入中, T XD T H R IN S 位 8250自动读出中的数据, 进行并串转换, 然?T H R 后1位位发奇偶标志位; b5 = 0, 不附加。

b 6 = 1, 串行数据输出被强迫置0; 在正常的数据发送和接收时, 置0。

在寻址b 6 《微型机与应用》1997 年第 12 期除数寄存器前, 把置1, 否则置0。

b7— 45 — 1994-2013 China Academic Journal Electronic Publishing House. All rights reserved. ( ) ISR 时, 有2点需要设计串行通信的中断服务程序 L SR 提供线路的状态, 各位含义如图2。

注 b b b b b b b b 7654 3210 意: 一是在中不要使用的功能调用, 以避免 ISR DO S IIR 0 TSRE THRE B I FE PE OE DR 由于重入造成系统的崩溃; 二是尽可能由较DO S ISR 少指令组成, 执行时间尽可能短, 对数据的进一步处理可放在主程序中进行, 以免由于中断嵌套而发生错误。

发送移 THR 终止识接收格接收奇接收重 RBR 位器空空别指示式错偶错叠错满根据上述原则设计出的通信 ISR , 在传输速率达到图2 线路状态寄存器L SR 115200时, 仍能准确无误地接收数据, 不发生漏收 bp s 具有很强的中断能力, 共有4级中断, IN S 8250数据的现象。

按 3 程序设计优先级由高到低排列依次是: 接收出错中断、满 RBR 微机上常用的编译器为 10, 它提供 2C TU RBO C 中断、空中断、状态改变中断。

如果 T H R M OD EM 丰富的库函数, 支持对 ?口的访问及对中断服务程 IO 处于中断工作方式, 则指出有无待处理的8250IN SIIR 序的设计。

利用以上知识, 可以很方便地用语言设C 中断及其类型, 并屏蔽较低优先权的中断。

中各位 IIR 计出通信程序。

通信程序包括3部分, 初始化子程序、意义如图3。

b b b b b b b b 7 6 5 4 3210数据发送子程序和中断数据接收子程序。

在初始化子程 IIR 0 0 0 0 0 ID 2 ID 1 IP 序中应做到以下几点:把中断数据接收子程序的入口地址装入中断向当前中断未决中优先级断指示量中。

图3 中断识别寄存器IIR 对 8250初始化, 设置波特率、数据位、奇偶IN S IER 控制4个中断的允许或屏蔽。

如不用中断, 校验、停止位、中断方式。

则初始化8259的中断屏蔽寄存器, 开放串行通 A 把这个寄存器各位均置0; 如果允许接收缓冲器满中信中断。

断, 置1; 允许发送器保持寄存器空中断, 置1; 允b0 b 1 接收出错中断, b 2 置1; 允许M OD , 状态改变中断数据发送子程序采用直接向中写入数据的 T H R 许EM 方法, 要注意的是在写入数据前要先读判断 , L SR 置1。

b 3 由于在短距离内通信, 无需 M OD EM 对M SR、是否已空, 在已空的情况下才可送数据, 否T H R T H R 2个寄存器的各位意义就不再介绍。

M CR 则将出错。

在中断数据接收子程序中, 首先从中直接读 RBR 2 中断机制的引发取数据至内存中所设的环形队列中, 再向8259发出 A 由于采用高至115200bp s 的速率进行通信, 又没中断结束命令。

主程序中欲处理接收来的数据, 只需访有硬件握手信号, 接收方如何保证对数据的正确接收问环形队列中的数据即可。

例如: 利用 1口来中断 COM 就成了一个重要的问题。

采用查询方式来接收数据肯接收串行数据, 通信速率为115200, 无奇偶校验, 1 bp s位停止位, 8位数据位。

各个子程序分别如下: 定是行不通的, 一方面, 由于不停地对线路状态进行检测, 大大降低了的工作效率; 另一方面, 由于没有 C PU ( )vo id in it ia te COM 1 vo id ?3 初始化子程序 3 ? { 握手信号, 发送方只是“盲发”, 采用查询方式难免不漏 ? 关中断 3 ( ) ;d isab le ?3 收数据。

唯一可靠的方法是采用中断方式接收数据。

除重设中断向量 3 ? ( ) se tvec t 0x0c, rece ive COM 1; ?3 了对8250设置成合适的中断工作方式, 对微机的 ?3 IN S ( 03, 080) ; 寻址除数寄存器3 ? o u tpo r tb x fb x ?3 ( 038, 001) ; o u tpo r tb x fx 低位置13 ? 可编程中断控制器8259也要进行正确的设置。

A ( 039, 000) ; ?3 o u tpo r tb x fx 高位置0 115200bp s 3 ? 8259可以管理来自外设的8个各自独立的中A 3 数据格式为无奇偶校验, 1位停 ?( 03, 003) ;o u tpo r tb x fb x 止位, 8位数据位3 ?断申请信号, 分别为 , 其中、07, 4IRQ IRQ IRQ IRQ ( ) ?3 只允许 RBR 满中断 3 ? o u tpo r tb 0x 3f9, 0x 01; 3 分 ( o u tpo r tb 0x 21, ( ) ) inpo r tb 0x21&0xef ; ?3 8259A 允许别保留给 COM 1 和 COM 2 中断类型号分别为0CH、 COM 1口中断3 3 开中断3 ( ) ??enab le ; ?0。

8259有1 个中断屏蔽寄存器 ( ) , 地址BHA IM R } 为 () vo id send COM 1 un signed ch a r da ta; ?3 数据发送子程 21, 它的位0, 位7对应 0, 7, 可以通过设H IRQ IRQ 序3 ? { 置这个寄存器的任一位为0或为1来控制任1中断( ! ( 03) 020) ;w h ile inpo r tb xfd&x 源的中 ?3 访问L SR , 判断 T H R 是否为空3 ? 断允许或禁止。

相关文档
最新文档