PIC单片机课程期末复习题.doc

上传人:飞****2 文档编号:52778434 上传时间:2022-10-23 格式:DOC 页数:12 大小:111.50KB
返回 下载 相关 举报
PIC单片机课程期末复习题.doc_第1页
第1页 / 共12页
PIC单片机课程期末复习题.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《PIC单片机课程期末复习题.doc》由会员分享,可在线阅读,更多相关《PIC单片机课程期末复习题.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、PIC单片机课程期末复习题一、PIC单片机硬件部分1. PIC16F87X单片机的工作电压为5V,共有40个引脚,有5组端口,33个可编程的I/O引脚。2. 单片机为满足嵌入式应用要求不断地增强其控制功能与外围接口功能,因此国际上已将单片机也叫做MCU。3. 单片机由5大功能部件组成:运算器、控制器、存储器、输入设备和输出设备。4. 运算器(ALU)-主要完成算术逻辑运算,控制器-是向各个部件发出控制指令,以协调各部分工作,自动执行命令。存储器分为数据存储器(RAM)和程序存储器(ROM)。RAM是存储临时数据或中间结果,ROM是存储程序和数表。5. PIC单片机中控制器主要部件由时钟电路、复

2、位电路、指令寄存器和程序(PC)计数器构成。6. PIC16F877A的RA端口中,RA4引脚不能作为模拟量输入通道。7. PIC16F877A的RB端口中具有电平变化中断的引脚是:RB4RB7四个引脚。8. 假设PIC单片机的系统振荡频率为4 MHz,那么执行一条非转移类指令的真实时间应该是1。9. PIC单片机上电复位后,所有的I/O引脚都将被置成输入方式。10. 堆栈的操作原则是先进后出 , 后进先出。11. 在PIC单片机程序计数器PC中存放的内容是下一条将要执行的指令的地址。12. 时序电路涉及的3个基本概念是振荡周期、机器周期和指令周期。13. 振荡电路工作方式有XT(晶体管/陶瓷

3、谐振器)、HS(高速晶体管/陶瓷谐振器)、LP(低功耗晶体管/陶瓷谐振器)和RC(阻容振荡器) 4种基本类型。14. PIC单片机端口驱动能力:高电平输出允许20mA,而低电平输出允许25mA。15. 对于端口B,如果8个引脚都作为输入,则它的初始化程序是:TRISB=0xFF;如果8个引脚都作为输出,则它的初始化程序是:TRISB=0x00;16. 如果希望屏蔽输入数据的低四位,可采用与数据0xF0相“与”。17在单片机的存储器中,RAM是随机存储器,ROM是只读存储器18. 如果一台计算机所配置的存储器首地址为0000H,末地址为2FFFH,那么它的存储容量为12 KB。 19. PIC单

4、片机内置的AD转换器共有8个模拟输入通道,每一通道是10位ADC。20. PIC单片机有3个定时器/计数器,分别是:TMR0、TMR1和TMR221. 在5个I/O端口中,PORTB具有可编程内部弱上拉电路,实际上若上拉电路就是I/O引脚通过一个10K的电阻接至高电平。 22 在PIC16F87X单片机定时器中,唯有TMR2不可设置用于计数,但却可以用于定时。23 TMR1定时器的预分频比率,除了有:1:1和1:2以外,还有1:4和1:824 定时器/计数器TMR1模块的内部结构也分为4部分,即输入信号选择控制电路、预分频器、同步控制电路和累加计数寄存器。25如果包括预分频器功能,当单片机系统

5、时钟频率为4MHz时,TMR0所能产生的最大定时时间为65536。26. 逐次逼近型ADC是由采样保持电路、电压比较电路、逐次逼近寄存器、数/模转换器DAC和锁存器等部分组成。27. PIC16F877 A单片机的ADC转换器具有10位的分辩率。28键盘扫描程序是控制系统中一个很重要的监控扫描子程序,在节点接通和断开时为了防止错判,常调用一个1020的延时程序来防止抖动。29. 在RB端口内部引脚嵌入了可编程输入弱上拉电路功能模块。30在PIC16F877A单片机ADC转换模块中,配置有8个模拟量输入通道,分别由RA和RE两个端口中的引脚承担.31PIC16F877A单片机共有3个定时/计数器

