《自BG16》编程题含答案.docx
自BG16编程题1、清零程序(将2000H-20FFH的内容清等)2、查找零的个数,并把结果存2100单元.C-S1.WT3、将外部存储器的OOOBH和OOOCH单元的内容互换(C51)4、格1字节的二进制数转换成3个十进制数(BCD码)并存入20H开始的单元中5、单片机P1.n的P1.Q,P1.1接两个开关K1.,K2,P1.4、P1.5、P1.6和P1.7各接-只发光:极管,如图所示通过按键KI、K2选杼点亮V1.I-V1.4中的一个。-ia-XTA1.IXTA12ASTPo(IADoPO1,W1.N2ADeWAeOP04'AtXPoS舄05P0G(A0P07.'AD7P2*8P2.1.AftP2Z,A10P2a11P24,A12PZ5,A13P2AMPZ7.,A15PJnw(DP3×DPJ1.R%P3.3W11pa4-roPioPI1PiP13P14P1.5P1.6PUAtWC1DiD4K2K1.点亮的灯001.1.0I1.2101.3II1.46、流水灯(让P1.口接的8个流水灯从上到卜再从卜到上点亮一次)U1XTA1.1XTA1.2RSTPSENA1.EPIOP1.1P1.2P1.3P1.4P1.5P1.6P17poa,AooPO1/AD1PO2AgP03.AD3P04.AD4PO5.AD5PO6.AD6PoZAD7P2ASP2.1ZA9P22A10P23A11P2AA12P2S,A13P2GA14P2.7/A15P3ORXDP3.1/TXDP3.2'1NT0P3.aTOT7P3.4.T0AT8gC517、用单片机采集8个开关状态.然后将采集到的结果通过发光二极管显示.当采集到的数据为。时.与其对应的发光二极管亮.当某一开关断开时,对W的发光二极管不亮8.单片机控制8个IED小灯从左到右再从右到左一次点亮,反发循环。9、8个小灯加一点亮.10.制作一个09数杪器11、制作一个599的计数器,P1.7接按谊.P2按数码管段,共阳极数码管,P3.0.P3.1接数码管位码,何按一次犍,数码管显示加一:XTAMXTAUWT墓主主主AUPtU1.VUMPOfAXM22皿PO-IDJrt>*D5PC1.Oi"JW”。诩p三f2P220RPza01,rj'AttP2S4t)UP2.TM0P34D外诬PiGW1.TP1.沏13、电路连接如图所示.每按一次键,触发一次中断,点亮一个发光:极管,实现流水灯功能。若规定外部中断。为边沿触发方式,低优先级,试楸写主程序与中断阻务程序。14、如图所示,利用外部中断O和1,要求按动按雄K1.使8个发光二极管从D1.到D8流水,按动按键K2使8个发光二极管从V18到VI1.流水.编写程序AT89C3RSTOXTA1.I×TA1.2RSTPSNA1.E银t步SPACK65.262;35T12132137-P2±÷÷-÷P1.0T2P1.1T2E×P1.2PUPI.4P13P16P1.7POaAoOPO1,'ADIP02AD2P03AD3POACMPosAo6P0,A0PO7),AD7P2A8P2.1,A9P22'A1OP23,A11P2AA12P25,A13P2A,A14P2J.'A15P3OWDP3.iXDP321NTpP3.3nfIT1.P3.4/TOP3TJ.P36-WR建35亘五D81062063064DeS066DG7K115、P32P35分别接4个按个S1S4,编制4个按犍的扫描子程序例如,K1.键按下,对应数码管显示16、选择TI的方式1用于定时,要求在P1.O脚上输出周期为IOmS的方波球片机采用12MHz晶版.17、试设定定时定/计数器To为计数方式2。当To引脚出现负跳变时,向CPU申请中断,将P1.O埔II的小灯亮灭状态改变一次.18 .采用12MHZ晶报,在P1.O脚上谕出周期为2Ss,高电平占空比为20%的脓冲信号.19 .设单片机品报领率为6MHz,利用定时器TO产生定时脉冲。要求好隔2ms从P1.0脚上输出脓宽为2个机器周期的正脉冲.20、有甲和乙两个AT89C51单片机,甲单片机读入其P1.口的开关状态后通过申行口发送到乙单片机,乙单片机将接收到的数据送其P1.口,通过发光二极管显示。21、使用DA8832输出;角波、锯齿波、JE弦波,自BG16编程题答案1、清零程序(将200OH20FFH的内容清零)C-51WfOindUde<reg51.h>main()(intI;unsignedcharxdata*p=0x2000;/"指针指向2000H单元/for(i三03<256J*÷)*P=0;p+;)"清零2000H-20FFH单元/2,查找零的个效,并把结果存2100单元.C-S1.程序Minc1.ude<reg51.h>main()unsignedcharxdata*p=0x2000*J1.t,P指向20H单元/for(i=0;i<16;iw)if(p=O)n+;P+;)p=0×2100;p=n;intn=0,i;/若读单元内容为零,则/指针指向下一单元/指针P指向210OH单元/把个数放在210OH单元中/3、将外部存储号的OoOBH和OOoCH单元的内容互换(C51)#inc1.ude<absacc.h> Voidmain() unsignedcharc; WhiIe(I) c»×BYTE(1.1.); ×BYTE(11J=XBYTE12; XBYTE(12)=C )4、将1字节的二进制效转换成3个十进制数(BCD)并存入20H开始的单元中 Vodmain() unsignedcharp; Unsignedcharnumber=123; p=umber100; P+÷ p=(number%100)10; Pw; p=(number%100)%10;5.单片机P1.的P1.0,P1.1.接两个开关K1.,K2,PI.4、P1.6、P1.6和P1.7各接一只发光二极管,如图所示通过按键K1.、K2选择点亮Vn-VI4中的一个,U1.找"XTA1.IXTAURSTR(TADOPOtADIPO2ADCPOaADGP04,AD*P05,AD0P06'AD6PO7.,AD7P2AA8P?1-*®P23'WP2aA11P24'A12P2SA13P?OAUP27.,A15P1OP11P1.2P1.3PKP15P16P1.7P3QOXDP3.1.TDPJZ布访P3.3MPSATDDiD4K2K1.点亮的灯OO1.IOI1.21O1.3II1.4inc1.ude,reg51,hnvoidmain()(chara;a=P1.;a=a0×03;屏蔽高6位if(a=O)P1.=0xe3:e1.se1.f(a=1.)P1.=OXd3;e1.seif(a=2)P1.=0xb3:e1.seP1.=0x73:并inc1.ude“AT89X51.h”voidmain()chara;a=P1.;a=a&0x03;switch(八)冰敲高6位case0:PI=OXe3:break:case1:P1.=0×d3:case2:P1.=0b3;case3:P1.=0x73:break:break:break:6、流水灯U1.XTA1.IXTA1.2EC四REDP1.2PUP1.4PUPI.6P1.7AT89C511.EDREDPoaADOPO1.'AD1P02,AD2PO3.AD3PO4,'AD4POS'AD5P0&AD6PO7,'AD7P2'ASP21,A9P2,A10P23A11P2AAI2P25'A13P2,AUP27,A15PSOHXDP3.GDP32而5P3.3WTP34T0P3.yrP36WRP37.R5#inc1.ude<regS2.h>Inc1.ude<itrins.h>main() unsignedcharcnt三Oztemp; unsignedinti=OJ; wh1.e(1.) (temp=0xfe; for(i=0;i<8;i*) ( P2=temp; for(j=0J<=200j÷*); temp=_cro1.(temp,1);* ) )7、用单片机采集8个开关状态,然后将采集到的结果通过发光二极管显示,当采集到的数据为。时,与其时应的发光.极管克,当某一开关断开时,对应的发光:极管不完C1.D(PSW_6AY1.J欲1XTA1.1.POOAOOP0.1.AD1POZ*02P03APO4ACXPOsAD5POGAO5POXAO,P2Q3P219P22A2P2.aAHP2.4.A12P25A13P2.6AMP2.7.,AtSXTA1.2RSTMEFaP1.OPOQRXDPI.1P3,TXDP1.2P32WroP1.JP33<T1P1.4PISPiT1.P1.JSP36WRP1.7”7,祁U1.VCCm1.三D<5WEEN31.IZ1.eDYE1.1.CW330D71.EDCf1.EEN1.EDYE1.1.CWinc1.ude<reg51.h>main()(chari;whi1.e(1.)P2=i; 8.单片机控制8个1.ED小灯从左到右再从右到左一次点亮,反复循环. 9、8个小灯加一点亮.10.制作一个09数杪潺Hinc1.ude<r%51.h>defineUintunsignedint-WdefineUeharunsignedcharucharSeg11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90voidde1.ay()-uchari;uintj;for(i=0;i<200;i+*Jfor(j=0;j<1000;j+);-voidmain()-<-uchari;whi1.e(1.)-for(i=0;i<10;i+)-P2=seg(i; de1.ay(); 1.I.制作一个099的计数器,P1.7接按键,P2接数眄管段,共阳极数码管.P3.0.P3.1接数码管位码,每按一次键,数码管显示加一:po0*rotswPt1.I皿p<*a*t>.4MUMPOiVUMPtmQJitcr2,3A1PJX*t2P"0T>r2ftMP>7.t5P1.MVD一Wnc1.ude<regS1.h>一defineucharunsignedchar一Wdefineuintunsignedint sbitp1._7=P1.A7;ucharse(=(0xc0z0xf9r0xa4,0xb0r0x99r0x92r0x82r0xf8,0×80r0x90; Ucharcounter=OxountereI=OxountecO=O; voidde1.ay(uintm)一( uintij;for(i=0;i<m;i+) for(j=0;j<10;j+);一) voiddisp1.ay(void) P2=segcounter-1); P3=0x01;de1.a(20);P3=0x00; P2=seg(counter_0); P3=0x02; de1.ay(20);P3=0x00;voidmai()WhiIe(I)WhiIe(P1._7=1)-disav();一if(p1.-7=0de1.ay(5);if(p1.-7三三1.)counter*;if(counter=三100)couter=0;counter_1.=counter/10;counter_0=counter%10;disp1.ay!);-12、用单片机捽制字符型1.CDI602显示字符信息“He1.1.oeveryone!”和“WetoIKY",字符信息*He1.1.oeveryone!",uWeIcometo1.KY”分别从1.CD16O2右侧第一行、笫:行滚动移入,然后再从左侧滚动移出,循环显示.1'T2EXPOUKDOPO1.M1PO2MP03*D3P04*WP05*D5POSM*PO7,WHe1.1.oeveryone!Ue1.conetoH1.J!修胧睡38SaB388BPJnRDP202P2t*»P22A10P23*11P24*1?P25*QP26*UP27At52it7俨工4gPA1.I1.54V11Jtinc1.ude<reg51.h>/unsignedcharcode1.cd!602a(="He1.1.oeveryone!"/unsignedcharcode1.cd1.602b)="Weto1.KY!"/Sbit1.cden=P37;/液晶使能端SbeCdrw=P3%;液晶读写选择跳SbItICdrS=P35;液品命令数据选择端unsignedcharnum;voidde1.ay(unsignedintms)延时ff(unsignedIntx,y;for(x=0;x<ms;x+)for(y=0;y<124;y+*);voidWrite_com(IJnSignedcharCom)叮命令函数Icdrs=O;写命令P2=com;输出命令字de1.ay(5);殛时Icden=I;使能端置1.产生正脉冲de1.ay(5);廷时Icden=O;使能就用.0,正脉冲结束voidWrite_data(UnSignedchardate写数据函数(Icdrs=I;写数据P2=date;输出字符信息de1.ay;延时Icden=I;使能湍置3产生正脓冲de1.ay;延时Icden=O;使能裁置0,正脉冲结束voidinit()/1.CD16O2初始化苗数(ICdrW=0;写选择有效ICden=0;使能端置0Write_COm(OX38);设置16X2显示,5X7点阵,8位数据接口Write_COm(OX0。;设置开显示,不显示光标Write_com(OXo6);耳一个字符后,地址指针加1write-com(0x01);清屏voidmain()(init<);/1.CD16O2初始化write-com(0x80+Cx1.0);将数据指针定位在第一行非显示区0x10for(num=0;r)um<16;num+)(Write.data(1.cd1.602a(nu11;写入第一行字符信息.共16个字符de1.ay;Write_Com(OX80+0x50);将数据指针定位在第二行非显示区OxSOfor(num=0;num<16;num+)(Wme_data化d1.602bnum);写入第:行字符信息,共16个字符de1.ay(5);WhiIe(I)for(num=0;num<24;num+>(write-m(Ox1.c);字符移位de1.a(100);)13、电路连接如图所示,狗按一次神,触发一次中断,点亮一个发光二极管,实现流水灯功能。若规定外部中断。为边沿触发方式,低优先级,试编”主程序与中断眼务程序.Winc1.ude<intrins.h>unsignedchara=0x7fsvoidDe1.ay();voidint();voidmain()EA=1.s总中断允许EXO=1:外部中断。中断允许ITO=I;选择外部中断0为跳沿触发方式whi1.e(1.)循环;)“P211的8只1.ED全灭voidint()interrupt0USingO外中断0的中断服务函数EXO=O:禁止外部中断0中阍a=_crc1._(a,1.):左移一位P2=a;De1.ay(3):延时30OmSEXO=1:中断返回前,打开外部中断0中断voidDe1.ayfunsignednti)定义廷时函数DeIayQunsignedintj:for(:i>0:i-)for(j=O:j<333;j+*)晶撮为12MHz,,ImS;空函数14.如图所示,利用外部中断。和1,要求按动按械K1.,使8个发光二极管从DI到D8流水.按动按tK2使8个发光二极管从V18到VI1.流水.编写程序C51程序如下:Minc1.ude<AT89×51.h>Kinc1.ude<intrins.h>unsignedchara,i:voidDe1.ay1.unsignednti)定义延时函数。eav()unsignedintj:for(:i>0:i-)for(j=O:j<333:j+*)晶振为12MHZ;空函数voidmain()主函数EXO=I:EX1.=IiITO=I:IT1三1:EA=I:WhIIe(I)P1.=Oxff;)P1的8只发光二极管全灭)voidint1.()interrupt2using0EXO=O:a=Oxfe;for<i=0:i<8;i+)P2=a;a»_cro1._(a,1.);de1.ay(50);)EXO=IsU1×Ov2ORSTO1829XTA1.1.XTA1.2RSTPSNA1.£P1QfT2P1.1,2GXP12P13P14P1.5PIEP1.71.EDR1.OcoOOe1.O062O063O064O065O066O067RP1.POOADOPO1,AD1P0.2AD2P0.3.AD3PO11,AD4P05.AD5P06<,AD6P0.71.,AD7PZaABP21.'A9P22.'A1OP23'A11PZ4'At2P2&A13P2&27.,A15P30R×DP3.1'TXDP32'T11TOP3,1N11P3.4TDP3.5<T1P3.6WHP3.Z'7511空33宝麻SPACKIODBIDB2DB3DB4DBSD6tD07K111121316AT89C5215、设计8路抢答器:要求:主持人按下REST按钮时,8路有他按下,对应指示灯亮,数码管显示对应号码,此时其他按键不再有效。#inc1.ude<reg51.h>#defineuintunsignedint#defineucharunsignedcharucharnum=0×0a;选F七初值为Oa,研码为Oxffz数码管不“示ucharcodeseg(=0xc0,0xf9,0xa4r0xb0z0x99,0x92z0x82z0xf8z0x80z0x90,0xff);/主函数voidmain()(EA=I;EXO=I;ITO=O;/PXO=I;whi1.e(1.)PO=segnum;送字形编码voidit-0)interrupt0(EA=O;关中断SWitch(P1.)case0xFE:num=0x01;break;caseOxFD:num=OxO2;break;case0xFB:num=0x03;break;case0xF7:num=0x04;break;caseOxEFinum=OxOSjbreak;case0xDF:num=0x06;break;case0xBF:num=0x07;break;case0x7f:num=0x08;break;defau1.t:break:A=1;开中断16、P3.2-P3.5分别按4个按键S1.-S4.塌制4个4描子程序.例如,K1.键按卜,对应1号小灯点亮.:Itinc1.ude<reg51.h>Winc1.ude<itrins.h>定义要使用的IO11-MdefineGPI0_KEYP3独立犍盘用P3I1MdefineGPI0_1.EDPO/1.ed使用PO11声明全局函数一voidDe1.ay10ms(unsignedintc);延时IOmSunsignedcharKey-Sca11();voidmain(void)(unsignedcharIedVaIue,keyNum;IedVaIue=0x01;whi1.e(1)keyNum=Key_Scan();switchkeyNum)case(O×FE):IedVaIue=0x01;break;Case(OxFD):IedVaIue三0x02;break;Case(OxFB):IedVaIue=0x04;break;case(0xF7):IedVaIue=0x08;break;Defau1.t:break;)GPO-1.ED=IedVa1.ue;点亮1.ED灯unsignedcharKey-Sca11()(unsignedcharkeV3e=0,1;保在键依if(GPIO-KEY!=OxFF)检测按键K1.是否按卜(DeIay1.omS;消除抖动if(GPIO-KEY!=OxFF)再次检测按键是否按下kcyVa1.ue=GPIO_KEY;i三0;whi1.e(i<50)&&(GP1.e1.KEY!=OXFF)检测按键是否松开DeIay1.Oms(I);i÷*;)returnkeyVa1.ue;将读取到键f的值返回 VoidDe1.aYIOmS(SSignedintC)误差Ous一( unsignedchara,b;一for(;c>0;c-) for(b=38;b>0;b-)一( for(a=130;a>03-);一-)一)17知阵键盘的按键显示、#inc1.ude<reg51.h>M41B3*RN1.or“3»22*11>2<*U力5>外3TMrj3WWGJ1.力SrrhC0MKI,3TmtWindude<itrins.h>#mc1.ude<absacc.h>一WdefineUCharunsignedchar一#defineuintunsignedintucharseg11=0xc0r0xf9r0xa4,0×b0,0x99r0x92,0×82r0xf8,0x80f0xz0x88z0x83z0xc6z0xa1.,0x86,0x8e);共阳极1.ED数码管0F字型编眄SbitP20”2八0;数眄管位选控制瑞ucharcom1.rcom2;voidde1a(uintms)uintij;for(i三OJ<msii*÷)for(j=0j<124J+÷);-ucharkey-scan()- Uchartemp; ucharcom;de1.ay(10);/延时消抖P1.=OxW;/再次检测触盘有无迸按下行送岛电¥,列送低电平)If(P1.I=OxfO)/确实有键按下 (com1.=P1.;读取笫一次采集的数据P1.=OXof;行送低电平,列送高电平com2=P1.;/读取第:次采集的数据一)P1.=OxfO;/WhiIe(P1.I=OxfO);等待按键松开temp=com1.com2;得到按键编码SWitCh(temp)一一caseOxee:COm=0;break;得到犍值caseOxed:Com=1;break;caseOXeb:Com=2;break;一case0xe7:com=3;break; caseOxde:com=4;break;caseOxdd:m=S;break; caseOxdb:com=6;break;一case0xd7:com三7;break; caseOxbe:COm=8;break; caseOxbd:com=9;break;caseOxbb:m=10;break;一case0xb7:com=11;break;case0x7e:com=12;break;case0×7d:com=13;break;一case0x7b:com=14;break;一case0x77:com=15;break;一defau1.t:break;-retur(com);一voidmain()uchardat;whi1.e(1.)-P1.=OxfO;检测键盘有无键按下(行送高电平,列送低电平)- WhiIe(PU=OxfO)若无裸按下,则继续检测一(dat=key.scan();/右谊按下,调用键盘检测函数获取世鱼PO=segdat;H键fft送数码管显示- /P20=0;/送通救玛管- - 一18、选择T1.的方式1用于定时,要求在P1.Q脚上输出周期为IomS的方波,单片机采用12MHZ晶振.<tinc1.ude<reg51.h>inc1.ude<INTRINS.H>SbitP1_O=P1N);voidmain(void)P1.O=0;PIQ输出低电平TMOD=OxOI;/TO方式0定时THo=IO53酸56;给定时器TO送初值T1.0=10536%256;ETO=I;允许TO中断EA=I:开中断TRO=I;WhiIe(I)等待定时中阍)voidTO_service(void)interrupt1/P1.0位置1TRO=O;P1.-O=-P1.0;停止TO工作THO=6053版56;给定时器TO送初值TIo=60536%256;TRO=I:启动To19、试设定定时器/计数器TO为计数方式2。当TO引脚出现负跳变时,向CPU申请中断,将P1.0端口的小灯亮火状态改变一次ttinc1.ude<AT89XS1.h>voidmain()TMOD=0x06:/设园定时/TO为方式27T1.O=OxFFH:THO=OxFFH:EA=I;/总中断允许/ETO=I;定时器TO中断允许/TRO=Iwhi1.e(1);VoidTOJnt(Void)interrupt1/*定时潺TO中断极务程序/(THO=OxFF;/给TO装入16位初值,计数20000后,TO流出/T1.O=OxFF:P1_O='P1_O;中断处理程序/20、采用12MHz晶振,在P1.0脚上输出脚期为2.5S,高电平占空比为20%的脉冲信号。W1.nc1.ude<reg51.h>sbitP1.-O=P1.f;#defineucharunsignedchar;uchartimer;voidmain()(P1,0=1;TMOd=OXOI;THO=I553256;T1.0=15536%256;ETO=1;EA=I;TRO=1;whi1.e(1.);)voidTO-service(void)interrupt1TRO=O;THO=I553钝56;T1.0=15S36%256;timer+*;if(timer=10)P1.J)=0;e1.seif(timer=50)timer=0;P1.O=I;TRO=1;)21、设堆片机品振版率为6MHz,利用定时器TO产生定时脉冲.要求每隔2ms从P1.O脚上输出脉宽为2个机器周期的正脉冲。ic1.ude<reg51.h>Wic1.de<intrins.h>SbitP1_0=P1a0voidmain(vo1.d)(P1._o=o;/P1.O给出低电平TMOD=O;"T0方式。定时THO=OxEO;给定时器TO送初伯T1.O=Ox18;ETO=I;EA=I;TRO=I;启动To工作wh1.1.e1.);)voidTO-service()interruptTRO=O;THO=OxEO;给定时器TO送初俏T1.O=Ox18;P1.j)=1;_NOPJ);P1.-O=O;TRO=I;22、设计一个简易电子杪表,计时范第卜99秒。当第1次按下记时功能键时,杪表开WHIBh并显示时间:第2次按下计时功能键时,停止计时,计算两次按下计时功能键的时间并显示:第3次按下计时功能键时,秒表归0,等待下一次按键.ic1.ude<reg51.h>defineucharunsignedcharSbitkey=P3A7;sbitge=P21.;sbtShi=P2八0;uchartimer三0,n=0ut=0;ucharseg(1.=0xc0,0×f9,0xa4r0xb0z0x99,0×92z0x82,0xf8z0x80,0x90voidde1.ay(ucharms)ucharij;for(i=O;i<=mS;i+Jfor<j=0jj<=125j÷*);voiddsp1.ay()P0=segtimer%10);ge=O;de1.ay(5);ge=1.;P0=iegtimer10);shi=O;de1.ay;sh1.=1.;)voidmain()TMOD=OxOI;TH(M553破56;T1.0=15536%256;ETO=1;EA=I;Whi1.eu)disp1.ay();if(key三三O)23、有甲和乙两个AT89C51单片机,甲单片机读入其P1.口的开关状态后通过中行口发n+÷WhiIe(Ikey);) if(n=1.) TRO=I; if(=2) TRO=O; if(n=3) timer=0; f(n>=4) n=n%3; ) voidTO-service()interrupt1 count*+; if(count=20) timer*÷ count=0; if(timer=99) timer=0; THO=I553&Z56; T1.0=15S36%2S6; )送到乙单片机,乙单片机将接收到的数据送Mpi.通过发光.极管显示。U1.XTMIXTA1.?RSTieSTa.察U2eotoPUIg1.WaA呢Ptuyr04(xPOw6Pt7(D7PZWUJP21MP"A10P?A"P24A12P21.SA13P20A14P?M6-©*w>小强P3;F1.1.UHIWA,TaPJEI1.P)ftW门7电VU>OP*D1%2SW23皿1.“VUMPOA*D1P07W>7P2AA3",P7i>A栉PnVMIPZ4Z2PMsM3PtAMP?7A1>P3f<Dap>aP3-1.P3AT0P1.pvMXT1.'XTAUPST-N单片机甲通信发送程序"inc1.ude<reg51.h>voidmai110unsignedchari=0;TMOD=Ox20;设置T1.为定时方TH1.=Oxfd;波特率9600bpsT1.1.=Oxfd;SCON=OX40;设置本【I为方式1不允诈接收PCON=OxOO;TR1.=I;启动TiP1.=Oxff;WhiIe(I)(i=P1.;读取P1.的开关状态SBUF=i;发送数据“hieC11=O);变询申口是否发送完数据TI=O;清除T1.标志)24、采用ADC0809设计数据采集电路,将IN7通道输入的模拟让信号进行测量.结果以16进制显示.Q旧#inc1.ude<reg1.h>02Ainc1.ude<absacc.h>g口defineAD.IN7XBYTEOxfeff04sbitad-busy=P3'31/05-9:VOidmain(void)07whi1.e(1.)QeAD.IN7=0;0whi1.e(ad-busy=1.)1i10P1.=ADJNT1.;”121Idi *单片机乙机接收程序*/ Minc1.ude<regS1.h> voidmain()unsign