ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:58.56KB ,
资源ID:28995635      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28995635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PIC单片课程期末复习题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PIC单片课程期末复习题.docx

1、PIC单片课程期末复习题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. 振荡电路工作

3、方式有XT(晶体管/陶瓷谐振器)、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

4、KB。 19. PIC单片机内置的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单

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

7、C语言编程环境是MATLAB调试环境和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

8、=b/10%10;的结果是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

9、;i=4-j;i+) if(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() int tmp;

10、unsigned char i; 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的值

11、是多少? 1加到15的值送给Y,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的地址赋给Point1 Poin

12、t2=&b; /把变量b的地址赋给Point2 printf(%d,%dn,a,b); printf(%d,%dn,*Point1,*Point2); for(;) 该程序完成什么样的功能?执行程序后,a、b、*Point1、*Point2 的值是多少? 10、void main() float a; 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

13、 max(uint Values,uchar i) uint MaxDat; 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_c

14、omms(); a=100; b=10; Point1=&a; Point2=&b; printf(%d,%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 R

15、D0void delay_1ms(void);void delay_ms(unsigned int time);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(

16、); 2利用取表的方法,使端口C连接的广告灯实现左移右移,点亮的顺序为:RC0RC1RC2 RC7RC6RC5 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,0x

17、ef,0xf7,0xfb, 0xfd,0xfe ; void main() int i,j,a=0; TRISC=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 /包

18、含单片机内部资源预定义void delay(uint z) /延时子程序 uint x,y; for(x=z;x0;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、0

19、x5B、0x4F、0x66、0x6D、0x7D、0x07、0x7F、0x6F #include /包含单片机内部资源预定义uchar table10= 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的累加和。#

20、include /包含单片机内部资源预定义void main() int x,y=0; x=1;/TRISD=0x00; while(x=50) 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);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1