当前位置:文档之家› PIC单片机各寄存器汇总

PIC单片机各寄存器汇总

PIC单片机各寄存器汇总
PIC单片机各寄存器汇总

1) 芯片的振荡模式选择。

2) 片内看门狗的启动。

3) 上电复位延时定时器PWRT的启用。

4) 低电压检测复位BOR模块的启用。

5) 代码保护。

__CONFIG_CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC &_WRT_OFF &_LVP_OFF &_CPD_OFF ;

_CP_OFF 代码保护关闭

_WDT_OFF 看门狗关闭

_BODEN_OFF

_PWRTE_ON 上电延时定时器打开

_XT_OSC XT振荡模式

_WRT_OFF 禁止Flash程序空间写操作

_LVP_OFF 禁止低电压编程

_CPD_OFF EEPROM数据读保护关闭

LVP Low Voltage Program 低电压编程

CP Code Protect 代码保护

Date EE Read Protect EEPROM数据读保护

Brown Out Detect

Power Up Timer

Watchdog Timer

Flash Program Write

外部时钟输入(HS,XT或LP OSC配置)如下图:

陶瓷(ceramic)谐振器电容的选择如下表:

一般情况为:11 1111 0011 0001 0x3F31 或0x3F71

位13 CP:闪存程序存储器代码保护位1

1=代码保护关闭

0=所有程序存储器代码保护

位12 未定义:读此位为1 1

位11 DEBUG:在线调试器模式位1

1=禁止在线调试器,RB6和RB7是通用I / O引脚

0=在线调试功能开启,RB6和RB7专用于调试

位10:9 WRT1:WRT0:闪存程序存储器的写使能位11

PIC16F876A / 877A

11=写保护关闭,所有的程序存储器可能被写入由EECON控制

10=0000h-00FFh写保护,0100h-1FFFh写入由EECON控制

01=0000h-07FFh写保护,0800h-1FFFh写入由EECON控制

00=0000h-0FFFh写保护,1000h-1FFFh写入由EECON控制

位8 CPD:数据EEPROM存储器代码保护位(Code Protection bit) 1 1=数据EEPROM存储器代码保护关闭

0=数据EEPROM存储器代码保护功能开启

位7 LVP:低电压(单电源)在线串行编程使能位(Low V oltage Program) 0 1=RB3/PGM引脚有PGM功能,低电压编程启用

0=RB3是数字I / O 引脚,HV(高电压13V左右) 加到MCLR必须用于编程

位6 BOREN:欠压复位使能位(低电压检测复位)(Brown-out Reset(Detect)) 0 1=低电压检测复位BOR(BOD)模块启用

0=低电压检测复位BOR(BOD)模块关闭

位5:4 未定义:读此两位均为1 11

位3 PWRTEN:上电定时器使能位(上电复位延时定时器)(Power-up Timer) 0

1=上电定时器关闭

0=上电定时器开启

位2 WDT:看门狗定时器使能位0晶体振荡器电容的选择

1=看门狗开启如右图:

0=看门狗关闭

位1:0 Fosc1:Fosc0:振荡器选择位01

11=RC振荡器

10=晶体振荡器HS模式。参考振荡频率范围:>2 MHz

01=晶体振荡器XT模式。参考振荡频率范围:100 kHz ~ 4 MHz

00=晶体振荡器LP模式。参考振荡频率范围:<200 kHz

OPTION_REG寄存器:

位7 RBPU:PORTB输入引脚内部弱上拉使能控制位

1=所有PORTB的内部弱上拉被禁止

0=设定为输入状态的引脚内部弱上拉被使能

位6 INTEDG:选择RB0/INT引脚的中断沿

1=RB0/INT 上升沿中断

0=RB0/INT 下降沿中断

位5 T0CS:选择TMR0的计数时钟源

1=外部脉冲沿跳变计数

0=内部指令周期计数

位4 T0SE:选择计数的外部脉冲沿

1=T0CKI脉冲上升沿计数

0=T0CKI脉冲下降沿计数

位3 PSA:预分频器指派

1=预分频器分配给看门狗定时器WDT,此时TMR0的计数预分频为1:1

0=预分频器分配给TMR0

位2:0 PS2:PS0:设定预分频器的分频系数如下表所示

T1CON寄存器:

位7:6 没有定义,读此两位的结果为0

位5:4 T1CKPS1:T1CKPS0:TMR1预分频设置

11=预分频系数1:8

10=预分频系数1:4

01=预分频系数1:2

00=预分频系数1:1

位3 T1OSCEN:TMR1内部振荡器控制位

1=打开内部振荡器,反相放大器工作,需外接晶体产生振荡时钟

0=关闭内部振荡电路

位2 T1SYNC:TMR1同步/异步计数控制位

1=异步计数模式

0=同步计数模式

位1 TMR1CS:选择TMR1的计数时钟源

1=T1CKI引脚上的上升沿计数

0=内部指令周期计数(Fosc/4)

位0 TMR1ON:TMR1计数允许/禁止控制位

1=TMR1可以计数

0=TMR1计数暂停

T2CON寄存器:

位7 没有定义,读此位的结果为0

