PIC单片机练习题解答.docx

上传人:b****4 文档编号:3922840 上传时间:2023-05-06 格式:DOCX 页数:15 大小:166.20KB
下载 相关 举报
PIC单片机练习题解答.docx_第1页
第1页 / 共15页
PIC单片机练习题解答.docx_第2页
第2页 / 共15页
PIC单片机练习题解答.docx_第3页
第3页 / 共15页
PIC单片机练习题解答.docx_第4页
第4页 / 共15页
PIC单片机练习题解答.docx_第5页
第5页 / 共15页
PIC单片机练习题解答.docx_第6页
第6页 / 共15页
PIC单片机练习题解答.docx_第7页
第7页 / 共15页
PIC单片机练习题解答.docx_第8页
第8页 / 共15页
PIC单片机练习题解答.docx_第9页
第9页 / 共15页
PIC单片机练习题解答.docx_第10页
第10页 / 共15页
PIC单片机练习题解答.docx_第11页
第11页 / 共15页
PIC单片机练习题解答.docx_第12页
第12页 / 共15页
PIC单片机练习题解答.docx_第13页
第13页 / 共15页
PIC单片机练习题解答.docx_第14页
第14页 / 共15页
PIC单片机练习题解答.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PIC单片机练习题解答.docx

《PIC单片机练习题解答.docx》由会员分享,可在线阅读,更多相关《PIC单片机练习题解答.docx(15页珍藏版)》请在冰点文库上搜索。

PIC单片机练习题解答.docx

PIC单片机练习题解答

PIC单片机习题

第一次

一、选择题

(B)1、PIC单片机采用总线结构。

A、普林斯顿B、哈佛

2、PIC16F877单片机精简指令集系统共C条。

A、75B、133C、35D、111

3、PIC16F877单片机程序存储器和数据存储器的宽度是B和。

A、8,8B、14,8C、16,8D、16,16

4、PIC16F877单片机共C中断源。

A、5B、8C、14D、16

5、PIC16F877单片机共C端口。

A、3B、4C、5D、6

6、PIC16F877单片机共有C个定时/计数器

A、1B、2C、3D、4

7、PIC16F877单片机定时器1具有的特殊功能是D。

A、定时B、计数C、PWMD、CCP

8、若端口B接8个按键,则该端口的TRISB应初始化成

A、0x00B、0xFFC、0x0FD、0xF0

9、TMR0的位宽度为

A、8B、16C、32D、64

10、PIC16F877单片机外围接口区域包括RA,RB,RC,RD和RE5个端口,而每个端口均

有多条输入/输出可编程的引脚,合计5个端口共有__C____条引脚.

A.30B.34C.33D.31

11、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___us

A.0.5B.2C.3D.1

2、在PIC单片机系统配置和程序设计中,采用很有特色的哈佛总线结构,其根本意义就

在于_______B___.

A.减少CPU的功耗B.数据存储器和程序存储器总线分离

C.提高端口的驱动能力C.可以方便进行在线调试

3、PIC单片机与其他单片机相比,具有以下这些明显的优点,但___C_____除外.

A.哈佛总线结构B.精减指令RISC结构

C.存储器大D.驱动能力强

4、在PIC16F877单片机系统配置中,特别引入A/D转换器(ADC),它具有_________个

模拟量输入通道.

A.5B.8C.10D.6

5、PIC16F877单片机的ADC转换器具有___A_____位的分辩率。

A.10B.12C.8D.14

6、PIC16F877单片机多数I/O引脚都设计有第2功能,甚至还有第3功能,RA端口中

可以承担A/D转换中负参考电压端(VREF-)的引脚是___B_____.

A.RA0B.RA2C.RA3D.RA4

7、在PIC16F877单片机ADC转换模块中,配置有8个模拟量输入通道,分别由_______

两个端口中的引脚承担.

A.RA和RCB.RC和RBC.RB和RDD.RA和RE

二、AD转换的中断程序设计

1、设计一个电子温度测量仪的雏形,温敏电阻(R2)感受外界温度变化,单片机实时采集RA0引脚的模拟量将其转化为数字量,通过端口C连接的一位LED数码管显示AD转换结果的高8位(要求画出程序流程图,写出相关中断程序)。

说明:

R2是一个温敏电阻,其电阻值随温度的变化而变化。

