PIC单片机练习题解答_第1页
PIC单片机练习题解答_第2页
PIC单片机练习题解答_第3页
PIC单片机练习题解答_第4页
PIC单片机练习题解答_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PIC单片机习题第一次一、选择题(B)1、PIC单片机采用总线结构。A、普林斯顿B、哈佛2、PIC16F877单片机精简指令集系统共C条。A75B、133C、35D、1113、PIC16F877单片机程序存储器和数据存储器的宽度是B和。A8,8B14,8G16,8D16,164、PIC16F877单片机共C中断源。A5B、8C、14D、165、PIC16F877单片机共C端口。A3B、4C、5D、66、PIC16F877单片机共有C|个定时/计数器A1B、2C、3D、47、PIC16F877单片机定时器1具有的特殊功能是D|。A定时B、计数C、PWMD、CCP8、若端口B接8个按键,则该端口的

2、TRISB应初始化成A0x00B、0xFFC、0x0FD、0xF09、TMR0勺位宽度为A8B、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、BC

3、DE端口的功能时,首先要执行什么操作?答:确定端口方向。3、PIC16F877单片机有几个定时/计数器?他们的区别是什么?答:TMR08位宽与WDTe用预分频器TMR116位宽与CPPK块配合使用可实现捕捉和比较功能TMR2只作定时;8位宽与PWM1块配合使用可实现脉宽调制输出功能4、PIC单片机具有的优点有哪些?答、1、哈佛总线结构;2、指令系统采用RISC技术;3、代码压缩率高;4、IO端口驱动负载能力较强及功耗低等。三、程序设计题1、电路如图所示,编程实现走马灯的运行效果,即DO-D7循环被依次点亮,但同一时刻只有一个灯亮。单片机主频为4MHz2、电路如图所示,编程实现4个数码管显示数值

4、5678。单片机主频为4MHz3、电路如图所示为3个按键控制8只LED灯显示状态,其中3个按键开关组成独立式键盘,分别用key1键控制灯依次左移循环点亮,key2键控制灯右移循环点亮,key3键控制8灯闪烁。第二次作业1、假如PIC单片机的系统时钟振荡频率是4MHz那么执行一条非转移类指令的真实时间应该是DusA.0.5B.2C.3D.12、在PIC单片机系统配置和程序设计中,采用很有特色的哈佛总线结构,其根本意义就在于B.A.减少CPU勺功耗B.数据存储器和程序存储器总线分离C.提高端口的驱动能力C.可以方便进行在线调试3、PIC单片机与其他单片机相比,具有以下这些明显的优点,但C除外.A.

5、哈佛总线结构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和

6、RDD.RA和RE二、AD转换的中断程序设计1、设计一个电子温度测量仪的雏形,温敏电阻(R)感受外界温度变化,单片机实时采集RA0引脚的模拟量将其转化为数字量,通过端口C连接的一位LED数码管显示AD转换结果的高8位(要求画出程序流程图,写出相关中断程序)。说明:R是一个温敏电阻,其电阻值随温度的变化而变化。#include<pic.h>_CONFIG(0x3B31);intadcdata=0;/constunsignedcharseg710=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/VoidinterruptISR()i