位6:3 TOUTPS3:TOUTPS0:TMR2计数溢出后分频设置0000=后分频系数1:1

0001=后分频系数1:2

……

1111=后分频系数1:16

位2 TMR2ON:TMR2计数允许/禁止控制位

1=TMR2可以计数

0=TMR2计数暂停

位1:0 T2CKPS1:T2CKPS0:TMR2预分频设置

00= 1:1预分频

01= 1:4预分频

1x= 1:16预分频

CCPxCON寄存器:

位7:6 没有定义,读此两位的结果为0

位5:4 CCPxX:CCPxY:TMR1预分频设置

捕捉模式:未用

比较模式:未用

PWM模式:

PWM模式占空比控制字为10位,最低2位即放在CCPxX:CCPxY中,高8位

数据放入专门的一个寄存器CCPRxL

位3:0 CCPxM2:CCPxM0:CCP模块工作模式选择位

0000 =关闭所有模式,CCPx模块处于复位状态

0100 =捕捉模式,每一个上升沿捕捉一次

0101 =捕捉模式,每一个下降沿捕捉一次

0110 =捕捉模式,每4个上升沿捕捉一次

0111 =捕捉模式,每16个上升沿捕捉一次

1000 =比较模式,预置CCPx引脚输出为0,比较一致时CCPx引脚输出为1

1001 =比较模式,预置CCPx引脚输出为1,比较一致时CCPx引脚输出为0

1010 =比较模式,当比较一致时CCPxIF=1产生软中断,CCPx引脚没有变化

1011 =比较模式,当比较一致时CCPxIF=1且触发特殊事件

11xx =PWM模式

INTCON寄存器:

位7 GIE:全局中断使能控制位

1=允许中断,但各中断还有独立的使能控制位

0=禁止所有的中断,不管各自的中断是否允许

位6 PEIE:外围功能模块中断允许控制位

1=允许外围功能模块中断

0=禁止所有外围功能模块中断

位5 TMR0IE(T0IE):TMR0中断使能控制位

1=允许TMR0中断

0=禁止TMR0中断

位4 INTE:RB0/INT引脚沿跳变中断允许控制位

1=允许RB0/INT引脚中断

0=禁止RB0/INT引脚中断

位3 RBIE:PORTB引脚状态变化中断使能控制位

1=允许PORTB状态变化中断

0=禁止PORTB状态变化中断

位2 TMR0IF(T0IF):TMR0中断标志位

1=TMR0计数溢出发生中断,必须用软件将其清除

0=TMR0没有溢出中断

位1 INTF:RB0/INT引脚沿跳变中断标志

1=RB0/INT引脚发生中断,必须用软件将其清除

0=没有发生RB0/INT引脚中断

位0 RBIF:PROTB引脚状态变化中断标志位

1=PORTB引脚出现状态变化中断,必须用软件将其清除

0=PORTB引脚没有发生状态变化中断

STATUS寄存器:

PIE1寄存器:

PIR1寄存器:

PIE2寄存器:

PIR2寄存器:

SSPSTAT寄存器:

位7 SMP:SPI模式下数据输入采样点控制(sample采样)

SPI主模式(Serial Peripheral interface 串行外围设备接口)

1=输出时间的中点对输入数据采样

0=输出时间结束时对输入数据采样

SPI从模式

此位必须保持为0

位6 CKE:SPI模式下时钟沿选择,与CKE位一起实现SPI时钟极性的4中模式CKP=0 (clock edge 时钟沿)

0=数据在时钟的上升沿时发送

1=数据在时钟的下降沿时发送

CKP=1

0=数据在时钟的下降沿时发送

1=数据在时钟的上升沿时发送

位5 D/A:数据/地址控制位,只适用于I2C模式

0=表明接收或发送的是地址码

1=表明接收或发送的是普通数据

位4 P:停止位指示,只适用于I2C模式。当SSP模块没有启用时,此位为0 1=表明刚才检测到一个停止位(芯片复位后此位为0)

0=没有检测到停止位

位3 S:起始位指示,只适用于I2C模式。当SSP模块没有启用时,此位为0 1=表明刚才检测到一个起始位(芯片复位后此位为0)

0=没有检测到起始位

位2 R/W:读/写命令指令,只适用于I2C模式。

在I2C通信时如果寻址地址匹配,该位就留有读或写的标志。其有效期限到出现

下一个起始位/停止位/无应答信号为止

0=此次I2C通信为写操作

1=此次I2C通信为读操作,与BF位配合可以判断主器件有/无应答位输出

位1 UA:地址更新标志,只适用于I2C通信时的10位寻址模式

0=无需地址更新

1=表明SSPADD寄存器需要更新地址

位0 BF:数据缓冲器满标志

接收时(SPI和I2C)

0=接收没有完成,SSPBUF寄存器为空

1=接收已经完成,SSPBUF寄存器满

发送时(只适用于I2C)

0=发送完成,SSPBUF寄存器为空

1=正在发送过程中,SSPBUF寄存器满

SSPCON(SSPCON1)寄存器:

位7 WCOL:发送数据写入时的冲突标志

0=写入时没有冲突发生