#include

__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;i>0;i--)

for(j=0;j<67;j++)

{;}

}

voiddisplay(unsignedintidata)

{unsignedchari,j;

//unsignedintt;

unsignedcharnumstr[5]={0,0,0,0,0};

//处理数据idata

numstr[1]=idata/1000;//千位数

numstr[2]=(idata%1000)/100;//百位数

numstr[3]=idata%100/10;//十位数

numstr[4]=idata%10;//个位数

for(i=0;i<10;i++)

{PORTD=0x01;

for(j=1;j<=4;j++)

{PORTC=seg7[numstr[j]];

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;//全为模拟引脚,参考电压为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;i<25;i++){;}//为了采用保持电路充电延时,超过25us即可

ADGO=1;//启动一次A/D转换,此位为GO/DONE

while

(1)

{

voltage=adcdata;//把当前测量的数字结果放入voltage中

voltage=((long)voltage*5000/1023);//数据处理

display(voltage);//调显示电阻值子程序

if(voltage>4900||voltage<100)//报警

{for(i=0;i<5;i++)

{delay

(1);RB0=!

RB0;}//发出500Hz的声音

}

}

第三次作业

一、选择题

1、A/D转换器将转换的10位数字量放入

A、ADRESHB、ADRESLC、ADCON0D、ADRESH和ADRESL

2、PIC单片机I/O端口驱动负载的能力较强,每这并不表示所有端口都同时具有这样的

功效.对整个单片机而言,所有输入/输出驱动小于____C____mA。

A.100B.150C.250D.200

3、预分频器最大的分配比是C

A、1:

64B、1:

128C、1:

256

4、TXSTA是B

A、接收状态控制寄存器B、发送状态控制寄存器

C、接收寄存器D、发送寄存器

5、PIC16F877单片机把要发送的数据放入

A、TXREGB、RCREGC、TXSTAD、RCSTA

6、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开始发送。

#include

__CONFIG(0x3B31);

unsignedcharnum=0;//发送数据变量

constcharseg[10]=

{0x3F,0x06,0x5B,0x4F,0x66,

0x6D,0x7D,0x07,0x7F,0x6F};//显示数值笔段码

//延时子程序

voiddelay(unsignedintms)

{unsignedinti,j;

for(i=ms;i>0;i--)

for(j=0;j<67;j++)

{;}

}

//发送初始化子程序

voidtransinit()

{TRISB=0x01;//发送按键为输入

TRISC7=1;//RX引脚置为输入

TRISC6=0;//TX引脚置为输出

TRISD=0;//RD端口方向控制寄存器为输出

PORTD=0;//PORTD清0

INTE=1;//打开全局中断使能位

GIE=1;//打开外部中断使能位

SPBRG=25;//选择波特率9600

RCSTA=0b10010000;//高速,8位数据

TXSTA=0b00100100;//

}

 

//外部中断INT子程序

voidinterruptINTISR()

{if(INTF==1&&INTE==1)

{INTF=0;//清INT中断标志

RB1=1;//发送指示灯亮

num++;//发送数据+1

if(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位停止位

#include

__CONFIG(0x3B31);

constcharseg[10]=

{0x3F,0x06,0x5B,0x4F,0x66,

0x6D,0x7D,0x07,0x7F,0x6F};

//延时子程序

voiddelay(unsignedintms)

{unsignedinti,j;

for(i=ms;i>0;i--)

for(j=0;j<67;j++)

{;}

}

//接收初始化子程序

voidreceivinit()

{TRISB=0x00;

TRISC6=0;//

TRISC7=1;//

TRISD=0x00;//

GIE=1;//

PEIE=1;//

RCIE=1;//

SPBRG=25;//波特率9600

TXSTA=0b00100100;//高速,8位数据

RCSTA=0b10010000;//

}

//接收中断服务子程序

voidinterruptrcISR()

{unsignedcharx;//接收数据暂存变量

if(RCIE==1&&RCIF==1)

{RB1=1;//接收指示灯亮

X=RCREG;//将RCREG中的数据放入x中

PORTD=seg[x];//接收数据显示

delay(100);//

RB1=0;//

}

}

 

 

//

main()

{receivinit();//调接收初始化子程序

RB1=0;//接收指示灯灭

while

(1);//循环等待

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2