已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1 章思考与练习1什么是单片机,它与通用微机相比有什么特点? 单片机就是单片微型计算机, 是将计算机的中央处理器(CPU)、存储器(ROM,RAM)、输入输出(I/O)接口等集成在一小块硅片上的微型机。特点:1、采用哈佛结构体系2、采用面向控制的指令系统3、引脚功能复用 4、片内RAM做寄存器5、类型齐全6、功能通用28031、8051、8751单片机有什么不同?8051、8751和8031均为8位单片机,其内部结构是基本相同的。都具有如下硬件资源:面向控制的8位CPU、128B内部RAM数据存储器、32位双向输入/输出线、一个全双工的异步串行口、二个16位定时器/计数器、五个中断源、2个中断优先级、时钟发生器、可以寻址64KB的程序存储器和64KB的外部数据存储器。MCS-51内部有一个功能很强的8位微处理器CPU,它由算术逻辑运算部件(ALU)、布尔处理器、控制器和工作寄存器组成。8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器。3Intel公司的MCS-51、MCS-96系列单片机各有那些主要特点和不同? MCS-51系列是Intel公司1980年推出的高档8位机系列,这种机型性价比高,品种多,主要有:基本型,增强型,低功耗型,超级型。 MCS-96系列是Intel公司1983年研制出的16位单片机,他是世界上性能最高的单片机产品之一,主要有:8X9X,80C196KB,80C196KC,80C196KR,80C196MC,80C196NT以这几种系列为代表。16位CPU,CPU中的算术逻辑单元不采用常规的累加器结构,改用寄存器-寄存器结构,CPU的操作直接面向256B寄存器,提高了操作速度和数据吞吐能力。4说出单片机在日常生活中的几个主要应用领域 1、日常生活,如洗衣机、电冰箱、空调、微波炉、音响、电视机等 2、实时控制领域,如工业过程控制、航天导航、智能武器等 3、商业营销,如电子秤、电子收款机、自动售货机等 4、智能仪表,如记费器、交通控制,色谱仪等 5、计算机外围设备,打印机、复印机、绘图仪等 6、其他,如办公自动化,通信系统等5简述单片机的基本组成结构。单片机的基本组成结构由中央处理器(CPU)、存储器(ROM,RAM)、输入输出(I/O)接口6什么是哈佛体系结构?与冯诺依曼体系结构相比,有什么特点?数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构.特点:一使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存; 二使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关 第2 章思考与练习 1单片机包括哪几个主要的逻辑功能部件? 主要有引脚功能、存储器的配置,CPU时序,I/O口结构及定时/计数器原理等 2单片机40个引脚的功能各是什么?1、主电源引脚VCC 电源端、 VSS 接地端2、外接晶振引脚XTAL1、XTAL2 ,使输出脉冲直接送内部时钟电路。3、控制信号引脚RST/VPD复位端/电源输入端;ALE/为地址锁存信号/8751片内部E-PROM的编程脉冲输入端;外部程序存储器的读选通信号;/VPP 是访问外部ROM控制信号/对8751片的EPROM编程时电源输入,接+21V。4、四个8位并行I/O口P0-P3 PO口(P0.0-P0.7)第一功能是一个8位漏极开路型的双向I/O口;第二功能是在访问外部存储器时,分时用作低8位地址线和双向数据总线;第三功能是在对8751内部EPROM编程和校验时,用于数据输入和输出。P1(P1.0-P1.7)第一功能是一个内部带提升电阻的8位准向I/O口;第二功能是在对8751片内EPROM编程和校验时,用于接收低8位地址。P2(P2.0-P2.7)第一功能是一个内部带提升电阻的8位准双向I/O口;第二功能是在访问外部存储器时,输出高8位地址;第一功能是8751片内E-PROM编程和校验时,接受高8位地址和控制信号。P3(P3.0-P3.7)第一功能是一个内部带提升电阻的8位准双向I/O口P3.0第二个功能是RXD串行口输入;P3.1第二个功能是TXD串行口输出P3.2第二个功能是外部中断0输入;P3.3第二个功能是外部中断1输入P3.4第二个功能是T0定时器外部输入;P3.5第二个功能是T1定时器外部输入;P3.6第二个功能是外部RAM写信号;P3.6第二个功能是外部RAM读出信号;3单片机的存储器配置是怎样的?0000HSFR(21个)内部RAM128B内部ROM(4KB)=1外部ROM高60KB外部ROM低4KB=0外部RAM(64KB)FFH80H7FH00H0FFFH0000H0000HFFFFHFFFFH内部存储器 4单片机怎样实现复位,有几种方法? 1、内部复位结构,MCS-51单片机的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振荡周期)以上的高电平,可使单片机复位。 2、外部复位结构,上电瞬间电容两端的电压不能发生突变,RST端为高电平5V,上电后电容通过RC电路放电RST端逐渐下降,直至低电平0V,适当选择R,C的值,使RST端的高电平维持2个机器周期以上即可完成复位。3、按键脉冲复位,它的原理跟上电复位原理一样的 5单片机复位后,内部各特殊功能寄存和PC寄存器的值是怎样的?复位时内部RAM中的值会不会丢失? 复位后不产生ALE及信号,其中RAM 处于不断电状态。 复位时内部RAM中的值不会丢失。 6单片机的4个并行I/O口有何异同?使用时应该注意什么? P0口作I/O口使用或做数据/地址线使用 P1口做I/O口使用,不做数据/地址线使用 P2口的结构跟P0口基本相似。 P3口除作一般I/O口使用,每个引脚都有第二功能。8051的4个并行I/O口均由内部总线实现操作控制,端口的功能复用会自动识别,不用指令选择,4个口,32条线,每一条都可以单独输入/输出。 P0口的每一条I/O线可驱动8个LSTTL门输入端,P1-P3口的每一条线可驱动3个LSTTL门输入端。7CPU如何确定和改变当前的工作寄存器组? 开机复位后,使用的是第组工作寄存器。它们的地址是。通过对程序状态字中和的设置来确定和改变当前工作寄存器组。8MCS-51单片机的位地址空间是如何分配的?(1) 内部RAM 20H 2FH共16个单元可按位寻址128位。(2) SFR 80H FFH 51子系列,有21个寄存器,83位;52子系列,有26个寄存器,93位。9TCON、TMOD寄存器怎样控制定时/计数器的工作方式和启动、停止?TCON寄存器的低四位与外部中断有关,高四位用来控制定时/记数器,TR0,TR1:定时器T0,T1的启动控制位,由软件置位或清0,当其值为1时,允许计数器记数,值为0时禁止计数器记数,TMOD寄存器的低四位T0,高四位控制T1,GATE:门控位,控制定时/计数器的启动操作方式。GATE=0时,当软件置位TR0(或TR1)后,计数器开始记数。GATE=1时,只有在TR0(或TR1)为1的情况下,10单片机的时钟频率为12MHz,定时器T0 分别工作在方式0和方式1时,要定时2ms,初值各应为多大?方式0:TH0=0xC1,TL0=0x10,方式1:THO=-2000/256,TL0=-2000%256.第3章思考与练习1MCS-51单片机的指令有哪些寻址方式?如何表示这些寻址方式?(1)立即寻址 MOVE A, #0FH(2)直接寻址 MOVE C, 00H(3)寄存器寻址 MOV A,R1(4)寄存器间接寻址 MOV A,R1(5)变址间接寻址 MOVC A, A+DPTR(6)相对寻址 JC 80H(7)位寻址 MOV C,20H2MCS-51单片机指令系统按功能分哪为几类?(1)内部RAM单元之间的数据传送指令(2)特殊功能寄存器的数据传送指令(3)外部RAM与累加器之间的数据传送指令(4)程序存储器中数据送累加器A的指令(5)栈操作指令(6)数据交换指令3用指令实现以下数据传送过程。R1的内容送R0 MOV A,R1MOV R0,A片内RAM20H单元的内容送R1 MOV R1,20H片外RAM20H单元的内容送片内20H单元MOV R0,#20HMOV P0,#0HMOVX A,R0MOV 20H,A片外RAM1000H单元的内容送片内RAM20H单元 MOV DPTR,#2000H MOVX A,DPTR MOV 20H,A 程序存储器2000H单元的内容送R0。 MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTRMOV R0,A 程序存储器2000H单元的内容送片内RAM20H单元。 MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTRMOV 20H,A 程序存储器2000H单元的内容送片外RAM20H单元。MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTR MOV DPTR,#20H MOVX DPTR,A4用直接地址寻址方式、寄存器间接寻址方式、字节交换法和堆栈传递法等4种方法将内部RAM30H与31H单元的数据交换。 1. MOV A,30H MOV 30H,31H MOV 31H,A 2. MOV R0,#30H MOV A,R0 MOV R1,A MOV R0,#31H MOV A,R0 MOV R0,#30H MOV R0,A MOV R0,#31H MOV A,R1 MOV R0,A3. MOV A,30H XCH A,31H MOV 30H,A4. PUSH 30HPUSH 31HPOP 30HPOP 31H 5说明无条件转移指令AJMP、SJMP、LJMP和JMP的功能和应用场合。 AJMP为2KB地址范围内的的转移指令 SJMP为相对转移指令,本指令首地址加上偏移量加上2为跳转到的位置 LJMP为64KB程序存储空间的全范围转移指令,转移的地址可为16位地址中的任意值。 JMP 间接转移指令。 6编写一段程序,将片内RAM30H单元的内容与片外RAM30H单元的数据交换。 MOV DPTR,#30H MOVX A,DPTR MOV R1,A MOV A,30H MOVX DPTR,A MOV 30H,R1 7设有2个无符号数X,Y分别存放在内部RAM50H、51H单元中,试编写程序计算10X+Y,将计算结果放在52H、53H单元中。 MOV A,#0AH MOV B,A MOV A,50HMUL ABCLR CADD A,51HMOV 52H,AMOV A,BADDC A,#00HMOV 53H,A 8编制程序,将内部RAM20H开始的连续10个单元中的数相加,结果送30H(低8位)、31H(高8位)单元。 MOV R7,#00HMOV A,#00H MOV R1,0AH MOV R0,#20H AGAIN: ADD A,R0 JC LAB1 JMP LAB2 LAB1: INC R7 LAB2: DJNZ R1,AGAIN MOV 30H,AMOV 31H,R79编写程序,将内部RAM20H23H单元的内容分别送到外部RAM的2000H、2004H、2008H和200CH单元中。 ORG 0000HSTART: MOV R1,#04H MOV R0,#20H MOV DPTR,#2000H AGAIN: MOV A,R0 MOVX DPTR,A INC R0INC DPTRINC DPTRINC DPTRINC DPTRDJNZ R1,AGAIN10编写程序,计算存放在3000H开始的5个单元中的无符号数的和,并将和放在3100H开始的单元中。 MOV A ,#00H MOV R1,#05H MOV R7,#00H MOV R6,#00H MOV DPTR,#3000H AGAIN: MOVX A,DPTR ADD A,R6 MOV R6,A JC LAB1 JMP LAB2LAB1:INC R7LAB2:INC DPTR DJNZ R1,AGAIN MOV DPTR,#3100H MOVX DPTR,A MOV A,R6 INC DPTR MOVX DPTR,A11设内部RAM30H、31H单元中存放了两个带符号数,要求找出其中的大数放入32H单元中。画出流程图,并编制程序。 MOV A,30H SUBB A,31H JNB OV,KO CPL ACC.7KO: JB ACC.7,K1 MOV 31H,30HK1: END(30H)AA-(31H)AOV=1?ACC.7取反YACC.7=1(30H)(31H)ENDNNY12编制程序,利用查表法求整数09的平方值。 假设20h存放09中的任意数PF: DB 0,1,4,9,16,25,36,49,64,81 ORG 0000H START: MOV A,20H MOV DPTR,#PF MOVC A,A+DPTR JMP $ END13编制一程序,查找内部RAM202FH单元中是否有数据0AAH。若有,则将30H单元置为01H,否则将30H单元清0。 ORG 0000H START: MOV R0,#20H MOV R2,#10H MOV 30H,#00H AGN: MOV A,R0 SUBB A,#0AAH JZ K DJNZ R2,AGN JMP K1 K: MOV 30H,#01H K1: JMP $ END14编制程序,实现减法运算:6F5DH-3E2BH,结果送30H(低8位)、31H(高8位)单元中。 ORG 0000H START: MOV A,#5DH SUBB A,#2BH JC K1 MOV 30H,A JMP K2 K1: ADD A,#20H MOV R1,A MOV A,0FFH SUBB A,#2BH ADD A,#01H ADD A,R1 MOV 30H,A MOV A,#6FH SUBB A,#01H SUBB A,#3EH MOV 31H,A JMP K3 K2:MOV A,#6FH SUBB A,#3EH MOV 31H,A K3:JMP $ END15编写程序,完成32位16位的乘法运算。 ; 30h-33h存放32位数据,34h-35h存放16位数据,乘积存放在40h-45h ORG 0000H START:MOV 30H,#20H MOV 31H,#20H MOV 34H,#02H MOV 35H,#02H MOV R4,34H MOV R3,#04H;循环次数 MOV R0,#30H MOV R1,#40H MOV R5,#00H CLR C CALL AGN;低8位乘32位 MOV R4,35H MOV R3,#04H MOV R1,#45H MOV R0,#30H MOV R5,#00H CLR C CALL AGN;高8位乘32位 CLR C MOV R6,#04H MOV R0,#41H;相乘的结果再相加 MOV R1,#45H AGN1:MOV A,R0 ADDC A,R1 MOV R0,A INC R1 INC R0 DJNZ R6,AGN1 MOV A,#00H ADDC A,R1 MOV R0,A JMP $ AGN:MOV A,R0 ;32位乘8位函数 MOV R2,A CALL MULTI ADDC A,R5 MOV R1,A MOV A,B MOV R5,A INC R0 INC R1 DJNZ R3,AGN MOV A,R5 ADDC A,#00H MOV R1,A RET MULTI: MOV A,R4 MOV B,A MOV A,R2 MUL AB RET END16编写程序,将200H204H单元中的10位BCD码转换成ASCII码,存放在205H开始的单元中。 ORG 0000H START: MOV R7,#05H MOV P2,#02H MOV R0,#00H MOV R1,#05H AGN: MOVX A,R0 ANL A,#0FH AND A,#30H MOVX R1,A INC R1 MOVX A,R0 SWAP A ANL A,#0FH AND A,#30H MOVX R1,A INC R1 INC R0 DJNZ R7,AGN JMP $ END 第4章思考与练习1C51的data、bdata、idata有什么区别?data 直接访问内部数据存储器(128字节),访问速度最快 bdata 可位寻址内部数据存储器(16字节),允许位与字节混合访问.idata 间接访问内部数据存储器(256字节),允许访问全部.2.定义变量a、b、c,a为内部RAM的可位寻址区的字符变量;b为外部数据存储区浮点型变量;c为指向int型xdata区的指针。 unsigned char bdata a,b,c,d; float xbyte b; int xdata *c; 3改正下面程序的错误。#includeMain()a=b;int a=7,b;delay(10)Void delay();Char i;For(i=0;i=100;i+); 修改后: #include void delay() char i; for(i=0;i=100;i+); main() int a=7,b; a=b; delay(); 4编制将内部RAM中40H单元和50H单元的数据相乘,结果存放到外部RAM 1000H和1001H单元的程序。 #include #include main() char a,b; int c; a=DBYTE0X50; b=DBYTE0X40; c=a*b; XBYTE0X1000=c%256; XBYTE0X1001=c/256; while(1); 5编制将其自然数1100能被3整除的所有数的累加和程序。 #include main() unsigned int a,b; b=0; for(i=1;i=100;i+) if(i%3=0) b=b+i; while(1); 6将外部RAM的20H30H单元的内容传送到内部RAM 20H30H单元。 #include #include main() unsigned char i; for(i=0x20;i=0x30;i+) DBYTEi=XBYTEi; while(1); 7求出内部RAM 50H 5FH单元中的最大数,存入内部RAM 60H单元中。 #include #include main() unsigned char i,x,max; max=0; for( i=0x50;i=0x5f;i+) if(maxDBYTEi) max=DBYTEi; DBYTE0X60=max; while(1); 8将内部RAM 21H单元中存放的BCD码数转换为二进制数,存入30H开始的单元中。 #include #include main() unsigned char a,b,i,addr; addr=0x30; a=DBYTE0X21; b=(a4)*10+(a & 0x0f); for(i=0;i7;i+) if(b & 0x01) DBYTEaddr=1; else DBYTEaddr=0; addr+; while(1); 9将下面为汇编语言程序转换成等效的C语言程序。ORG 0030HMOVP1,#04HMOVR6,#0AHMOVR0,#30HCLRP1.0SETBP1.3ACALLTLCSJMP$TLC:MOVA,#0CLRP1.3MOVR5,#08HLOP:MOVC,P1.2RLCASETB P1.0CLR P1.0DJNZR5,LOPMOVR0,AINCR0DJNZR6,TLCRETEND#include #include main() unsigned char i,addr; for(i=0;i10;i+) DBYTEaddr=0xff;addr+; while(1); 10内部RAM的20H、21H单元和22H、23H单元中分别存放着二个16位无符号数,试将其中的大数置于24H、25H单元中。 #include #include main() unsigned int a,b; a=DBYTE0X21*256+ DBYTE0X20; b=DBYTE0X23*256+ DBYTE0X22; if(ab) a=b; DBYTE0X24=a%256; DBYTE0X25=a/256; while(1); 第五章思考与练习1.什么是中断?微型计算机系统中为何要使用中断技术?答:中断是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。为了使计算机能够随时暂停正常运行的程序,转而优先处理紧急但不在正常程序队列中的事件而使用中断。2中断系统要解决哪些实际问题?采用中断技术主要为解决两个问题: 1.在输入输出过程中,解决快速的CPU与慢速的外设之间速度不匹配的问题,实现CPU与外设备并行工作,提高CPU的利用率。 2.确保CPU在运行过程中具有实时响应和处理随机事件的能力。3简述中断的处理过程。运行程序中断处理程序中断装置处理器中断事件程序性中断事件外部中断事件输入输出中断事件运行程序中断处理程序中断装置访管指令4什么是中断优先级?如何进行中断优先级控制?中断优先级:当计算机同时检测到多个中断时, 中断装置响应中断的顺序。常见的处理次序可能是处理器中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件根据各中断源工作性质的轻、重、缓、急,安排一个响应各类中断的先后次序(优先级排队)。CPU先响应优先级高的中断请求,而后再响应优先级低的中断请求。方法有:软件查询:如顺序查询硬件排队:如菊花链电路、中断优先级控制器PIC (如8259A)例如8086系统各外设产生的中断请求由8259A进行优先级排队。5简述MCS-51单片机中断系统的组成。MCS-51单片机中断系统由3个部分组成:(1)中断请求控制(2)中断允许控制(3)中断优先级控制6MCS-51系列单片机有几个中断源?相应的入口地址是什么?MCS-51单片机有5个中断源:外部中断2个,中断请求信号分别由P3.2、P3.1输入,低电平有效、脉冲下降沿有效可选。入口地址:0003H,0013H。定时/计数溢出中断3个:T0、T1,计数溢出时置“1”TF0、TF1位,从而发出内部中断请求。入口地址:000BH,001BH。串行中断1个:串行接收或发送完一帧数据时就产生一个内部中断请求RI或TI。入口地址:0023H。7为何要进行外部中断源的扩展?如何扩展?MCS51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展扩展方法:一、采用硬件请求和软件查询的方法:这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下: Void zhongduan (void) interrupt 0 using 3 /中断函数 EX0=0;/关中断If(P0_0=1) */中断查询If(P0_1=1) */中断查询If(P0_2=1) */中断查询EX0=1;开中断 二、用定时器/计数器作外部中断单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“10”的负跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应在000BH或001BH。8什么是定时器中断?如何对定时器进行初始化编程? 8XX51单片机的定时/计数器T1由寄存器TH1、TL1组成,定时/计数器T0由寄存器TH0、TL0组成,它们均为8位的寄存器,用于存放定时或计数的初值,进行加一计数,当满了预设的个数,THO、TLO(TH1、TL1)回0,置位定时/计数器溢出中断标志位TF0(TF1),产生溢出中断。void init() TMOD=XX;/设置方式控制参数 TH=YY; TL=ZZ;/设置计数初值 ET=1; TR=1; EA=1; 9利用MCS-51定时器分别实现以下要求,说明实现方法,并编制程序。T1工作于方式1或方式2,使P1.0引脚输出周期为400s的连续方波。 周期为400um,可使P1.0 每200um取反一次。 假设外部晶振为12MHZ #include sbit P1_0=P10; main() TMOD=0X02; TH1=0X38; TL1=0X38; ET1=1; TR1=1; EA=1; while(1);void t1_serv ()interrupt 3 P1_0=P1_0; 为MCS-51单片机扩展一个外部中断源。 #includesbit P1_0=P10;main() EA=1; EX1=1; IT1=1; while(1);Intx() interrupt 2 P1_0=1; if(P1_0=1). P1.08xx51 Int0或非门对外部脉冲计数,当计到100时,从P1.1引脚输出一个正跳变。 #include sbit P1_1=P11; main() unsigned char n; n=5; P1_1=0; TMOD=0X06; TL0=0X96; TH0=0X96; ET0=1; TR0=1; EA=1; while(1);void T0() interrupt 1 P1_1=1; while(n-); n=5; P1_1=0; 10在MCS-51单片机系统中,已知时钟脉冲为6MHz,选用定时器T0,设置为方式3,编制程序,使P1.0和P1.1引脚分别输出周期为1ms和2ms的方波。 #include sbit P1_0=P10; sbit P1_1=P11; unsigned char n; main() TMOD=0X03; TL0=0X05; ET0=1; TR0=1; EA=1; n=0; while(1); To() interrupt 1 TL0=0X05; P1_0=P1_0; n+; if(n%2=0) P1_1=P1_1; n=0;第6章思考与练习1解释下列术语。并行通信 串行通信 并行通信:所传送数据各位同时发送或接收。 串行通信:所传送数据的各位按顺序一位一位的传送或接收。 异步通信 同步通信 异步通信:串行通信的数据或字符是一帧一帧地传送的,在异步通信中,一帧数据先用一个起始位“0”表示字符的开始,然后是58位数据,即该字符的代码,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后一个停止位“1”表示字符的结束。同步通信: 在同步通信中,发送方在数据或字符前面用12个字节同步字符指示一帧的开始,同步字符是双方约定好的,接收一方一旦检测到与规定的同步字符符合就开始接收,发送方接着连续按顺序传送n 个数据,当 n个数据发送完毕,发送12个字节的校验码,由时钟来实现发送端和接收端的同步。波特率 每秒钟传送多少为二进制数。2某异步通信接口,其帧格式为10位,当接口每秒传送1800个字符时,计算其传送波特率。 10X1800=18000bps=18000波特率3说明如何利用MCS-51串行口方式0,将串行口扩展为并行口 . P3.3 TXD8051 RXD&CLK /CLRA 74LS164BQ7.Q0+5V 4以MCS-51串行口方式1为例,说明其发送和接收的工作过程。 (1)定好波特率, 方式1的波特率可变,波特率=(2SMOD/32)*(T1的溢出率)=(2SMOD/32) *fosc/(12*(256-x)。 (2)填写控制字,即对SCON寄存器设定工作方式,如果是接收程序或双工通信方式,需 要设置REN=1(允许接收),同时也将TI,RI进行清零。 (3)串行通信可采用两种方式:查询方式和中断方式,TI和RI是一帧发送完否或一帧数据到齐否的标志,可用于查询;如果设置中断允许,可引起中断。 查询方式:发送程序:发送一个数据-查询TI-发送下一个数据(先发后查); 接收程序:查询RI-读入一个数据-查询RI-读下一个数据(先查后收); 中断方式:发送程序:发送一个数据-等待中断,在中断中发下一个数据。 接收程序:等待中断,在中断中再接收一个数据。 两种方式中当发送或接收数据后都要注意清除TI 或RI。 5说明MCS-51多机通信的原理。 MCS-51多机通信为主从式通信,只能由主机向从机通信。 多机通信,单片机工作在2、3方式, 发送机由程序设置SM2为1, 接收机 SM2=1 若RB8=1,激活RI,引起接收中断。 RB8=0,不激活RI,不引起接收中断 SM2=0 无论RB8=0 还是RB8=1,均激活RI,引起接收中断。 6简述串行口的4种工作方式各有何特点? (1)方式0(移位寄存器方式) 串行数据通过RXD输入或输出,TXD输出频率为fosc/12频率的时钟脉冲。数据格式为8位,低位在前,高位在后,波特率固定:波特率=fosc/12(fosc为单片机外接晶振频率)。 发送过程以写SBUF寄存器开始,当8位数据传送完,TI被置为“1”,方可发送下一帧数据。接收必须预先置REN=1(允许接收)和RI=0,当8位数据接收完,RI被置为“1”,此时,可通过读SBUF指令,将串行数据读入。 移位寄存器方式多用于接口的扩展,当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器扩展输出接口,通过外接并入串出移位积存器扩展输入接口。方式0也可用于短距离的单片机之间的通信。 (2)方式1(波特率可变10位异步通信方式) 方式1以TXD为串行数据的发送端,TXD为数据的接收端,每帧数据为十位:一个其始位“0”,8个数据位、一个停止位“1”,其中起始位和停止位在发送时是自动插入的,由T1提供移位时钟,是波特率可变方式。波特率的计算公式为: 波特率=(2SMOD/32)*(T1的溢出率)=(2SMOD/32)*(fosc/(12*(256-x)) 根据给定的波特率,可计算T1的计数初值。 (3)方式2(11位异步通信方式) 方式2以TXD为串行数据的发送端,TXD为数据的接收端,每帧数据为11位: 一个其始位“0”,9个数据位、一个停止位“1”,发送时第九个数据位由SCON积存器的TB8位提供,收到的第九位数据存放在SCON寄存器的RB8位,第九位数据可作为检验位,也可作为多机通信中传送的是地址还是数据的特征位.波特率固定:波特率=(2SMOD*fosc)/64. (4)方式3 引脚使用和数据格式同方式2,所不同的是波特率可变,计算公式同方式1。 7SCON寄存器中的REN,TB8,RB8等三位的作用是什么?REN:串行接收允许位, 0-禁止接收 1-允许接收TB8:在方式2、3中,TB8是发送机要发送的第九位数据。RB8:在方式2、3中,RB8是接收机接收到的第九位数据,该数据来自发送机的TB8。8两个8031系统进行双机通信,工作于方式1,将甲机 片内存储器30H4FH单元存放的数据送到乙机相应的单元。画出接口电路和程序流程图,选择波特率,编写程序。 8031无内部程序存储器,扩展外部程序存储器略。 TXD8031RXD 8031甲乙T1初始化,启动T1工作设定串行通信方式置发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《分离工程》试题库及参考答案
- 儿童健康课堂测试题幼儿园鼠疫防控知识点掌握程度检验
- 商务谈判礼仪培训
- 基层工会经费管理
- 机器学习原理与实践测试题库及答案解析
- 客服岗位招聘面试题和答案
- 德语句型转换练习题集及参考答案解析
- 2025年党内法规知识测试(竞赛)题库与答案
- 2025年全国出租车从业资格考试复习模拟题库含答案
- 2025年酒店管理专业技能考核试题及答案解析
- 2025秋人教版小学美术二年级上册期末过关练习卷及答案 (三套)
- 净化设备施工方案
- 沙田路灯升降车施工方案
- 卓越绩效管理模式
- 2025 高中环境保护之国际气候谈判课件
- 大模型在企业的应用实践
- 油菜飞播作业合同2025年合同履行进度跟踪
- 2025-2026学年第一学期小学科学三年级上册期末测试卷(教科版2024)及答案(三套)
- 5.3 实际问题与一元一次方程 第1课时 配套、工程问题 教学设计 2024-2025学年人教版七年级数学上册
- 扬州市数据局:2025可信数据空间基础知识
- 企业导师聘用协议书
评论
0/150
提交评论