1=当SSPBUF正在发送数据时程序又对其进行数据写入而发送冲突,此位被置

位后必须有软件将其清0

位6 SSPOV:接收数据溢出标志位

SPI模式

0=数据接收没有溢出

1=当SSPBUF寄存器中所接收的数据还没有被读走时,内部的移位寄存器SSPSR

内又有新的数据就绪,此时SSPSR内的数据将被丢弃,SSPBUF不会被更新。

SPI模式下接收数据溢出只可能发生在从模式下。如果在从模式下只发送数据,

发送完毕后应用程序也必须读一次SSPBUF以免发生溢出标志。在主模式下得

一次接收(或发送)过程都必须通过写SSPBUF才能启动,故一般不会出现接

收溢出,除非你在接收数据到来后故意不去读SSPBUF寄存器。

I2C模式

0=接收数据没有溢出

1=当SSPBUF中原来接收到的数据还没有被取走时又有新的数据被收到。在I2C

处于数据发送模式时,此位不起任何作用。但无论是接收还是发送,如果此位被

置1,必须用软件将其清0。

位5 SSPEN:同步串行接口使能控制位

SPI模式

1=开启SPI功能,配置芯片的SCK、SDO、SDI、和SS引脚为SPI通信引脚

0=SSP模块被关闭,相应的引脚为普通数字I/O功能。

I2C模式

1=开启I2C功能,配置芯片的SDA、SDL为I2C通信引脚

0=SSP模块被关闭,相应的引脚为普通数字I/O功能。

位4 CKP:时钟极性控制位(clock polarity时钟极性)

SPI模式

0=在通信的空闲状态下时钟处于低电平

1=在通信的空闲状态下时钟处于高电平

I2C模式用于时钟SCK的释放控制

0=将时钟持续拉低,用以保证数据建立或准备所需的时间

1=允许主器件控制时钟变化

位3:0 SSPM3:SSPM0:同步串行接口工作模式选择M=Mode 模式

0000=SPI主模式,时钟=fosc/4

0001=SPI主模式,时钟=fosc/16

0010=SPI主模式,时钟=fosc/64

0011=SPI主模式,时钟=TMR2的溢出率/2

0100=SPI从模式,时钟=SCK引脚输入,使用SS引脚控制

0101=SPI从模式,时钟=SCK引脚输入,无SS引脚控制(SS可以作为普通I/O)

0110=I2C从模式,7位寻址发送

0111=I2C从模式,10位寻址发送

1000=I2C主模式,时钟=fosc/(4(SSPADD+1))

1001=保留

1010=保留

1011=软件控制型I2C主模式,硬件从模式功能关闭

1100=保留

1101=保留

1110=I2C从模式,7位寻址发送,起始位和停止位产生中断响应

1111=I2C从模式,10位寻址发送,起始位和停止位产生中断响应

SSPCON2寄存器:(只有带MSSP模块的有该寄存器且只在I2C模式时有用)

位7 GCEN:广播呼叫使能位(只适用于I2C从模式)

0=禁止广播寻呼

1=当接收到特殊的广播寻呼地址0x00时,允许产生中断

位6 ACKSTST:应答位接收状态标志(只适用于I2C主模式发送数据)

0=发出数据后接收到从器件发出的应答位

1=发出数据后从器件没有产生应答位

位5 ACKDT:应答数据位(只适用于I2C主模式接收数据)

0=数据收到后主器件将发出应答位

1=数据收到后主器件将不发出应答位

位4 ACKEN:使能硬件自动产生应答位(只适用于I2C主模式接收数据)0=无应答位发出

1=启动SDA和SCL总线上产生ACKDT所设置的应答位。在应答位发出后此位

被硬件自动清零0

位3 RCEN:接收使能位(只适用于I2C主模式)

0=禁止I2C接收数据

1=启动I2C接收8位数据,8位数据接收完毕后硬件自动清0

位2 PEN:使能硬件自动产生停止位(只适用于I2C主模式)

0=无停止位发出

1=启动SDA和SCL总线上产生停止位。停止位发出后此位被硬件自动清零0 位1 RSEN:使能硬件自动产生重复起始位(只适用于I2C主模式)

0=无重复起始位发出

1=启动SDA和SCL总线上产生重复起始位。重复起始位发出后此位被硬件自动

清零0

位0 SEN:使能硬件自动产生起始位/电平延伸控制位

I2C主模式

0=无起始位发出

1=启动SDA和SCL总线上产生起始位。起始位发出后此位被硬件自动清零0

I2C从模式

0=只在从器件发送数据时延伸时钟电平

1=在从器件接收或发送数据时延伸时钟电平

ADCON0寄存器:(设置ADC模块工作方式)

位7:6 ADCS1:ADCS0:A/D转换时钟选择

00= fosc/2,即时钟源自于芯片主振荡的2分频

01= fosc/8,即时钟源自于芯片主振荡的8分频

10= fosc/32,即时钟源自于芯片主振荡的32分频

11= f RC,即时钟源自于AD模块内自带的RC振荡频率

位5:3 CHS2:CHS0:A/D转换输入模拟信号通道选择

000=通道0,AN0

001=通道1,AN1

010=通道2,AN2

