当前位置:文档之家› 89C51单片机I-O 口模拟串行通信的实现方法

89C51单片机I-O 口模拟串行通信的实现方法

89C51单片机I-O 口模拟串行通信的实现方法

89C51 单片机I/O 口模拟串行通信的实现方法

目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART 异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通

信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩

展一片8251 或8250 通用同步/异步接收发送芯片(USART),需额外占用单片机I/O 资源。本文介绍一种用单片机普通I/O 口实现串行通信的方法,可在单片机的最小应用系统中实现与两个以上串行接口设备的多机通信。

1.串行接口的基本通信方式串行接口的有异步和同步两种基本通信方式。异步通信采用用异步传送格式,如图1 所示。数据发送和接收均将起始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位(低电平),用

来表示字符开始。其后为7 或8 位的数据编码,第8 位通常做为奇偶校验位。最后为停止位(高电平)用来表示字符传送结束。上述字符格式通常作为一个

串行帧,如无奇偶校验位,即为常见的N.8.1 帧格式。串行通信中,每秒传送的数据位称为波特率。如数据传送的波特率为1200 波特,采用N.8.1 帧格式(10 位),则每秒传送字节为120 个,而字节中每一位传送时间即为波特率的倒数:T=I/1200=0.833ms。同样,如数据传送的波特率为9600 波特,则字节中每一位传送时间为T=1/9600=0.104 ms。根据数据传送的波特率即字节中每一位的传送时间,我们便可用普通I/O 口来模拟实现串行通信的时序。

2.硬件电路89C51 单片机通过普通I/O 口与PC 机RS232 串口实现通信的硬件接口电路如图2 所示。由于PC 系列微机串行口为RS232C 标准接口,与输入、输出均采用TTL 电平的89C51 单片机在接口规范上不一致,因此TTL 电平到RS232 接口电平的转换采用MAXIM 公司的MAX232 标准RS232 接口芯片,该芯片可以用单电压(+5V)实现RS232 接口逻辑“1”(-

单片机试题库分章节答案解析(C语言)

第1部分单片机概述及数学基础 一、填空题 1、十进制255的二进制是11111111,十六进制是FF 。 2、单片机是将CPU、存储器、特殊功能寄存器、定时/计数器和输入/输出接口电路、以及相互连接的总线等集成在一块芯片上。 3、十进制127的二进制是 1111111,十六进制是7F。 4、+59的原码是 00111011,-59的补码是11000101。 5、十进制数100转换为二进制数是1100100;十六进制数100转换为十进制数是256。 6、十进制数40转换为二进制数是101000;二进制数10.10转换为十进制数是 2. 5。 7、十进制99的二进制是 1100 011,十六进制是63。 二、判断题 (×) 1、AT89S51是一种高性能的16位单片机。8位机 (×) 2、有符号正数的符号位是用1表示的。 三、选择题 ()1、计算机中最常用的字符信息编码是( A) A. ASCII B.BCD码 C. 余3码 D. 循环码 四、简答题 1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点? 第2部分 51单片机硬件结构、存储系统及

I/O接口 一、填空题 1、AT89S51单片机共有 4 个8位的并行I/O口,其中既可用作地址/数据口,又可用作一般的I/O口的是P0。 2、若采用12MHz的晶振,则MCS-51单片机的振荡周期为__1/12 μS__ ,机器周期为____1μS __。 3、AT89S51单片机字长是___8___位,有___40根引脚。 4.89S51单片机是 8位单片机,其PC计数器是16位。 5.若单片机使用的晶振频率是6MHz,那么一个振荡周期是1/6μS,一个机器周期是2μSμS。 6.89S51单片机是+5 V供电的。4.0-5.5V 7.堆栈是内部数据RAM区中,数据按先进后出的原则出入栈的。8.MSC-51系列单片机具有 4 个并行输入/输出端口,其中_P0_口是一个两用接口,它可分时输出外部存储器的低八位地址和传送数据,而_P1__口是一个专供用户使用的I/O口,常用于第二功能的是P3 口。 9.当单片机系统进行存储器扩展时,用P2口的作为地址总线的高八位,用P0作为地址总线的低八位。 10.半导体存储器分为___ROM___和__RAM__两大类,其中前者具有非易失性(即掉电后仍能保存信息),因而一般用来存放系统程序,而后者具有易失性,因而一般用来存放经常变动的用户程序.中间结果等。 11.MCS-51系列单片机对外部数据存储器是采用_DPTR___作为指针的,其字长为_16__位,因而可寻址的数据存储器的最大空间为_64K_字节。

89C51单片机习题

试题 一、填空题(每空1分,共10分) 1.当使用8031单片机时,需要扩展外部程序存储器,此时EA应为____低电平_____. 2.P0通常用作____单片机系统的地址/数据总线_____. 3.若由程序设定RS1、RS0=10,则工作寄存器R0~R7的直接地址为 ____10H-17H_____. 4.返回地址(或断点)是____在程序中断或子程序调用_____的程序计数器的内容。 5.中央处理器CPU是单片机的核心,它完成____运算和控制功能_____. 6.单片机的工作过程,实际上就是____周而复始地取指令和执行指令_____. 7.所谓中断源即是____引起中断的原因_____. 8.端口(或称口)是_____接口电路中已编址并能进行读或写操作的寄存器____. 9.异步串行近程通信时的传送信号是_____TTL 电平信号____. 10.若累加器A中的数据为01110010B,则PSW中的P=____0_____. 二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分) 1.MCS—51单片机的复位信号是(A)有效。 A.高电平 B.低电平 C.脉冲 D.下降沿 2.若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过(B )。 A.2μs B.4μs C.8μs D.1ms 3.若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用(D )指令。 A.PUSH R0 B.PUSH @R0 C.PUSH 00H D.PUSH 08H 4.能够用紫外光擦除ROM中程序的只读存储器称为(C )。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 5.在片外扩展一片2764程序存储器芯片要(B)地址线。 A.8根 B.13根 C.16根 D.20根 6.定时器/计数器工作方式1是(D )。

