PIC单片机课程期末复习题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

期末复习提纲(2)1二、PICC语言基础部分1.C语言程序是由函数构成的。2.函数是C语言的基本单位。3.一个C源程序是由一个主函数main()和若干个其他函数组成。4.在一个C语言程序中,只能有一个主函数。5.C语言程序的执行总是从main函数开始的。6.C语言中的标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或者下划线。7.程序有三种基本结构,分别是顺序选择循环。8.语句while(!e);中的表达式(!e)等价于0。9.语句while(e);中的表达式(e)等价于1。10.如果inta,b=528;那么a=b/10%10;的结果是2。11.a+=b;等价于a=a+b;a%=b;等价于a=a%b;12.a=2;等价于a=a2;a=2;等价于a=a2;13.若有说明:inta[10];则在下面的四个选项中,对a数组元素的正确引用是a[6]。(A)a[10](B)a[6](C)a(5)(D)a[4.5]。14.设有程序段voidmain(){intk=10;while(k=0)k=k-1;}则循环体语句一次也不执行。15.表示图中坐标轴上阴影部分的正确表达式是。题三、简答题1.二进制有何特点?什么叫BCD码?由两个基本字符0,1组成,二进制数运算规律是逢二进一bcd称二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。。2.简述C语言的主要特点?简洁、方便运算丰富结构丰富限制不太严格、设计自由度大适用范围大,可移植性好abx期末复习提纲(2)23.PIC单片机具有的主要特点有哪些?精炼性能完善易学应用方便功能强大2.单片机主要有哪几部分组成的?运算器、控制器、存储器、输入输出设备构成3.简述PIC16F87X单片机响应中断的过程。中断请求保护断点中断响应中断返回4.怎么判断PIC16F87X单片机的A/D转换已经完成?ADRUN为05.中断现场保护指的是什么?一般保护那些寄存器?保护现场指的是把你所要转移的程序中所需要用到的寄存器也放到堆栈中;CSIPPSW6.常用的数码管显示器有哪两种?各有什么特点?共阴共阳;共阳0点亮驱动功率小阴1点亮大7.单片机中最常用的键盘有哪几种?各有什么特点?独立式键盘:编程简单浪费io口矩阵式复杂节省io口8.在程序设计中,基本程序结构有哪几种?9.PIC16F877的存储器构架分哪几大模块?8*14flsah型程序存储器512*8ram数据存储器256*8E²prom数据存储器10.TMR0、TMR1、TMR2三者的共同点和不同点有哪些?由时钟信号触发按递增方式累加工作T08位宽有可选的预分频器T116位有可编程的预分频器和一个可选的低频时基振荡器T28位只能定时11.叙述中断的概念,并说明一次中断过程可以分为几部分?Cup在运行时,由于内外部事件引起cpu暂时中止执行现程序,而去执行外设的程序,执行完后继续原来的程序执行中断请求中断判优中断响应中断处理中断返回12.异步通信方式与同步通信方式的最大区别是什么?它的优点何在?。字符间是否同步无间隔的;若传错,同步要重传整个,而异步只重传该位14.简述数码管动态显示电路的工作原理以及它的优缺点。期末复习提纲(2)3题四、程序分析题1.#includestdio.hmain(){inta[5]={1,5,2,4,3},i,j,t;for(j=1;j=4;j++)for(i=0;i=4-j;i++)if(a[i]a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i5;i++)printf(%d,a[i]);}这个程序实现什么功能?并写出程序执行后的结果是多少?重新排序数组。543212.voidmain(){inta=50,b=10,c;c=y(a,b);printf(“yis%d\n”,c);}y(intx,inty){intz;z=(xy)?x:y;return(z);}这个程序实现什么功能?执行完程序后,c=?比较大小并送出最大值。yis50.c=50;3.main(){inti;for(i=1;i+1;i++){if(i4){printf(“%d\n”,i);break;}printf(“%d\n”,i++);}}该程序运行后结果是多少?135期末复习提纲(2)44.int*Point1;intDispBuf[5]={0x3011,0x3012,0x3013,0x3014,0x3015,0x3016,0x3017};voidmain(){inttmp;unsignedchari;Point1=&DispBuf[0];for(i=0;i=5;i++){tmp=*Point1;Point1++;}}执行完程序后,tmp=?Tmp=123105.voidmain(){intn;x=0;for(n=1;n=30;n++){if(n%9!=0)continue;x++;printf(“%d”,x);}}该程序的功能是什么?程序执行后,x的值是多少?1到30中能够被9整除的数的个数。X=36.voidmain(){intx,y=0;x=1;while(x=15){y=y+x;x++;}printf(“%d”,y);}该程序执行的功能是什么?程序执行后,y的值是多少?1加到15的值送给Y,y=1207.inta=1,b=3,c=5,d=4;if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;期末复习提纲(2)5elsex=6;elsex=7;执行完程序后,x的值是____2____。8.voidmain(){inta=50,b=8,c=10,x;if(ab)if(ac)x=a;elsex=c;elseif(bc)x=b;elsex=c;printf(“xis%d\n”,x);}该程序完成什么样的功能?执行程序后,x的值是多少?三个数比较的最大值。。X=50题五、编程题1.根据下图编写程序:每按下一次K0键时,LED灯的循环点亮方向与前一次相反(初始时的方向是由RC0---RC7循环点亮)。要求:①画出程序设计的流程图;②用PICC语言编写相应的程序,并标出注释。#includepic.h#defineucharunsignedchar#defineuintunsignedint#definekeyRD0voiddelay_1ms(void);voiddelay_ms(unsignedinttime);constuchartable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};期末复习提纲(2)6voidmain(){inta,i=0;TRISC=0x00;PORTC=0xff;if(key==0){i++;if(i==2)a=0;}if(i==1){for(a=0;a8;a++){PORTC=table[a];delay_ms(1000);}}if(key==1){for(a=8;a0;a--){PORTC=table[a];delay_ms(1000);}}}voiddelay_1ms(void){unsignedintn;for(n=0;n50;n++){NOP();}}voiddelay_ms(unsignedinttime){for(;time0;time--){期末复习提纲(2)7delay_1ms();}}2.利用取表的方法,使端口C连接的广告灯实现左移右移,点亮的顺序为:RC0→RC1→RC2~→RC7→RC6→RC5~→RC0如此重复循环。每一种状态延时的时间为100毫秒。要求:①画出程序设计的流程图;②用C语言编写相应的程序,并标出注释。#includepic.h#defineucharunsignedchar#defineuintunsignedintvoiddelay_1ms(void);voiddelay_ms(unsignedinttime);constuchartable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};voidmain(){inti,j,a=0;TRISC=0x00;PORTC=0xff;for(i=0;i14;i++){PORTC=table[i];delay_ms(1000);}}期末复习提纲(2)8voiddelay_1ms(void){unsignedintn;for(n=0;n50;n++){NOP();}}voiddelay_ms(unsignedinttime){for(;time0;time--){delay_1ms();}}3.编写程序,将PIC16F877A单片机的数据存储器(RAM)中地址从20H开始的32个地址单元的内容整体搬迁到40H开始的地址单元中。要求:①画出程序设计的流程图;②用C语言编写相应的程序,并标出注释。#includepic.h//包含单片机内部资源预定义voiddelay(uintz)//延时子程序{uintx,y;for(x=z;x0;x--)for(y=110;y0;y--);}voidmain(){TRISB=0x00;int*p1[],*p2[];intt[32];*p1=0xff;//*p2=21H;for(inti=0;i32;i++){期末复习提纲(2)9t[i]=p1[i];p2[i]=t[i];delay(1000);PORTB=p2[i];}}4.用PIC16F877A单片机的RC口控制1个共阴的LED数码管,要求循环显示字符0~9,显示字符间隔时间为100毫秒。下面给出电路图和0~9的字型段码表。0~9的字形码为:0x3F、0x06、0x5B、0x4F、0x66、0x6D、0x7D、0x07、0x7F、0x6F#includepic.h//包含单片机内部资源预定义uchartable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};voiddelay_1ms(void){unsignedintn;for(n=0;n50;n++){NOP();}}voiddelay_ms(unsignedinttime){for(;time0;time--){delay_1ms();}}期末复习提纲(2)10voidmain(){TRISB=0x00;while(1){intm;for(m=0;m10;m++){PORTB=table[m];delay_ms(100);}}}5.用C语言编写程序,求1~50的累加和。#includepic.h//包含单片机内部资源预定义voidmain(){intx,y=0;x=1;//TRISD=0x00;while(x=50){y=y+x;x++;}printf(“%d”,y);//PORTD=y;}5.将变量a、b、c中预先存放的三个数做比较,将其中最大者找出并存入max变量中,同时将最大的数传送到PIC单片机的C端口上。#includepic.h//包含单片机内部资源预定义voidmain(){TRISD=0x00;inta=50,b=8,c=10,max;if(ab)if(ac)max=a;elsemax=c;elseif(bc)max=b;elsemax=c;期末复习提纲(2)11PORTD=max;}6.用端口C驱动一组八位发光二极管,使它产生(八位同时)亮→灭→亮→灭。。。。。,如此重复循环,亮灭时间间隔为100毫秒。#includepic.h//包含单片机内部资源预定义voiddelay_1ms(void){unsignedintn;for(n=0;n50;n++){NOP();}}voiddelay_ms(

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功