011=通道3,AN3

100=通道4,AN4

101=通道5,AN5

110=通道6,AN6

111=通道7,AN7

位2 GO/DONE:A/D转换启动控制位和转换状态标志位

这一位既是A/D转换控制位,通过软件将其置1后开始一个A/D转换过程;同

时又是一个标志位

1=A/D转换正在进行中

0=A/D转换过程结束

位1 未定义:程序中记得该位要始终保持为0

位0 ADON:A/D模块启动控制位

1=A/D转换模块开始工作

0=A/D转换模块被禁止,该部分电路没有任何耗电

ADCON1寄存器:(设置ADC模块端口和数据格式)

位7 ADFM:A / D转换结果格式选择位(AD Result Format Select Bit)0=结果左对齐,ADRESL 寄存器的低6位读作0

1=结果右对齐,ADRESH寄存器的高6位读作0

位6 ADCS2:A / D转换时钟频率选择位(ADCON1位在阴影区域,并以粗体字)

位5:4 未定义:读取这些位将得到0

位3:0 PCFG3:PCFG0:A / D模块引脚功能配置位

这4个位决定了功能复用的引脚哪些作为普通数字I/O,哪些作为A/D转换时的

电压信号输入。如下表所示:

TXSTA数据发送控制及状态寄存器:

位7 CSRC:同步通信时钟源选择控制位

异步通信时此位不起作用,可以是任意值

同步通信时

1=选择同步通信主模式,时钟信号通过波特率发生器自己产生

0=选择同步通信从模式,时钟信号由其他主芯片提供

位6 TX9:9位数据格式发送使能控制位

1=选择9位数据格式发送

0=选择8位数据格式发送

位5 TXEN:发送使能控制位

1=允许发送数据

0=数据发送被禁止

位4 SYNC:USART工作模式选择

1=选择同步通信模式

0=选择异步通信模式

位3 未定义:读此位结果为0

位2 BRGH:波特率控制位

异步通信时

1=高速波特率发生模式

0=低速波特率发生模式

位1 TRMT:发送移位寄存器状态位,该位只读

1=移位寄存器为空

0=移位寄存器正在忙于发送数据

位0 TX9D:使用9位数据格式时的第9位发送数据,可以作为奇偶校验位

RCSTA数据接收控制及状态寄存器:

位7 SPEN:串行通信端口使能控制位

1=USART通信端口打开,模块接管引脚RX/DT和TX/CK

0=USART通信端口关闭

位6 RX9:9位数据格式接收使能控制位

1=选择9位数据格式接收

0=选择8位数据格式接收

位5 SREN:单次接收使能控制位

异步通信时,此位不起作用

同步通信主模式时

1=启动单次接收方式,当接收完一个数据后自动清0

0=禁止接收数据

位4 CREN:数据连续接收控制位

异步通信时

1=连续接收串行数据

0=禁止接收数据

同步通信时

1=选择数据连续接收模式,直到此位被清0,CREN将超越SREN的控制

0=禁止数据连续接收,将由SREN决定是否启动单次数据接收

位3 未定义:读此位结果为0

位2 FERR:接收数据帧错误标志,只读

1=当前接收的数据发生帧错误,读一次RCREG寄存器该位将被更新

0=没有帧错误

位1 OERR:接收数据溢出错误,该位只读

1=发生溢出错误,只有通过清除CREN位才能将其清除

0=没有溢出错误

位0 RX9D:使用9位数据格式时的第9位接收数据,可以作为奇偶校验位

CMCON寄存器:

CVRCON CONTROL寄存器:

PCON寄存器:

EECON1寄存器:

TRISE寄存器:

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

51系列单片机寄存器详解

AUXR:辅助寄存器 字节地址=8EH,不可位寻址 - - - WDIDLE DISRTO - - DISALE WDIDLE:WTD在空闲模式下的禁止/允许位 当WDIDLE=0时,WDT在空闲模式下继续计数 当WDIDLE=1时,WDT在空闲模式下暂停计数 DISRTO:禁止/允许WDT溢出时的复位输出 当DISRTO=0时,WDT定时器溢出时,在RST引脚输出一个高电平脉冲 当DISRT0=1时,RST引脚为输入脚 DISALE :ALE禁止/允许位 当DISALE=0时,ALE有效,发出恒定频率脉冲 当DISALE=1时,ALE仅在CPU执行MOVC和MOVX类指令时有效,不访问外寄存器时,ALE不输出脉冲信号 AUXR1:辅助寄存器1字节地址A2,不可位寻 - - - -- - - DPS DPS:数据指针寄存器选择位 当DPS=0时,选择数据指针寄存器DPRT0 DPRT1时,选择数据指针寄存器DPS 当= PSW:程序状态字 CY——进位标记 AC——半进位标记 F0——用户设定标记 RS1、RS0——4个工作寄存器区的选择位。 VO——溢出标记 P——奇偶校验标记 PCON:电源控制器及波特率选择寄存器 字节地址=87H,不可位寻址 SMOD - - POF GF1 GF0 PD IDL SMOD——波特率倍增位 GF1、GF0——用户通用标记 PD——掉电方式控制位,PD=1时进入掉电模式 IDL——空闲方式控制位,IDL=1时进入空闲方式 在AT89S51中PCON.4是电源断电标记位POF,上电是为1 IE:中断允许控制寄存器