at89s51单片机试题

一、填空题(37 分) 1. AT89S51单片机芯片共有40个引脚,MCS-51系列单片机为8位单片机。 2. AT89S51的异步通信口为全双工(单工/半双工/全双工), 3. AT89S51内部数据存储器的地址范围是00H-7FH,位地址空间的字节地址范围是20H-2FH, 对应的位地址范围是00H-7FH,外部数据存储器的最大可扩展容量是 64K字节。 4. 单片机也可称为微控制器—或嵌入式控制器。 5. 当MCS-51执行MOVC A @A+P指令时,伴随着 PSEN控制信号有效。 6. 当单片机复位时PS辟00 H,这时当前的工作寄存器区是_____________________ 0区, R4所对应的存储单元地址为04 Ho 7. MCS-51系列单片机指令系统的寻址方式有—寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址加变址、位寻址。(相对寻址也可) 8. 51系列单片机的典型芯片分别为AT89S51 > 8031、AT89C51 o 9. AT89S51的 P3 口为双功能口; 10. 由AT89S51组成的单片机系统在工作时,EA*引脚应该接—地(或0); 11. AT89S51外部程序存储器的最大可扩展容量是64K ,其地址范围是 0000H - FFFFH。ROMS片2764的容量是 _8 KB,若其首地址为 0000H,则其末地址 1FFFH。 12. AT89S51的中断源有夕卜中断0, T0 ,外中断1,T1,串行口,有_2个中断优先级。 13. AT89S51唯一的一条16位数据传送指令为MOV DPTR data16。 14. LJMP 的跳转范围是64K, AJMP的跳转范围是2K B, SJMP的跳转范围是土128 B (或256B)。 15. 若A中的内容为68H,那么P标志位为 1 o 二、简答题(13分) 1. 采用6MHZ勺晶振,定时2ms用定时器方式1时的初值应为多少?(请给出计算过程)(6 分)答: (1) Ts=2us (216 —X)x 2us=2ms 从而X= 64536 .......... 4分 ⑵ 64536 = FC18H .......... 2 分 2. AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突, 为什么?( 4分) 答:

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } Love is not a maybe thing. You know when you love someone.

单片机考试复习题及答案