6、32. TMR0的位宽度为8。33. 如果外接一个10位的A/D转换器,当输入模拟电压为5V时,该器件最小分辨率是4.88 mV。34所谓“串行通信”是指将一个数据字按顺序逐位分时的传输方式。35. PIC16F87X单片机配置的ADC模/数转换器,就其工作原理来说,主要采用逐次逼近工作方式。36 当单片机进入中断服务程序后,为了保证下一次正确响应中断,必须完成的工作内容是清除中断标志位。37A/D转换器的3个主要的技术指标分别是转换时间和转换速率、分辨率和转换精度。38中断源向CPU提出的处理请求,称为中断申请。39实现中断处理功能的部件称为中断系统。40PIC单片机C语言编程环境是MATL

7、AB调试环境和HI-TECH编译器。二、pic语言基础部分1.c语言程序是由函数构成的。2.函数是c语言的基本理论。3.一个c源程序是由一个主函数main()和若干个其他函数组成。4.在一个c语言程序中,只能有一个主函数。5.c语言程序的执行总是从main函数开始的。6.c语言中的标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。7.程序有三种基本结构,分别是顺序结、分支(选择)结构、循环结构。8.语言while(!e);中的表达式(!e)等价于e=0。9. 语言while(e);中的表达式(e)等价于e=1。10.如果int a,b=528:;那么a=b/10%10;的结果

8、是2.11.a+=b;等价于a=a+b; a%=b;等价于a=a%b;12.a=2;等价于a=a2,等价于a=a2;13.若有说明:int a10;则在下面的四个选项中,对a数组元素的正确引用是a6。A.a10 B.a6 C.a5 D.a4.514.设有程序段 Void main() Int k=10 While(k=0) k=k+1 则循环体语句一次也不执行。15.表示图中坐标轴上阴影部分的正确表达式是(x=a) &( x=b)三、程序分析题1#include main() int a5=1,5,2,4,3,i,j,t; for(j=1;j=4;j+) for(i=0;i=4-j;i+) i

9、f(aiai+1)t=ai; ai=ai+1; ai+1=t; for(i=0;iy)? x : y; return(z); 这个程序实现什么功能?执行完程序后, c=?比较大小并送出最大值。y is 50.c=50;3main() int i; for(i=1;i+1;i+)if(i4)printf(“%dn”,i); break;printf(“%dn”,i+);该程序运行后结果是多少?1 3 5 4. int *Point1;int DispBuf5=0x1001,0x1002,0x1003,0x1004,0x1005;void main()inttmp; unsigned char i

10、; Point1=&DispBuf0; for(i=0;i=5;i+) tmp=*Point1;Point1+; 执行完程序后, tmp=?5void main() int n;x=0; for(n=1;n=30;n+) if(n%9!=0) continue; x+; printf(“%d”,x); 该程序的功能是什么?程序执行后,x的值是多少? 1到30中能够被9整除的数的个数。X=36void main() int x,y=0; x=1; while(x=15) y=y+x;x+; printf(“%d”,y); 该程序执行的功能是什么?程序执行后,y的值是多少? 1加到15的值送给Y,

11、y=1207int a=1,b=3,c=5,d=4; if(ab) if(cd) x=1; else if(ac) if(bb) if(ac) x=a;else x=c;else if(bc) x=b;else x=c;printf(“x is %dn”,x); 该程序完成什么样的功能?执行程序后,x的值是多少? 三个数比较的最大值。X =509、void main()int a,b;int *Point1,*Point2;init_comms();/初始化串行口a=100;b=10;Point1=&a;/把变量a的地址赋给Point1Point2=&b;/把变量b的地址赋给Point2pri

12、ntf(%d,%dn,a,b);printf(%d,%dn,*Point1,*Point2);for(;) 该程序完成什么样的功能?执行程序后,a、b、*Point1、*Point2 的值是多少? 10、void main() floata;a=fadd(12.3,334.5);fun();for(;); Void fun()folat a;a=fadd(111.3,34.5);float fadd(float a,float b)return a+b; 该程序的功能是什么?程序执行后,maina的值是多少? 11int max(uint Values,uchar i)uint MaxDat;