EA:中断允许总控制位 当EA=0时,中断总禁止。 当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。 EX0( EX1):外部中断允许控制位 当EX0( EX1)=0 禁止外中断 当EX0( EX1)=1 允许外中断 ET0(EX1):定时/计数中断允许控制位 当ET0(ET1)=0 禁止定时(或计数)中断 当ET0(ET1)=1 允许定时(或计数)中断 ET2:定时器2中断允许控制位,在AT89S52、AT89C52中 ES:串行中断允许控制位 当ES=0 禁止串行中断 当ES=1 允许串行中断 IP:中断优先级控制寄存器 PX0——外部中断0优先级设定位 PT0——定时中断0优先级设定位 PX1——外部中断1优先级设定位 PT1——定时中断1优先级设定位 PS——串口中断优先级设定位 优先级设定位2PT2——定时器SCON:串行口控制寄存器 SM0、SM1:串行口工作方式选择位 SM2:多机通信控制位 REN:允许/禁止串行口接收的控制位 TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。

单片机定时器实验程序

ORG 0000H LJMP START ORG 001BH ;定时器/计数器1中断程序入口地址 LJMP INT ORG 0100H START: MOV TMOD,#10H ;计数器置为方式1 MOV TL1,#0B0H ;装入时间常数 MOV TH1,#03CH SETB ET1 ;允许定时器T1中断 SETB EA ;允许总中断 SETB TR1 ;开始计数 MOV R0,#05H ;05是进入中断的次数LOOP: MOV R1,#00H MOV R2,#26H ;灯的状态循环次数LOOP1: MOV A,R1 ACALL TABLE MOV P1,A INC R1 LOOP2: CJNE R0,#00H,LOOP2 MOV R0,#05H DJNZ R2,LOOP1 LJMP LOOP TABLE: INC A ;从表中取显示码入累加器 MOVC A,@A+PC RET DB 0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,00H,0FFH,0FEH DB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH DB 0EFH,0F7H,0FBH,0FDH,0FEH,0FFH,00H,0FFH,00H INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#0B0H ;重置时间常数初值 MOV TH1,#03CH SETB TR1 ;开始计数 RETI ;中断返回 END

将T1改为T0,并且溢出间隔为0.05s ORG 0000H LJMP START ORG 001BH ;定时器/计数器1中断程序入口地址 LJMP INT ORG 0100H START: MOV TMOD,#01H ;计数器置为方式1 MOV TL1,#78H ;装入时间常数 MOV TH1,#0CH SETB ET0 ;允许定时器T1中断 SETB EA ;允许总中断 SETB TR0 ;开始计数 MOV R0,#05H ;05是进入中断的次数 LOOP: MOV R1,#00H MOV R2,#25H ;灯的状态循环次数 LOOP1: MOV A,R1 ACALL TABLE MOV P1,A INC R1 LOOP2: CJNE R0,#00H,LOOP2 MOV R0,#05H DJNZ R2,LOOP1 LJMP LOOP TABLE: INC A ;从表中取显示码入累加器 MOVC A,@A+PC RET DB 0FFH,07FH,3FH,1FH,0FH,07H,03H,01H,00H DB 80H,81H,0C1H,0C3H,0E3H,0E7H,0F7H,0FFH DB 00H,0FFH,00H,0FFH,0EFH,0E7H,0C7H,0C3H,83H,81H,01H,00H DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#78H ;重置时间常数初值 MOV TH1,#0CH SETB TR1 ;开始计数 RETI ;中断返回 END

单片机原理及应用(答案)

1:单片机8031的XTAL1和XTAL2引脚是()引脚。 1.外接定时器 2.外接串行口 3.外接中断 4.外接晶振 2:LU表示()。 1.累加器 2.程序状态字寄存器 3.计数器 4.算术逻辑部件 3:单片机上电复位后,PC的内容和SP的内容为()。 1.0000H,00H 2.0000H,07H 3.0003H,07H 4.0800H,08H 4:8031单片机的定时器T1用作定时方式时是()。 1.由内部时钟频率定时,一个时钟周期加1 2.由内部时钟频率定时,一个机器周期加1 3.由外部时钟频率定时,一个时钟周期加1 4.由外部时钟频率定时,一个机器周期加1 5:INTEL8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 6:当需要从MCS-51单片机程序存储器取数据时,采用的指令为() 1.MOV A, @R1 2.MOVC A, @A + DPTR 3.MOVX A, @ R0 4.MOVX A, @ DPTR 7:若PSW的RS1/RS0=10则单片机工作寄存器工作在()。 1.0区 2.1区

3.2区 4.3区 8:假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。 1.6H 2.37H 3.38H 4.39H 9:单片机上电复位后,堆栈区的最大允许范围是个单元。 1.64 2.120 3.128 4.256 10:在MCS-51指令中,下列指令中()是无条件转移指令。 1.LCALL addr16 2.DJNZ direct,rel 3.SJMP rel 4.ACALL addr11 11:INTEL 8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 12:单片机中的程序计数器PC用来()。 1.存放指令 2.存放正在执行的指令地址 3.存放下一条指令地址 4.存放上一条指令地址 13:8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是()。 1.P0 2.P1 3.P2 4.P3