选择题 1、主频为12MHz的单片机他的机器周期为(c)。 A、1/12微秒 B、0.5微秒 C、1微秒 D、2微秒 2、MCS-51系列单片机是属于(C)体系结构。 A、冯诺依曼 B、普林斯顿 C、哈佛 D、图灵 3、定时器/计数器工作方式0为(A)。 A、13位定时/计数方式 B、16位定时/计数方式 C、8位可自动装入计数初值方式 D、2个8位方式 6、MCS-51单片机每个机器周期都要进行中断查询,查询的是(A)。 A、中断标志位 B、中断允许控制位 C、中断优先级控制位 D、外部中断触发方式控制位 7、当外部中断被设置为下降沿触发时,对触发信号的要求是高、低电平的持续时间均应大于(B)。 A、1个机器周期 B、2个机器周期 C、4个机器周期 D、8个机器周期 8、在下列寄存器中,与定时器/计数器无关的是(C)。scon是控制寄存器 A、TCON B、TMOD C、SCON D、IE 9、若欲将T0设置为定时器方式2、T1设置为计数器方式1,T0、T1均采用软件启/停控制,则方式寄存器TMOD的方式控制字为(B)。 A、00100101 B、01010010 C、10101101 C、1101101010 10、当晶振频率为6MHz、定时/计数器工作于方式1,最大定时时间为(D)。 A、8.192ms B、16.384ms C、65.53ms D、131.072 11、当晶振频率为6MHz,定时/计数器T0工作于定时器方式2,若要求定时值为0.2ms,则定时初值为(A)。 A、156 B、56 C、100 D、200 12、设MCS-51单片机的晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率为(C)。 A、2MHz B、1MHz C、500KHz D、250KHz 13、利用下列(D)关键字可以改变工作寄存器组。 A、interrupt B、sfr C、while D、using 14、(D)是c语言提供的合法的数据类型关键字。 A、Float B、signed C、integer D、Char 15、12MHz晶振的单片机在定时器工作方式下,定时器中断记一个数所用的定时时间是(A)。 A、1us B、2us C、4us D、8us 16、8051单片机的定时器/计数器工作方式1是(B)。 A、8位计数器结构 B、16位计数器结构 C、13位计数器结构 D、2个8位计数器结构 17线反转法识别有效按键时,如果读入的列线全为1,则说明(A)。 A、没有键被按下 B、有一个案件被按下 C、有多个按键被按下 D、以上说法都不对、 18、利用下列(D)关键字可以改变寄存器组。 A、interrupt B、sfr C、while D、using 19、支持写入单片机或仿真调试的目标程序的文件格式是(D)

Qt编写串口通信程序

