您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > PIC单片机练习题复习
PIC单片机习题第一次一、选择题(B)1、PIC单片机采用总线结构。A、普林斯顿B、哈佛2、PIC16F877单片机精简指令集系统共C条。A、75B、133C、35D、1113、PIC16F877单片机程序存储器和数据存储器的宽度是B和。A、8,8B、14,8C、16,8D、16,164、PIC16F877单片机共C中断源。A、5B、8C、14D、165、PIC16F877单片机共C端口。A、3B、4C、5D、66、PIC16F877单片机共有C个定时/计数器A、1B、2C、3D、47、PIC16F877单片机定时器1具有的特殊功能是D。A、定时B、计数C、PWMD、CCP8、若端口B接8个按键,则该端口的TRISB应初始化成A、0x00B、0xFFC、0x0FD、0xF09、TMR0的位宽度为A、8B、16C、32D、6410、PIC16F877单片机外围接口区域包括RA,RB,RC,RD和RE5个端口,而每个端口均有多条输入/输出可编程的引脚,合计5个端口共有__C____条引脚.A.30B.34C.33D.3111、PIC16F877单片机外围接口区域包括RA,RB,RC,RD和RE5个端口.在下列端口中,____D_____并不具备8条引脚.A..RA,RBB.RC,RDC.RB,RCD.RA,RE二、问答题1、如何确定I/O端口的输入和输出?答:根据方向控制TRIS确定,高电平做输出,低电平做输入。2、在确定A、B、C、D、E端口的功能时,首先要执行什么操作?答:确定端口方向。3、PIC16F877单片机有几个定时/计数器?他们的区别是什么?答:TMR08位宽与WDT共用预分频器TMR116位宽与CPP模块配合使用可实现捕捉和比较功能TMR2只作定时;8位宽与PWM模块配合使用可实现脉宽调制输出功能4、PIC单片机具有的优点有哪些?答、1、哈佛总线结构;2、指令系统采用RISC技术;3、代码压缩率高;4、IO端口驱动负载能力较强及功耗低等。三、程序设计题1、电路如图所示,编程实现走马灯的运行效果,即D0-D7循环被依次点亮,但同一时刻只有一个灯亮。单片机主频为4MHz。2、电路如图所示,编程实现4个数码管显示数值5678。单片机主频为4MHz。3、电路如图所示为3个按键控制8只LED灯显示状态,其中3个按键开关组成独立式键盘,分别用key1键控制灯依次左移循环点亮,key2键控制灯右移循环点亮,key3键控制8灯闪烁。第二次作业1、假如PIC单片机的系统时钟振荡频率是4MHz,那么执行一条非转移类指令的真实时间应该是__D___usA.0.5B.2C.3D.12、在PIC单片机系统配置和程序设计中,采用很有特色的哈佛总线结构,其根本意义就在于_______B___.A.减少CPU的功耗B.数据存储器和程序存储器总线分离C.提高端口的驱动能力C.可以方便进行在线调试3、PIC单片机与其他单片机相比,具有以下这些明显的优点,但___C_____除外.A.哈佛总线结构B.精减指令RISC结构C.存储器大D.驱动能力强4、在PIC16F877单片机系统配置中,特别引入A/D转换器(ADC),它具有_________个模拟量输入通道.A.5B.8C.10D.65、PIC16F877单片机的ADC转换器具有___A_____位的分辩率。A.10B.12C.8D.146、PIC16F877单片机多数I/O引脚都设计有第2功能,甚至还有第3功能,RA端口中可以承担A/D转换中负参考电压端(VREF-)的引脚是___B_____.A.RA0B.RA2C.RA3D.RA47、在PIC16F877单片机ADC转换模块中,配置有8个模拟量输入通道,分别由_______两个端口中的引脚承担.A.RA和RCB.RC和RBC.RB和RDD.RA和RE二、AD转换的中断程序设计1、设计一个电子温度测量仪的雏形,温敏电阻(R2)感受外界温度变化,单片机实时采集RA0引脚的模拟量将其转化为数字量,通过端口C连接的一位LED数码管显示AD转换结果的高8位(要求画出程序流程图,写出相关中断程序)。说明:R2是一个温敏电阻,其电阻值随温度的变化而变化。#includepic.h__CONFIG(0x3B31);intadcdata=0;//constunsignedcharseg7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//VoidinterruptISR(){if(ADIE&&ADIF){ADIF=0;//adcdata=(((unsignedint)ADRESH)8)+ADRESL;//ADGO=1;//}}voiddelay(unsignedintms){unsignedinti,j;for(i=ms;i0;i--)for(j=0;j67;j++){;}}voiddisplay(unsignedintidata){unsignedchari,j;//unsignedintt;unsignedcharnumstr[5]={0,0,0,0,0};//处理数据idatanumstr[1]=idata/1000;//千位数numstr[2]=(idata%1000)/100;//百位数numstr[3]=idata%100/10;//十位数numstr[4]=idata%10;//个位数for(i=0;i10;i++){PORTD=0x01;for(j=1;j=4;j++){PORTC=seg7[numstr[j]];delay(5);PORTD=PORTD1;}}}voidmain(){chari;intvoltage=0;TRISA=0x01;//TRISB=0x00;TRISC=0x00;TRISD=0x00;//*ADFM=1;//右对齐PCFG3=0;PCFG2=0;PCFG1=0;PCFG0=0;//全为模拟引脚,参考电压为VDD,VSS//*以上5条语句可以用ADCON1=0b00000000;ADCS1=1;ADCS0=0;//使用内部RC振荡器作为时钟CHS2=0;CHS1=0;CHS0=0;//选择AN0通道ADON=1;//开启AD转换器//*以上6条语句可以用ADCON0=0b11000001;//*开中断ADIE=1;ADIF=0;PEIE=1;GIE=1;for(i=0;i25;i++){;}//为了采用保持电路充电延时,超过25us即可ADGO=1;//启动一次A/D转换,此位为GO/DONEwhile(1){voltage=adcdata;//把当前测量的数字结果放入voltage中voltage=((long)voltage*5000/1023);//数据处理display(voltage);//调显示电阻值子程序if(voltage4900||voltage100)//报警{for(i=0;i5;i++){delay(1);RB0=!RB0;}//发出500Hz的声音}}第三次作业一、选择题1、A/D转换器将转换的10位数字量放入A、ADRESHB、ADRESLC、ADCON0D、ADRESH和ADRESL2、PIC单片机I/O端口驱动负载的能力较强,每这并不表示所有端口都同时具有这样的功效.对整个单片机而言,所有输入/输出驱动小于____C____mA。A.100B.150C.250D.2003、预分频器最大的分配比是CA、1:64B、1:128C、1:2564、TXSTA是BA、接收状态控制寄存器B、发送状态控制寄存器C、接收寄存器D、发送寄存器5、PIC16F877单片机把要发送的数据放入A、TXREGB、RCREGC、TXSTAD、RCSTA6、PIC16F877单片机接收到一个数据,CPU自动将接收的数据放入A、TXREGB、RCREGC、TXSTAD、RCSTA二、判断题1、PIC单片机采用哈佛总线结构,在芯片内部数据总线和指令总线分离,允许采用不同的字节宽度。2、PIC16F877单片机的数据存储器共有512字节单元空间,即0000H-01FFH。3、PIC16F877单片机的程序存储器共有8K×14位单元空间,即0000H-01FFH。4、TIMER0与其他部件配合具有捕捉功能。5、PIC16F877的三个定时器都是8位宽可编程定时器。6、PIC16F877单片机的A/D转换器具有8个模拟输入通道。7、PIC16F877单片机的A/D转换器具有8位分辨率。8、PIC16F877单片机的RA端口全部能做A/D转换器功能引脚。9、PIC16F877单片机的RB0端口除了作为一般IO口还可作外部中断输入端。10、PIC16F877单片机端口RB引脚中,只有RB4-RB7具有电平变化中断功能。11、PIC16F877单片机I/O端口驱动负载能力较弱。12、INTF外部中断标志位是硬件置1,软件清0。13、TXIF发送中断标志位和RCIF接收中断标志位都是硬件置1,软件清0。14、波特率指的是每秒中传送的字节数。15、异步通信是以帧为单位的。16、SPBRG——波特率因子寄存器写入的是波特率。17、PIC16F877单片机主要用PORTA、PORTB、PORTC、PORTD和PORTE5个寄存器与外界交换的信息。18、OPTION寄存器的上电复位的初始状态为0xFF。三、程序设计1、下图为一个双机通信的线路图,2个单片机通过异步串行通信接口相连的方式为:RX和TX交叉连接。左边的单片机U1为发送,每按一下按键S1就发送一个数,从1开始发送,每送一个数,此数加1,(即0-9)。发送的数同时在D口上输出显示。读写其发送与接收程序,并补充相应的语句。(两单片机主频都是4MHz)//双方通信协议为:波特率9600bps,数据格式:8位数据位,无奇偶校验,1位停止位//发送方串行通信U1,按一下发送键便发送一个数据,从1开始发送,随后按一下键数值自动加1,到9后以后循环从0开始发送。#includepic.h__CONFIG(0x3B31);unsignedcharnum=0;//发送数据变量constcharseg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//显示数值笔段码//延时子程序voiddelay(unsignedintms){unsignedinti,j;for(i=ms;i0;i--)for(j=0;j67;j++){;}}//发送初始化子程序voidtransinit(){TRISB=0x01;//发送按键为输入TRISC7=1;//RX引脚置为输入TRISC6=0;//TX引脚置为输出TRISD=0;//RD端口方向控制寄存器为输出PORTD=0;//PORTD清0INTE=1;//打开全局中断使能位GIE=1;//打开外部中断使能位SPBRG=25;//选择波特率9600RCSTA=0b10010000;//高速,8位数据TXSTA=0b00100100;//}//外部中断INT子程序voidinterruptINTISR(){if(INTF==1&&INTE==1){INTF=0;//清INT中断标志RB1=1;//发送指示灯亮num++;//发送数据+1if(num==10){num=0;}TXREG=num;//将发送数据放入TXREG中PORTD=seg[num];//同时将发送的数据送PORTD显示delay(100);//延时RB1=0;//发送指示灯灭}}//主程序main(){transinit();//调发送初始化子程序RB1=0;//发送指示灯灭while(1);//循环等待}//接收方串行通信U2//保证每次接收到完整的数据包//PIC单片机主频:4MHz,波特率9600bps//数据格式:8位数据位,无奇偶校验,1位停止位#includepic.h__CONFIG(0x3B31);co
本文标题:PIC单片机练习题复习
链接地址:https://www.777doc.com/doc-2886926 .html