51单片机定时器秒表设计程序

51单片机定时器秒表设计程序 #include typedef unsigned char UINT8; typedef unsigned int UINT16; code UINT8 SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; code UINT8 SHU[10] ={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; code UINT8 SELECT[8] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; #define S1 0x0e #define S2 0x0d #define S3 0x0b #define S4 0x07 sbit SPEAK=P3^5; sbit P3_3=P3^3; UINT8 mSecond,Second; void Delay(UINT16 t) { UINT16 i,j; for(i=0;i

51_52系列单片机特殊功能寄存器及资源映射方式总结

51系列单片机特殊功能寄存器总结 第一节:片内RAM映射: 51:00H_7FH 128B片内(DATA),其中00H-07H: bank0,08H-0FH: bank1, 10H-17H: bank2,18H-1FH:bank3. 20H-2FH: 位寻址区(bdata) 30H-7FH: 堆栈区。 80H-FFH: SFR区 52:增加了80H-FFH间接寻址的片内RAM(IDATA) 第二节:特殊功能寄存器(51) ①TCON,地址:88H,定时器计数器控制,中断控制 IT0/1:外部中断触发方式控制,置0,为低电平触发,置1,为下降沿触发。每个机器周期的S5P2器件多外部触发采样。响应中断需要两个机器 周期。 IE0/1:外部中断请求标志,CPU响应中断后,硬件自动将IE清0 TFx,定时器Tx溢出标志,计数溢出时,硬件将其置位,响应中断后,硬件将其清0,该位可由程序查询。 TRx, 定时器x运行控制,置1则启动定时器,清0则停止定时器。 ②TMOD,地址:89H, 定时器计数器工作方式控制 counter对外部输入外冲计数,计一次数需要两个机器周期。 GATE: 取反后与外部中断输入或运算后再同TCON的TRx位相与控制计数器的启与停,GATE为0时,允许TRx开启或停止计数器,为1时,允许INTx开启或停止计数器。 ③TL0, 地址:8AH, 定时器0低八位 ④TL1, 地址:8BH, 定时器1低八位

⑤TH0, 地址:8CH, 定时器0高八位 ⑥TH1, 地址:8DH, 定时器1高八位1 ⑦SCON, 地址:98H,串行通信控制寄存器 S M2:方式2和方式3的多机通信控制位,在方式0中,SM2应置0。 REN:允许串行接收位,由软件置1时,允许接收,清0时。禁止接收 TB8:方式2和方式3中,发送的第9位数据,需要时由软件置位或复位。 RB8: 方式2和方式3中,接收到的第9位数据,在方式1时,RB是接收到停止位,在方式0时,不使用RB8. TI:接收中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。TI必须由软件清0。 RI:接收中断标志,由硬件置1。在方式0时(SM2应置0),接收到第8位结束时置1,当SM2=0的其他方式(方式0,1,3)时,接收到停止位置位“1”,当SM2=1时,若串口工作在方式2和3,接收到的第9位数据(RB8)为1时,才激活RI。在方式1时,只有接收到有效的停止位时才会激活RI。RI必须由软件清0 ⑧SBUF, 地址:99H,串行通信数据缓冲器 ⑨IE, 地址:A8H,中断使能控制寄存器 EA: globle interuption Enable, 1: Enable, 0: Disable ET2: timers2 flowover interuption Enable for52, 1: Enable, 0: Disable ES: serrial port interuption Enable, 1: Enable, 0: Disable ET1/0: timers1/0 flowover interuption Enable, 1: Enable, 0: Disable EX1/0: external interuption Enable, 1: Enable, 0: Disable

单片机原理及应用第三版张毅刚章全

第1章思考题及习题1参考答案 一、填空 1.除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于 一块芯片上。答:CPU、存储器、I/O口、总线 3.AT89S52单片机工作频率上限为MHz。答:33MHz。 4.专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。答:成 本,可靠性。 二、单选 1.单片机内部数据之所以用二进制形式表示,主要是?? A.为了编程方便??? B.受器件的物理性能限制?? C.为了通用性?? D.为了提高运算速度?? 答:B 2.在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用 答:B 3.下面的哪一项应用,不属于单片机的应用范围。 A.工业控制B.家用电器的控制C.数据库管理D.汽车电子设备 答:C 三、判断对错 1.STC系列单片机是8051内核的单片机。对 2.AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断源、 1个定时器(且具有捕捉功能)。对 3.单片机是一种CPU。错 4.AT89S52单片机是微处理器。错 5.AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错

6.为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7.为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8.单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答 1.微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别? 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 2.AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么? 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 3.单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少? 答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。 4.解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(InSystemProgram),也称在线编程,只需一条与PC机USB 口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash 存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。 5.什么是“嵌入式系统”?系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”? 答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。 6.嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何不 同? 答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。单片机在嵌入式处理器市场占有率最高,最大特点是价格低,

