当前位置:首页 > 办公文档 > 其它办公文档 > 08自动化期中考试答案
08自动化《单片机原理及应用》期中考试参考答案1、用MCS-51汇编语言编程实现:把片内RAM30H单元中的两位BCD码拆开,并转换成ASCII码,分别存入31H和32H单元中。(25分)汇编语言程序1.ORG0000HLJMPmaiinORG0100Hmain:MOVA,30HANLA,#0FHADDA,#30HMOV31H,AMOVA,30HANLA,#0F0HSWAPAADDA,#30HMOV32H,AC语言程序1.#includereg51.h#includeabsacc.h#defineucharunsignedcharvoidmain(){uchari,j;i=DXBYTE[0x0030]i=i&0x0f;i=i+0x30;DXBYTE[0x0031]=i;j=DXBYTE[0x0030];j=j&0xf0;j=j4;j=j+0x30;DXBYTE[0x0032]=j;}2.8051单片机系统电路图如图1所示,(1)试编写程序一,让LED0、LED1、LED2、LED3四个发光二极管依次点亮,反复循环;(2)试编写程序二,让单片机读引脚P2.0的输入状态,并将读入的P2.0状态在引脚P2.7输出。(25分)第一种方法:123456ABCD654321DCBATitleNumberRevisionSizeBDate:11-May-2010SheetofFile:D:\07自动化单片机应用与接口技术课件\MyDesign.ddbDrawnBy:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD108051LED0LED1LED2LED3LED410K+5VKab470470470470470(1)#includereg51.h#includeabsacc.h#defineucharunsignedcharvoiddelay();voidmain(){while(1){P1=0x01;delay();P1=0x04;delay();P1=0x10;delay();P1=0x10;delay();}voiddelay(){uchari;j;for(i=0;i255;i++)for(j=0;j255;j++);}第二种方法:.(1)#includereg51.h#includeabsacc.h#defineucharunsignedcharsbitP1_0=P1^0;sbitP1_2=P1^2;sbitP1_4=P1^4;sbitP1_6=P1^6;voidmain(){P1=0x00;while(1){P1_6=0;P1_0=1;delay();P1_0=0;P1_2=1;delay();P1_2=0;P1_4=1;delay();P1_4=0;P1_6=1;delay();}}(2)#includereg51.h#includeabsacc.h#defineucharunsignedcharsbitP2_0=P2^0;sbitP2_7=P2^7;voidmain(){while(1){P2_7=P2_0;}}3.设单片机晶振频率为6MHz,C语言编程让P1.0引脚产生如图2所示的方波信号。(定时器T0工作于方式2,中断定时)(25分)us2121061T6机器1002)12(8x206502561x=0xCE15610025622002)22(8xx=0x9C.#includereg51.h#includeabsacc.h#defineucharunsignedcharsbitP1_0=P1^0;uchari=0;voidmain(){EA=1;ET0=1;TMOD=0x02;TH0=206;TL0=206;TR0=1;P1_0=1;while(1);}voidabc()interrupt1{i++;if(i%2==0){TL0=206;TH0=206;}if(i%2==1){TL0=156;TH0=156;}P1_0=~P1_0;}100us200us4、8051单片机串行口电路图如图3所示:将AT89S51的RXD(P3.0)和TXD(P3.1)短接,P1.0接一个发光二极管,试编写一个串口自发自收(查询方式)通信程序,检查本单片机的串行接口是否完好。如果发送接收正确,可观察到P1.0接的发光二极管闪亮。要求6MHz时钟频率下,串行口为方式1,波特率设置为2400bit/s。(假设1s的延时程序可以直接调用:DELAY)。(25分).串行口工作于方式1,波特率公式为:24003212100592.111)2123212680xTSMOD(的溢出率x=244=0xF4#includereg51.h#includeabsacc.h#defineucharunsignedcharvoidmain(){PCON=0x00;SCON=0x50;TMOD=0x20;TL1=0xF4;TH1=0xF4;TR1=1;while(1){P1=0x01;要求P1.0引脚有高低电平的变化delay1ms();SBUF=0x00;while(TI==0);TI=0;while(RI==0);RI=0;P1=SBUF;P1.0RXDTXDAT89S51+5V2k330delay1ms();}}voiddelay1ms(ucharx){uchari,j;for(i=x;i0;i--)for(j=110;j0;j--);}
本文标题:08自动化期中考试答案
链接地址:https://www.777doc.com/doc-7235 .html