13、MaxDat=Values0; for(i=1;i10;i+)if(MaxDatValuesi)MaxDat=Valuesi;return MaxDat;void main() uint MaxNum; uint Score10=10,11,23,44,9,6,223,456,34,10;MaxNum=max(Score,10);for(;); 该程序完成什么样的功能?执行程序后,MaxNum的值是多少?12、void main()int a,b;int *Point1,*Point2;init_comms();a=100;b=10;Point1=&a;Point2=&b;printf(%d,

14、%dn,a,b);printf(%d,%dn,*Point1,*Point2);for(;) 该程序完成什么样的功能?执行程序后,x的值是多少?四、编程题1根据下图编写程序:每按下一次K0键时,LED灯的循环点亮方向与前一次相反(初始时的方向是由RC0-RC7循环点亮)。要求:画出程序设计的流程图;用PICC语言编写相应的程序,并标出注释。#include #define uchar unsigned char#define uint unsigned int#define key RD0void delay_1ms(void);void delay_ms(unsigned int time)

15、;const uchar table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;void main() int a,i=0; TRISC=0x00; PORTC=0xff;if(key=0) i+;if(i=2)a=0;if(i=1) for(a=0;a0;a-)PORTC=tablea;delay_ms(1000); void delay_1ms(void) unsigned int n; for(n=0;n0;time-) delay_1ms(); 2利用取表的方法,使端口C连接的广告灯实现左移右移,点亮的顺序为:RC0RC1RC2 RC7RC6RC5

16、 RC0如此重复循环。每一种状态延时的时间为100毫秒。要求:画出程序设计的流程图;用C语言编写相应的程序,并标出注释。#include #define uchar unsigned char#define uint unsigned intvoid delay_1ms(void);void delay_ms(unsigned int time);const uchar table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb, 0xfd,0xfe ; void main() int i,j,a=0; TRIS

17、C=0x00; PORTC=0xff; for(i=0;i14;i+) PORTC=tablei; delay_ms(1000); void delay_1ms(void) unsigned int n; for(n=0;n0;time-) delay_1ms(); 3编写程序,将PIC16F877A单片机的数据存储器(RAM)中地址从20H开始的32个地址单元的内容整体搬迁到40H开始的地址单元中。要求:画出程序设计的流程图;用C语言编写相应的程序,并标出注释。#include /包含单片机内部资源预定义void delay(uint z) /延时子程序uint x,y;for(x=z;x0

18、;x-)for(y=110;y0;y-);void main()TRISB=0x00;int *p1,*p2;int t32;*p1=0xff;/*p2=21H;for(int i=0;i32;i+)ti=p1i;p2i=ti;delay(1000);PORTB=p2i;4用PIC16F877A单片机的RC口控制1个共阴的LED数码管,要求循环显示字符09,显示字符间隔时间为100毫秒。下面给出电路图和09的字型段码表。09的字形码为:0x3F、0x06、0x5B、0x4F、0x66、0x6D、0x7D、0x07、0x7F、0x6F #include /包含单片机内部资源预定义uchar ta

19、ble10= 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F ;void delay_1ms(void) unsigned int n; for(n=0;n0;time-) delay_1ms(); void main() TRISC=0x00;while(1)int m;for(m=0;m10;m+) PORTC=tablem;delay_ms(100);5. 用C语言编写程序,求150的累加和。#include /包含单片机内部资源预定义void main() int x,y=0; x=1;/TRISD=0x00; while(x=50)

20、 y=y+x;x+; printf(“%d”,y); / PORTD=y; 6将变量a、b、c中预先存放的三个数做比较,将其中最大者找出并存入max变量中,同时将最大的数传送到PIC单片机的C端口上。#include /包含单片机内部资源预定义void main()TRISC=0x00;int a=50,b=8,c=10,max;if(ab) if(ac) max=a;else max=c;else if(bc) max=b;else max=c;PORTC=max; 7用端口C驱动一组八位发光二极管,使它产生(八位同时)亮灭亮灭。,如此重复循环,亮灭时间间隔为100毫秒。#include /包含单片机内部资源预定义void delay_1ms(void) unsigned int n; for(n=0;n0;time-) delay_1ms(); void main(void) TRISC=0x00;/D口定义为输出while(1) PORTC=0xff; /灯全亮,延时delay_ms(100);PORTC=0x00; /灯全灭,延时delay_ms(100);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