单片机各寄存器汇总

符号 地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器 P2 A0H P2口锁存器 SBUF 99H 串行口锁存器 SCON 98H 串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH 定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位) TMOD 89H 定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPTR 82H 83H 83H数据地址指针(高8位) PC SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H 电源控制寄存器 、PSW-----程序状态字。 D7D6D5D4D3D2D1D0 CY AC F0 RS1 RS0 OV P 下面我们逐一介绍各位的用途 CY:进位标志。 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

P :奇偶校验位:它用来表示ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。 运算结果有奇数个1,P =1;运算结果有偶数个1,P =0。 例:某运算结果是78H (01111000),显然1的个数为偶数,所以P=0。 定时/计数器寄存器 1.工作方式寄存器TMOD(P134) TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMOD D7 D6 D 5 D4 D3 D2 D1 D0 GATE C/-T M1 M0 GATE C/-T M1 M0 定时器1 定时器0 位7 GATE ——T1的门控位。 当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作; 当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。 位6 C/—T ——T1的功能选择位。 当C/—T=0时,T1为定时器方式; 当C/—T=0时,T1为计数器方式; 位5和位4 M1和M0——T1的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T1工作方式选择表 如右表: 位3 GATE ——T0的门控位。 当GATE=0时,只要控制TR0置1,即可启动定时器T0开始工作; 当GATE=1时,除需要将TR0置1外,还要使INT0引脚为高电平,才能启动相应的定时器开始工作。 位2 C/T ——T1的功能选择位。 当C/—T=0时,T0为定时器方式; 当C/—T=0时,T0为计数器方式; 位1和位0 M1和M0—T0的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T0工作方式选择表 TMOD 不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半节定义定时器0,高半字节定义定时器1。复位时,TMOD 所有位均为0,定时器处于停止工作状态。 定时/计数器控制寄存器中断请求标志寄存器TCON(P183) TCON 的作用是控制定时器的启/停,标志定时器的溢出和中断情况。定时器控制寄存器TCON 各位格式如下:TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 当有中断源发出请求时,有硬件将相应的中断标志位置 1.在中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器TCON 或SCON 中。 TCON 为定时器T0和T1的控制寄存器,同时也锁住T0和T1的溢出中断标志及外部中断——INT0和— M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器1:停止计数 M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器0:分成2个8位计数器

51单片机特殊功能寄存器功能一览表

51单片机特殊功能寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY =0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机寄存器汇总表图文稿

单片机寄存器汇总表 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

51单片机寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离

不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(01010111+00111010)

单片机原理及应用第二版

第二章习题参考答案 2-1 51单片机部包含哪些主要逻辑功能部件? (1)一个8位微处理器CPU。 (2)256B数据存储器RAM和特殊功能寄存器SFR。 (3)4K程序存储器ROM。 (4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。 (5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。(6)一个串行端口,用于数据的串行通信 (7)1个可管理5个中断源、2级优先嵌套的中断管理系统;。 (8)片振荡器及时钟发生器。 2-2MCS-51引脚中有多少I/O总线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位? 32条I/O口线,分为4组,每组8条,称为P0~P3口,P0口有8位数据总线和地址总线的低8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。同时在P3口还R/W控制信号线。I/O口线的总数与地址总线和数据总线没有多大联系,只是说地址总线和数据总线需要占用一定的端口。像A T89C2051单片机,只有15条I/O口线(P3.6没有引出,作为部使用),分为P1口(8位)和P3口(7位),没有所谓的地址总线和数据总线,并且P1口并不完整,因为P1.0和P1.1被电压比较器占用了。 2-3 51单片机的EA, ALE,PSEN信号各自功能是什么? EA:为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片程序存储器。 ALE:地址锁存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率f osc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的. PSEN:片外程序存储器读选通信号输出端,低电平有效。 2-4 51系列单片机有哪些信号需要芯片引脚的第二功能方式提供? P3.0 :PxD 串行口输入端 P3.1 :TxD串行口输出端 P3.2 :INT0 外部中断0请求输入端,低电平有效 P3.3 :INT1 外部中断1请求输入端,低电平有效 P3.4 :T0 定时/计数器0技术脉冲输入端 P3.5 :T1 定时/计数器1技术脉冲输入端 P3.6 :WR 外部数据存数器写选通信信号输出端,低电平有效 P3.7 :RD 外部数据存数器读选通信信号输出端,低电平有效 2-551系列单片机的程序状态字PSW中存放什么信息?其中的OV标志位在什么情况下被置位?置位是表示什么意思? ●PSW是一个8位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。 ●1)做加法时,最高位,次高位之一有进位则OV被置位 2)做减法时,最高位,次高位之一借位则OV被置位 3)执行乘法指令MUL AB,积大于255,OV=1

PIC单片机原理及应用考卷