7、f(ADIE&&ADIF)ADIF=0;/adcdata=(unsignedint)ADRESH)<<8)+ADRESL;/ADGO=1;/voiddelay(unsignedintms)unsignedinti,j;for(i=ms;i>0;i-)for(j=0;j<67;j+);voiddisplay(unsignedintidata)unsignedchari,j;/unsignedintt;unsignedcharnumstr5=0,0,0,0,0;/处理数据idatanumstr1=idata/1000;/千位数numstr2=(idata%1

8、000)/100;/百位数numstr3=idata%100/10;十位数numstr4=idata%10;个位数for(i=0;i<10;i+)PORTD=0x01;for(j=1;j<=4;j+)PORTC=seg7numstrj;delay(5);PORTD=PORTD<<1;voidmain()chari;intvoltage=0;TRISA=0x01;/TRISB=0x00;TRISC=0x00;TRISD=0x00;/*ADFM=1;/右对齐PCFG3=0;PCFG2=0;PCFG1=0;PCFG0=0彼为模拟弓I脚,参考电压为VDDVSS/*以上5条语句可

9、以用ADCON1=0b00000000;ADCS1=1;ADCS0=0;使用内部RC1荡器作为时钟CHS2=0;CHS1=0;CHS0=0;/选择AN0通道ADON=1;/开启AD转换器/*以上6条语句可以用ADCON0=0b11000001;/*开中断ADIE=1;ADIF=0;PEIE=1;GIE=1;for(i=0;i<25;i+);/为了采用保持电路充电延时,超过25us即可ADGO=1;/启动一次A/D转换,止匕位为GO/DONEwhile(1)voltage=adcdata;/把当前测量的数字结果放入voltage中voltage=(long)voltage*5000/102

10、3);/数据处理display(voltage);/调显示电阻值子程序if(voltage>4900|voltage<100)/报警for(i=0;i<5;i+)delay(1);RB0=!RB0;发出500Hz的声音第三次作业一、选择题1、A/D转换器将转换的10位数字量放入AADRESHBADRESLC、ADCON0DADRESHADRESL2、PIC单片机I/O端口驱动负载的能力较强,每这并不表示所有端口都同时具有这样的功效.对整个单片机而言,所有/&入/输出驱动小于CmAA.100B.150C.250D.2003、预分频器最大的分配比是CA、1:64B、1:1

11、28C、1:2564、TXSTABA、接收状态控制寄存器B、发送状态控制寄存器C、接收寄存器D、发送寄存器5、PIC16F877单片机把要发送的数据放入A、TXREGB、RCREGC、TXSTAD、RCSTA6、PIC16F877单片机接收到一个数据,CPU自动将接收的数据放入ATXREGB、RCREGC、TXSTAD、RCSTA二、判断题1、PIC单片机采用哈佛总线结构,在芯片内部数据总线和指令总线分离,允许采用不同的字节宽度。2、PIC16F877单片机的数据存储器共有512字节单元空间,即0000Hk01FFH3、PIC16F877单片机的程序存储器共有8Kx14位单元空间,即0000H

12、-01FFH4、TIMER叫其他部件配合具有捕捉功能。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,软件清0013、TXIF发送中断标

13、志位和RCIF接收中断标志位都是硬件置1,软件清0。14、波特率指的是每秒中传送的字节数。15、异步通信是以帧为单位的。16、SPBR波特率因子寄存器写入的是波特率。17、PIC16F877单片机主要用PORTAPORTBPORTCPORTWPORTE中寄存器与外界交换的信息。18、OPTIONS存器的上电复位的初始状态为0xFF。三、程序设计1、下图为一个双机通信的线路图,2个单片机通过异步串行通信接口相连的方式为:RX和TX交叉连接。左边的单片机U1为发送,每按一下按键S1就发送一个数,从1开始发送,每送一个数,此数加1,(即09)。发送的数同时在D口上输出显示。读写其发送与接收程序,并补

14、充相应的语句。(两单片机主频都是4MHz双方通信协议为:波特率9600bps,数据格式:8位数据位,无奇偶校验,1位停止位/发送方串行通信U1,按一下发送键便发送一自动加1,到9后以后循环从0开始发送。#include<pic.h>_CONFIG(0x3B31);unsignedcharnum=0;/发送数据变量constcharseg10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/显昼值笔段码/延时子程序voiddelay(unsignedintms)unsignedinti,j;for(i=ms;i>0;i-)f

15、or(j=0;j<67;j+);个数据,从1开始发送,随后下键数值/发送初始化子程序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中断标志 发送指示灯亮 发送数据+1将发送数据/外部中断INT子程序voidinterruptI

16、NTISR()if(INTF=1&&INTE=1)INTF=0;/RB1=1;/num+;/if(num=10)num=0;TXREG=num_;/放入TXRE呼PORTD=segnum;/同时将发送的数据送PORTDI示/接收方串行通信U2/保证每次接收到完整的数据包delay(100);/延时RB1=0;/发送指示灯灭/主程序main()transinit();/调发送初始化子程序RB1=0;/发送指示灯灭while(1);/循环等待#include<pic.h> _CONFIG(0x3B31); const char seg10= 0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F; /延时子程序 void delay(unsigned int ms) unsigned int i,j; for(i=ms;i>0;i-)for(j=0;j<67;j+) ;/接收初始化子程序 void receivinit() TRISB=0x00;TRISC6=0; / TRISC7=1;/ TRISD=0x00;/ GIE=1; / PEIE=1;/ /PIC单片机主频:4MHz波特率9600bps/数据格式:8位数据位,无奇偶校验,1位停止位RCIE=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论