Qt编写串口通信程序图文详解 (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们可以去 https://www.doczj.com/doc/c45915364.html,/projects/qextserialport/files/ 进行下载,也可以去下载我上传到网上的: https://www.doczj.com/doc/c45915364.html,/bbs/read.php?tid=22847 下载到的文件为:qextserialport-1.2win-alpha.zip 其内容如下图: 我们在windows下只需要使用其中的6个文件: qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextseri alport.cpp和win_qextserialport.h 如果在Linux下只需将win_qextserialport.cpp和win_qextserialport.h 换为posix_qextserialpo rt.cpp和posix_qextserialport.h即可。 第一部分: 下面我们将讲述编程的详细过程,这里我们先给出完整的程序,然后到第二部分再进行逐句分析。 1.打开Qt Creator,新建Qt4 Gui Application,工程名设置为mycom,其他使用默认选项。(注意:建立的工程路径不能有中文。) 2.将上面所说的6个文件复制到工程文件夹下,如下图。

AT89C51单片机复习题答案(原创)

单片机综合实验总复习题 ———(yuanchuang:mei、fang)1(a)、程序文件名有什么规定? 答:文件名不能用中文,只能用英文字符、下划线及数字作为文件名,其字符总数不能大于8。 将试验箱与计算机联通有哪些操作步骤?连接失败如何处理 答:复位、编译、调试、运行;重新复位。 1、(b)程序在运行时出现下面提示,要消除提 示框应如何操作? 2、IN6接模拟量,Y4接地址线,写出启动0809进行A/D转换及读入数据的指令 MOV A,#6 MOV DPTR,#0C000H MOVX @DPTR,A MOVX A,@DPTR (注:8个地址线:Y0——8000H Y7——F000H) 3、欲将8255PA、PB口设为输入(方式0),PC口设为输出,写出相关指令。 MOV DPTR ,#0FF2BH MOV A,,#92H MOVX @DPTR,A 4、已知0809参考电压为5V,输入的模拟电压为3.5V,经A/D转换后,对应的数字量是多少? B3H 5、已知00H~FFH对应的0832输出模拟量是 -5V~+5V,若要输出2.5V,写出相应指令。(0832片选端接Y4)。 MOV DPTR ,#0C000H MOV A,#0C0H MOVX @DPTR,A 6、用定时/计数器1延时277.1ms,写出其初始化程序。 MOV TMOD ,#10H MOV TH1,#0C9H MOV TL1,#0E1H MOV R0,#10 SETB EA SETA ET1 SETB TR1 7、编写出软件延时270ms的延时子程序(6mhz晶振) DELAY:MOV R6,#27 DELAY1:MOV R6,#10 DELAY2:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY2 DYNZ R5,DELAY1 RET ?8、a、计算下列延时子程序的延时时间。 DELAY: MOV R0, #0 1 DEL: NOP 1 NOP 1 DJNZ R0, DEL 2 RET 2 (1+256*4+2)*2us=2.05ms 9、欲在数码管上显示“-5”,写出相应程序指令。 ORG 0000H AJMP START ORG 0030H START:MOV SCON,#00H MOV SBUF,#0B6H MOV R6,#5 DJNZ R6,$ MOV SBUF,#02H END 10、每0.331s读一次开关,当开关K=0时在数码管 上显示片外7003H单元的数据,K=1时显示片内10H单元的数据。用定时器定时。 ORG 0000H AJMP MAIN ORG 001BH AJMP IN_T0

第06章单片机串行通信系统习题解答

第6章单片机串行通信系统习题解答 一、填空题 1.在串行通信中,把每秒中传送的二进制数的位数叫波特率。 2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 fosc/32或fosc/64 。 3.SCON中的REN=1表示允许接收。 4.PCON 中的SMOD=1表示波特率翻倍。 5.SCON中的TI=1表示串行口发送中断请求。 6.MCS-51单片机串行通信时,先发送低位,后发送高位。 7.MCS-51单片机方式2串行通信时,一帧信息位数为 11 位。 8.设T1工作于定时方式2,作波特率发生器,时钟频率为,SMOD=0,波特率为时,T1的初值为 FAH 。 9.MCS-51单片机串行通信时,通常用指令 MOV SBUF,A 启动串行发送。 10.MCS-51单片机串行方式0通信时,数据从引脚发送/接收。 二、简答题 1.串行口设有几个控制寄存器它们的作用是什么 答:串行口设有2个控制寄存器,串行控制寄存器SCON和电源控制寄存器PCON。其中PCON中只有的SMOD与串行口的波特率有关。在SCON中各位的作用见下表: 2.MCS-51单片机串行口有几种工作方式各自的特点是什么 答:有4种工作方式。各自的特点为:

3.MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值 答:串行口各种工作方式的波特率设置: 工作方式O :波特率固定不变,它与系统的振荡频率fosc 的大小有关,其值为fosc/12。 工作方式1和方式3:波特率是可变的,波特率=(2SMOD/32)×定时器T1的溢出率 工作方式2:波特率有两种固定值。 当SM0D=1时,波特率=(2SM0D/64)×fosc=fosc/32 当SM0D=0时,波特率=(2SM0D/64)×fosc=fosc/64 计算定时器的初值计算: 4.若fosc = 6MHz ,波特率为2400波特,设SMOD =1,则定时/计数器T1的计数初值为多少并进行初始化编程。 答:根据公式 N=256-2SMOD ×fosc /(2400×32×12)= ≈243 =F3H TXDA: MOV TMOD,#20H ;置T1定时器工作方式2 MOV TL1,#0F3H ;置T1计数初值. MOV TH1,#0F3H B f B f N OSC SMOD OSC SMOD ??-=???-=384225612322256

《单片机(C51)技术》复习题

一.填空题(每空1分,共10分) 1.单片机的最小系统除了单片机外还应包括时钟电路. 及电源电路。2.MCS-51单片机具有一个位的CPU和位的程序计数器。 3.MCS-51单片机执行指令所用的时间以机器周期为单位,1个机器周期= 时钟周期。4.如果单片机的晶振频率为12MHZ,那么机器周期为,如果单片机的晶振频率为6MHZ,那么机器周期为。 5.用Keil C51软件编写C语言源文件时应保存为扩展名为的文件,用PROTEUS 软件进行仿真时应下载扩展名为的代码文件。 6.编译预处理命令是计算机将C语言编译为机器语言是进行的预处理,编译预处理命令以开头,末尾不加。 7.C51语言中有字符型、整型、浮点型指针型和位变量等几种基本变量类型,其中,字符型变量所占用的长度为Byte。整型变量所占用的长度为Byte。 8.若想用uchar代换程序中的unsigned char则所使用的语句为:; 9.在编程过程中,变量必须先后使用。#define N 5 语句中N为(常量.变量)。 10.在程序运行中,其值可以改变的量称为变量。一个变量主要由两部分构成:一个 是,一个是。 11.65%10= ;67/10= ;919%100= ;0x7f的十进制数为。12.逻辑表达式的结合性为。逻辑表达式的值应该是一个逻辑值“真”或“假”,以代表假,以代表真。 13.函数是具有一定功能的程序段,C语言程序有主函数. 和用户自定义函数。函数的定义不能嵌套。一段程序只能有且只有一个函数。 14.有两种方法可以终止子函数运行并返回到调用它的函数中:一是执行到函数的 返回;二是执行到语句返回,并可以带回返回值。15.在Keil C中,如果被调函数定义在调用函数之后,则在函数调用之前必须进行。 16.unsigned char a[10];定义了一个型数组a,数组长度为,可用的下标为。unsigned char m[3][6];定义了一个维数组m,数组元素的个数为。17.数组定义时方括号中的数值必须是,该数值反映了数组元素的多少。数组元素的引用采用加下标的方法。 18.P1=0XFE;P1=P1<<2;移位后P1= 。P1=0XF5;P1=P1>>2;移位后P1= 。 19.循环结构是程序设计中的一种基本结构,循环结构的语句有:. 和do-while语句。 20.在循环体中加入break语句可以改变循环的运行过程,遇到break;结束。21.语句for(i=0;i<=5;i++);控制的循环次数为。语句for(i=5;i<0;i--);控制的循环次数为。若i=5,语句while(i<6) i++;控制的循环次数为。 22.把P1^1口定义为K1: ; 定义一个位变量key1: ; 23.指针是C语言中一个重要的概念,指针型变量以标记。 24.按键消抖一般有两种方法:和软件消抖,软件消抖中,当单片机检测到有键按下时,可以先越过抖动过程再对按键识别。 25.MCS-51单片机有四个8位双向并行的I/O口,这四个端口既可以字节寻址又可 以,其中内部没有上拉电阻的端口是。 26.数码管按发光二极管连接方式分为共阴极和数码管。按段数可分为七段数码管和。 27.A T89C51单片机共有5个中断源。它们分别为2个外部中断:. ,3个

Java串口通信程序(程序及注释) 可编译运行

Java的串口通信程序 首先需要到到sun主页下载串口通信的包,因为一般的jrd中不含有这个包的,有点补丁的意思。(CSDN上也有)。解压缩,为了使Java Communications API能够正确的与Windows系统交互,需要几个小的技巧。下面是三个很重要的文件,你可以从Sun的网站上下载得到 comm.jar win32com.dll https://www.doczj.com/doc/c45915364.html,m.properties 对于JVM来说,要正确的识别串口,将这几个文件放在系统中合适的位置使很重要的。 comm..jar应该放在以下目录中 %JAVA_HOME%/lib %JAVA_HOME%/jre/lib/ext win32com.dll应该放在以下目录中 %windir%system32 https://www.doczj.com/doc/c45915364.html,.properties应该放在以下目录中 %JAVA_HOME%/lib %JAVA_HOME%/jre/lib 你可以通过编译和运行Sun的例程来验证串口是否可以使用了。 JBuilder中安装安装Java Communication API (以下在JBuilder 2006中测试通过) 如果你使用JBuilder,那么还需要为JBuilder配置API。 一般来说,根据你的JBuilder配置,你也许需要将win32com.dll和 https://www.doczj.com/doc/c45915364.html,.properties安装到相应的目录中,可以参照上述的目录。例如,如果你使用JBuilder附带的JVM的话,你也许需要将win32com.dll和 https://www.doczj.com/doc/c45915364.html,.properties放到C:\Borland\JBuilder2006\jdk1.5的相应位置。

AT89S51单片机期末考试复习资料

单片机复习资料 一、填空题 1. 80C51的Po 口作为输出端口时,每位能驱动_8 ________ 个SL型TTL负载。 2. 当80C51引脚ALE _______ 信号有效时,表示从Po 口稳定地送出了低8位地址。 3. 一个机器周期等于_6 _____ 个状态周期,振荡脉冲2分频后产生的时钟信号的周期定 义为状态周期。 4. 在80C51单片机内部RAM中字节地址范围是20H ~ 2FH的区域称为位寻址区,而 字节地址范围是30H ~ 7FH的一段区域称为通用RAM区____________ 。 5. 80C51系列单片机内部数据存储器,即内RAM中位寻址区的地址范围是20H~2FH 工作寄存器区的地址范围是00H“FH。内ROM中寻址区的地址范围是 OOOOH~OFFFH _______ 。 6. 80C51有__4_________ 个并行1\0 口,其中P0~P3是准双向口,所以由输出转输入时必 须先写入_J ____________ 。 7. 80C51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器_ SCON _______ 加以选择。 8. 若不使用80C51片内存器引脚_EA _________ 必须接地。 9. 80C51的堆栈是软件填写堆栈指针临时在片内RAM 内开辟的区域。 10. 80C51有4组工作寄存器,它们的地址范围是00H7FH 。 11. 80C51片内20H~2FH 范围内的数据存储器,既可以字节寻址又可以位寻址。 12. 计算机的系统总线有数据总线、地址总线、控制总线。 13. 80C51在物理有_4 ______ 个独立的存储空间。 14. 程序状态标志字寄存器PSW中的PSW.7的含义是进/借位标志;PSW.0的含义是_ 奇偶标志位。 15. 通常单片机上电复位时PC= 0000H SP= 07H,通用寄存器采用第0组,这一 组寄存器的地址范围是从00H?07H。 16. 单片机的存储器设计采用哈佛结构,它的特点是将程序存储器空间和数据存储器空间在 物理上截然分开,分别寻址 ___________ 。 17. 单片机系统的复位方式有上电复位和手动按键复位两种。 18. 80C51单片机的内部硬件结构包括了:运算器、控制器、存储器、和寄存 器—以及并行I/O 口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过总线相连接。 19. 80C51单片机的P0~P3 口均是准双向I/O 口,其中的P0 口和P2 口除了可以进行数 据的输入、输出外,通常还用来构建系统的地址线和数据线。 20. 80C51单片机的时钟电路包括两部分内容,即芯片内的振荡器___________ 和芯片外跨接的 晶振与电容。 二、判断题 1. 程序存储器和数据存储器的作用不同,程序存储器一般用存放数据表格和程序,而数据 存储器一般用来存放数据。(对) 2. 80C51的特殊功能寄存器分布在60H~80H(80~FFH地址范围内。(错) 3. 8051单片机的P0 口既可以做数据口线又可以做为地址口线。(对)

51单片机实现的485通讯程序

51单片机实现的485通讯程序 #ifndef __485_C__ #define __485_C__ #include #include #define unsigned char uchar #define unsigned int uint /* 通信命令*/ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲区长度 #define __ERRLEN 12 // 任何通信帧长度超过12则表示出错uchar dbuf[__MAXSIZE]; // 该缓冲区用于保存设备状态信息uchar dev; // 该字节用于保存本机设备号 sbit M_DE = P1^0; // 驱动器使能,1有效 sbit M_RE = P1^1; // 接收器使能,0有效

void get_status(); // 调用该函数获得设备状态信息,函数代码未给出 void send_data(uchar type, uchar len, uchar *buf); // 发送数据帧 bit recv_cmd(uchar *type); // 接收主机命令,主机请求仅包含命令信息 void send_byte(uchar da); // 该函数发送一帧数据中的一个字节,由send_data()函数调用void main() { uchar type; uchar len; /* 系统初始化*/ P1 = 0xff; // 读取本机设备号 dev = (P1>>2); TMOD = 0x20; // 定时器T1使用工作方式2 TH1 = 250; // 设置初值 TL1 = 250; TR1 = 1; // 开始计时 PCON = 0x80; // SMOD = 1 SCON = 0x50; // 工作方式1,波特率9600bps,允许接收 ES = 0; // 关闭串口中断 IT0 = 0; // 外部中断0使用电平触发模式 EX0 = 1; // 开启外部中断0

89c51试题

单片机期末考试试题库及答案 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 20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T 21、是非题:特殊功能寄存器可以当作普通的RAM单元来使用。F 22、是非题:访问128个位地址用位寻址方式,访问低128字节单元用直接或间接寻址方式。T 23、是非题:堆栈指针SP的内容可指向片内00H~7FH的任何RAM单元,系统复位后,SP初始化为00H。F 24、数据指针DPTR是一个 16 位的特殊功能寄存器寄存器。 25、是非题:DPTR只能当作一个16位的特殊功能寄存器来使用。F 26、是非题:程序计数器PC是一个可以寻址的特殊功能寄存器。F 27、在89C51中,一个机器周期包括 12 个振荡周期,而每条指令都由一个或几个机器周期组成,分别有单周期指令、双周期指令和 4周期指令。 28、当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个高电平并维持 2 个机器周期,可将系统复位。 29、是非题:单片机89C51复位后,其PC指针初始化为0000H,使单片机从该地址单元开始执行程序。T 30、单片机89C51复位后,其I/O口锁存器的值为 0FFH ,堆栈指针的值为 07H ,SBUF的值为不定,内部RAM的值不受复位的影响,而其余寄存器的值全部为 0H 。 31、是非题:单片机系统上电后,其内部RAM的值是不确定的。T 32、以下哪一个为51系列单片机的上电自动复位电路(假设RST端内部无下拉电阻)(P39图2-16(a))。 33、在89C51中,有两种方式可使单片机退出空闲模式,其一是任何的中断请求被响应,其二是硬件复位;而只有硬件复位方式才能让进入掉电模式的单片机退出掉电模式。 34、请用下图说明89C51单片机读端口锁存器的必要性。 读锁存器是为了避免直接读端口引脚时,收到外部电路的干扰,而产生的误读现象。 35、请说明为什么使用LED需要接限流电阻,当高电平为+5V时,正常点亮一个LED需要多大阻值的限流电阻(设LED的正常

PIC16f串口通信程序

#include #define INIT_OSC() OSCCON = 0x77 unsigned char error=0x00; //错误数据帧,丢弃 bit Q=0; //一次数据帧接收完成标志位unsigned char data; void interrupt isr(void) //接收中断处理 { unsigned char Temp; if(RCIF&&RCIE) { if(FERR)//监测是否有帧错误 { error=RCREG; } if(OERR) { CREN=0 ; CREN=1 ; //接收模块被复位重置,OERR清零} data=RCREG; //保存每一次接收到的数据 Q=1; } if(T0IF) //TIME0 { T0IF = 0; } else { if(RBIF ) { Temp = PORTB; RBIF = 0; } }

} void usart_init() //串口初始化 { INIT_OSC(); //InitPort(); INTCON=0 ; // 关闭所有的中断 TRISC6=0 ;//TX脚输出 TRISC7=1 ;//RX脚输入 RC6=1; RC7=1; //SPBRG=51;//波特率9600,6M时钟 SPBRG=51;//波特率9600,8M时钟 BRGH=1; //高速波特率 SYNC=0; SPEN=1; //异步串口工作方式 TXEN=1; //USART工作于发送器方式 TXIE=0; //发送不需要中断处理 RCIE=1; //接收需要中断处理 CREN=1; //激活接收器 PEIE = 1; GIE = 1; } void putch(unsigned char byte) //发送一个字节的数据{unsigned int t=0; TXREG = byte; for(t=0;t<50000;t++) { if(TRMT==1) { asm("nop"); break; } } } void main() //将上位机发送的数据通过串口显示{

AT89S51单片机

AT89S51单片机

AT89S51 AT89S51单片机的硬件组成 单片机内硬件组成结构如图2-1所示。 图2-1 AT89S51单片机片内结构有如下功能部件和特性: (1)8位微处理器(CPU); (2)数据存储器(128B RAM); (3)程序存储器(4KB Flash ROM); (4)4个8位可编程并行I/O口(P0口、P1口、P2口 和P3口); (5)1个全双工的异步串行口; (6)2个可编程的16位定时器/计数器; (7)1个看门狗定时器; (8)中断系统具有5个中断源、5个中断向量; (9)特殊功能寄存器(SFR)26个; (10)低功耗模式有空闲模式和掉电模式,且具有掉电 模式下的中断恢复模式;

(11)3个程序加密锁定位。 与AT89C51相比,AT89S51有更突出的优点: (1)增加在线可编程功能ISP(In System Program),字节和页编程,现场程序调试和修改更加方便灵活;(2)数据指针增加到两个,方便了对片外RAM的访问过程; (3)增加了看门狗定时器,提高了系统的抗干扰能力;(4)增加断电标志; (5)增加掉电状态下的中断恢复模式。 单片机内各功能部件通过片内单一总线连接而成(见图2-1),基本结构依旧是CPU 加上外围芯片的传统微机结构。 CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。单片机内部件功能 1)CPU(微处理器) 8位的CPU,与通用CPU基本相同,同样包括了运算器和控制器两大部分,还有面向控制的位处理功能。 2)数据存储器(RAM) 片内为128B(52子系列为256B),片外最多可扩64KB。片内128B的RAM以高速RAM的形式集成,可加快单片机运行的速度和降低功耗。 3)程序存储器(Flash ROM) 片内集成有4KB的Flash存储器(AT89S52 则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。

单片机串口通信C程序及应用实例

一、程序代码 #include//该头文件可到https://www.doczj.com/doc/c45915364.html,网站下载#define uint unsigned int #define uchar unsigned char uchar indata[4]; uchar outdata[4]; uchar flag; static uchar temp1,temp2,temp3,temp; static uchar R_counter,T_counter; void system_initial(void); void initial_comm(void); void delay(uchar x); void uart_send(void); void read_Instatus(void); serial_contral(void); void main() { system_initial(); initial_comm(); while(1) { if(flag==1) { ES = 0; serial_contral(); ES = 1; flag = 0; } else read_Instatus(); } } void uart_send(void) { for(T_counter=0;T_counter<4;T_counter++) { SBUF = outdata[T_counter]; while(TI == 0);

TI = 0; } T_counter = 0; } uart_receive(void) interrupt 4 { if(RI) { RI = 0; indata[R_counter] = SBUF; R_counter++; if(R_counter>=4) { R_counter = 0; flag = 1; } } } void system_initial(void) { P1M1 = 0x00; P1M0 = 0xff; P1 = 0xff; //初始化为全部关闭 temp3 = 0x3f;//初始化temp3的值与六路输出的初始值保持一致 temp = 0xf0; R_counter = 0; T_counter = 0; } void initial_comm(void) { SCON = 0x50; //设定串行口工作方式:mode 1 ; 8-bit UART,enable ucvr TMOD = 0x21; //TIMER 1;mode 2 ;8-Bit Reload PCON = 0x80; //波特率不加倍SMOD = 1 TH1 = 0xfa; //baud: 9600;fosc = 11.0596 IE = 0x90; // enable serial interrupt TR1 = 1; // timer 1 RI = 0; TI = 0; ES = 1; EA = 1; }

单片机89c51复习题

填空题(每空1分) 1、8051有(111 )条指令。 2、晶振的频率为6MHz时,一个机器周期为()μS。 3、单片机是把中央处理器,()()()以及I/O接口电路等主要 计算机部件集成在一块集成电路芯片上的微型计算机。 4、传输速率是用每秒传送数据位的()来表示,把它定义为(),单位为()。 5、所谓最小应用系统是指能维持单片机运行的()配置系统。 6、单片机复位时P0的值为()。 7、当PSW4=0,PSW3=1时,工作寄存器Rn,工作在第()区。 8、当允许定时器1工作在方式1时,控制字TMOD应为()。 9、当8255工作在方式0时,使PA、PB、PC全用作输出口,控制字应为()。 10、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行()次。 11、当允许定时/计数器1溢出中断时IE控制字应为()。 12、欲使P1口的低4位输出0,高4位不变,应执行一条()命令。 13、MCS-51单片机系列有()个中断源,可分为()个优先级。上电复位时()中断源的优先级别最高。 14、计算机三大总线分别为()、()和控制总线。 15、74LS138是具有3个输入的译码器芯片,用其输出作片选信号,最多可在()块芯片 中选中其中任一块。 17、MCS-51指令系统中,ADD与ADDC指令的区别是()。 18、8051单片机有()个16位定时/计数器。 19、特殊功能寄存器中,单元地址()的特殊功能寄存器,可以位寻址。 20、如果存储单元的数据位为8位,当它存放无符号数时,则该数的范围为()。 21、MCS-51单片机有()个并行输入/输出口,当系统扩展外部存储器或扩展I/O口时, ()口作地址低8位和数据传送总线,()口作地址总线高8位输出,()口的相应引脚会输出控制信号。 22、数据指针DPTR有()位,程序计数器PC有()位。 23、EPROM27256芯片的存储容量为(),它的地址线有()根。 24、欲使P1口的低4位输出0,高4位不变,应执行一条()命令。 25、MCS-51指令系统中,ADD与ADDC指令的区别是 ()。 26、8051单片机有()个16位定时/计数器。 27、8051单片机,当CPU响应某中断请求时,将会自动转向相应规定地址(即中断入口地址) 去执行,外部中断0入口地址为:()H,T1入口地址为;()H。 28、特殊功能寄存器中,单元地址()的特殊功能寄存器,可以位寻址。 29、计算机三大总线分别为()、()和数据总线。 30、74LS138是具有3个输入的译码器芯片,用其输出作片选信号,最多可在()块芯片 中选中其中任一块。 31、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行()次。 32、当允许定时/计数器1溢出中断时IE控制字应为()。 33、当允许定时器1工作在方式1时,控制字TMOD应为()。 34、当PSW4=1,PSW3=0时,工作寄存器Rn,工作在第()区。 35、当8255工作在方式0时,使PA、PB、PC全用作输出口,控制字应为()。

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