第一学期期末考试《PIC单片机原理及应用》试卷 一、填空题:(每空1分,共30分) 1.假定PIC时钟频率为4MHz,那么执行第一条非转移类指令的真实时间是 微秒. 2.PIC16F877单片机的程序存储器共有位单元空间. 3.PIC16F877单片机的数据存储器共有位单元空间. 4.对于PIC系列单片机,外围设备中断服务程序的入口地址是_ __H. 5.程序计数器PC的指针总是指向_下一条指令__所在程序存储器单元的地址. 6.程序存储器ROM分页,数据存储器RAM分体. 7.PIC16F877单片机的A/D转换器具有个模拟量输入通道. 8.PIC16F877内嵌的A/D转换器,将模拟量转换为位的数字量. 9.PIC单片机系列中级产品16F877的指令集有条指令. 单片机共有个I/O端口,它们分别被称作: .(5分) 11.在SPI串行通信接口中,输入线为 ,输出线为 ,同步时钟线为 .(RC5/SDO, RC4/SDI, RC3/SCK对应填入) 和TMR1在的作用下作定时器,在的作用下作计数器. 单片机的定时器/计数器,实际上是一个__ _法计数器. 14. PIC16F877单片机共有个中断源,分为和 _ __两类. D转换器的主要技术指标有: , 和 三个. 16.PIC单片机在执行中断服务程序时,需要对_ 、 、 和等特殊功能寄存器进行保护. 二、选择题:(单选题,4个答案中只有一个正确,每题1分,共20分) 单片机中作为数据传送桥梁的寄存器是( ) A. W 单片机的I/O端口共有( )条引脚 数据存储器在其地址空间上分为4个体,每个体均为128X8位宽的存储单元,决定体选的是( )寄存器中的相关位 4.将20H单元中的最低位清0,可利用()语句 20H,0 20H,0 20H,0 20H,0 5.请分析下列指令,其中包含20H立即数的指令是() 20H 20H,W 20H,F 20H,F 6.指令“MOVF COUNT,0”的功能是() A.将0传送至COUNT B.将COUNT寄存器内容传送至W C, 将W寄存器内容传送至COUNT D. 将COUNT寄存器内容传送至COUNT 7.在下列指令执行过程中,()将对STSTUS状态寄存器的标志位Z产生影响 A. MOVEF F B. SWAPF F,W C. MOVF F,F D. GOTO LOOP 8.下列指令中,当条件满足时能够实现转移的指令是() f,d f,b C. DECFSZ f,d f,d 9.指令“RLF f,W”实现的功能是() A.(f)带C右移一位送W B. (f)带C左移一位送W C.(w)带C右移一位送F D. (w) 带C左移一位送F 10.如果要将RE端口设置为一般I/O引脚,除了必须对方向寄存器TRISE进行设置外,还应对()进行初始化 A. ADCON1 B. OPTION_REG C. INTCON D. PIEI 11.当RC端口的某个引脚设置为输入方式时,其它7个引脚() A.必须都用作输入引脚 B.必须都用作输出引脚 C.即可作输入引脚也可作输出引脚 D.即可作输入引脚也可作输出引脚,但不能改变 单片机在复位后,所有端口的I/O引脚都被设置在()方式下 A.输出 B.输入 C.不确定 D.内部弱上拉使能 13.在SPI接口的主控方式下,当满足()条件时,就开始发送数据 A.数据写入SSPBUF 下降沿出现 C.数据写入SSPSR D.中断标志位置1 定时器/计数器产生中断的必要条件,有以下几点,但()除外 =1 =1 溢出 =1 15.对于一次中断申请,中断服务程序内容的执行顺序比较合理的是() A. 保护现场、查询中断源、清除标志、处理中断 B. 查询中断源、保护现场、处理中断、清除标志 C. 处理中断、查询中断源、保护现场、清除标志 D. 清除标志、保护现场、处理中断、查询中断源 16.对于PIC16F877单片机,在所有中断源中,以下选项中断级别是() A. INT最高最高电平变化最高 D.都相同 17.在进行中断服务程序设计时,程序的最后一条指令一定是() 单片机在执行返回指令而退出中断服务程序时,返回地址来自() A. ROM区 B. 程序计数器PC C. 堆栈区 D. CPU的暂存器 单片机专用模拟转换器输入信号的电压范围是()V A. 没有限定 B. 0-3 C. 0-5 D. 0-10 单片机内嵌的A/D转换器,其工作原理是采用()工作方式 A.逐次比较型 B.双积分型 C.分级型 D.脉宽调制型 三、判断题:(正确的在题后括号内打“√”,错误的打“×”,共15分) 系列单片机是美国Microchip公司生产的产品。() 2.哈佛总线结构,是将芯片内部的数据总线和指令总线彻底分离,为采用不同的字节宽度、有效扩展指令的字长奠定了基础。() 控制寄存器的设置与RA、RB、和RC的输入/输出方式有关。() 4.在RB端口中,RB0-RB7任意引脚都具有逻辑电平变化的中断功能。() 5.所谓指令的寻址方式,是指寻找操作数的方法。() 6.当定时器/计数器TMR0定时计数计满时,产生溢出,T0IF=1,请求中断。() 7.中断标志位的状态与该中断源是否允许中断没有关系。() 8.如果设置某个中断源的中断允许位为1,则该中断源即可被CPU响应。() 9.在中断被禁止的情况下,中断标志已位被置1,一旦解除禁止,仍不一定立即产生中

相关主题
文本预览
相关文档 最新文档