单片机原理及应用_第九讲_MSP430单片机液晶控制器和ADC

单片机原理及应用_第九讲_MSP430单片机液晶控制器和ADC
单片机原理及应用_第九讲_MSP430单片机液晶控制器和ADC

单片机原理及应用

第九讲 MSP430单片机液晶控制器和ADC

报告人:

实验内容

实验一:段码LCD循环显示0到6

实验二:DAC输出正弦波

实验三:

基础:

使DAC0输出正弦波频率为300Hz,在LCD上显示频率。

提高:

用按键控制DAC0输出正弦波频率为在100Hz—1000Hz循环输出,步进值为100Hz,并在LCD上显示频率。

实验步骤

步骤:

(1) 将PC 和板载仿真器通过USB 线相连;

(2) 打开CCS 集成开发工具,选择样例工程或自己新建一个工程,修改代码;

(3) 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择

单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运

行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议上电运行程序)。

关键代码:

实验一:

int main()

{

int i,j;

WDTCTL = WDTPW + WDTHOLD;// Stop WDT

Init_TS3A5017DR(); // Configure TS3A5017DR IN1 and IN2 Init_lcd(); // LCD初始化

Backlight_Enable(); // 打开背光

LcdGo(1); // 打开液晶模块

LCD_Clear(); // 清屏

while(1)

{

for (i=0; i<6; i++) // Display "0123456"

{

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

{

LCDMEM[j] = char_gen[i];

}

delay_ms(1000);

}

}

}

实验二:

#include

#include

#define PI 3.1415926

int sin_table[360];

int *sin_data_pr;

double i=0;

int j;

void main(void)

{

WDTCTL = WDT_MDLY_0_064; // WDT ~61us interval timer SFRIE1 = WDTIE; // Enable WDT interrupt

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

{

i+=PI/180;

sin_table[j]=(int)((sin(i)+1)*2048);

}

sin_data_pr=&sin_table[0];

DAC12_0CTL0 = DAC12IR + DAC12SREF_0 + DAC12AMP_5 + DAC12ENC +

DAC12CALON+DAC12OPS;

P5DIR=BIT1;//打开扬声器的运放

P5OUT&=~BIT1;

for (;;)

{

__bis_SR_register(CPUOFF + GIE); // Enter LPM0

DAC12_0DAT=*sin_data_pr++;

if (sin_data_pr >= &sin_table[360])

{

sin_data_pr = &sin_table[0];

}

// Positive ramp

DAC12_0DAT &= 0xFFF; // Modulo 4096

}

}

#pragma vector=WDT_VECTOR

__interrupt void watchdog_timer (void)

{

__bic_SR_register_on_exit(CPUOFF); // Clear LPM0 bits from 0(SR) }

实验三:

基础:

int main(void) {

WDTCTL = WDT_MDLY_0_064; // WDT ~61us interval timer

Init_TS3A5017DR(); // Configure TS3A5017DR IN1 and IN2

Init_lcd(); // LCD初始化

Backlight_Enable(); // 打开背光

LcdGo(1); // 打开液晶模块

LCD_Clear(); // 清屏

LCDMEM[0] = char_gen[3];

LCDMEM[1] = char_gen[0];

LCDMEM[2] = char_gen[0];

SFRIE1 = WDTIE; // Enable WDT interrupt

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

{

i+=PI/26;

sin_table[j]=(int)((sin(i)+1)*2048);

}

sin_data_pr=&sin_table[0];

DAC12_0CTL0 = DAC12IR + DAC12SREF_0 + DAC12AMP_5 + DAC12ENC + DAC12CALON+DAC12OPS;

P5DIR=BIT1;//打开扬声器的运放

P5OUT&=~BIT1;

for (;;)

{

__bis_SR_register(CPUOFF + GIE); // Enter LPM0

DAC12_0DAT=*sin_data_pr++;

if (sin_data_pr >= &sin_table[52])

{

sin_data_pr = &sin_table[0];

}

// Positive ramp

DAC12_0DAT &= 0xFFF; // Modulo 4096

}

}

#pragma vector=WDT_VECTOR

__interrupt void watchdog_timer (void)

{

__bic_SR_register_on_exit(CPUOFF); // Clear LPM0 bits from 0(SR)

}

提高:

#define circnt100 1388

#define circnt200 694

#define circnt300 462

#define circnt400 348

#define circnt500 278

#define circnt600 232

#define circnt700 198

#define circnt800 174

#define circnt900 154

#define circnt1000 138

int sin_table[180];

int *sin_data_pr;

double i=0;

int j;

const int cnt_table[] =

{circnt100,circnt200,circnt300,circnt400,circnt500,circnt600,circnt700,circ nt800,circnt900,circnt1000};

int cnt_flg = 0;

void SetVcoreUp (unsigned int);

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // close watchdog

//---------p2.6--------------

P2REN |= BIT6; // Enable P2.6 internal resistance

P2OUT |= BIT6; // Set P2.6 as pull‐Up resistance

P2IES |= BIT6; // P2.6 Hi/Lo edge

P2IFG &= ~BIT6; // P2.6 IFG cleared

P2IE |= BIT6; // P P2.6 interrupt enabled

/*P2REN |= BIT7; // Enable P2.6 internal resistance

P2OUT |= BIT7; // Set P2.6 as pull‐Up resistance

P2IES |= BIT7; // P2.6 Hi/Lo edge

P2IFG &= ~BIT7; // P2.6 IFG cleared

P2IE |= BIT7; // P P2.6 interrupt enabled*/

//---------enable LCD------------

Init_TS3A5017DR(); // Configure TS3A5017DR IN1 and IN2

Init_lcd(); // LCD初始化

Backlight_Enable(); // 打开背光

LcdGo(1); // 打开液晶模块

LCD_Clear(); // 清屏

LCDMEM[5] = char_gen[0];

LCDMEM[4] = char_gen[0];

LCDMEM[3] = char_gen[1];

//----------config sine list------------

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

{

i+=PI/90;

sin_table[j]=(int)((sin(i)+1)*2000);

}

sin_data_pr=&sin_table[0];

DAC12_0CTL0 = DAC12IR + DAC12SREF_0 + DAC12AMP_5 + DAC12ENC +

DAC12CALON+DAC12OPS;

//---------- enable SMCLK as 8MHz--------------

P4DIR |= BIT1; // P4.1 output

P1DIR |= BIT0; // ACLK set out to pins

P1SEL |= BIT0;

P3DIR |= BIT4; // SMCLK set out to pins

P3SEL |= BIT4;

// Increase Vcore setting to level3 to support fsystem=25MHz

// NOTE: Change core voltage one level at a time..

SetVcoreUp (0x01);

SetVcoreUp (0x02);

SetVcoreUp (0x03);

UCSCTL3 = SELREF_2; // Set DCO FLL reference = REFO

UCSCTL4 |= SELA_2; // Set ACLK = REFO

__bis_SR_register(SCG0); // Disable the FLL control loop

UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx

UCSCTL1 = DCORSEL_7; // Select DCO range 50MHz operation

UCSCTL2 = FLLD_1 + 762; // Set DCO Multiplier for 25MHz

// (N + 1) * FLLRef = Fdco

// (762 + 1) * 32768 = 25MHz

// Set FLL Div = fDCOCLK/2

__bic_SR_register(SCG0); // Enable the FLL control loop

// Worst‐case settling time for the DCO when the DCO ran ge bits have been // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in

5xx

// UG for optimization.

// 32 x 32 x 25 MHz / 32,768 Hz ~ 780k MCLK cycles for DCO to settle __delay_cycles(782000);

// Loop until XT1,XT2 & DCO stabilizes ‐ In this case only DCO has to stabilize do

{

UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

// Clear XT2,XT1,DCO fault flags

SFRIFG1 &= ~OFIFG; // Clear fault flags

}while (SFRIFG1&OFIFG); // Test oscillator fault flag

//-----------enable timerA CCR0 us SMCLK--------------

TA0CCTL0 = CCIE; // CCR0 interrupt enabled

TA0CCR0 = cnt_table[0];

TA0CTL = TASSEL_2 + MC_1 + TACLR; //use SMCLk as setting 25MHz

for (;;)

{

__bis_SR_register(CPUOFF + GIE); // Enter LPM0

DAC12_0DAT=*sin_data_pr++;

if (sin_data_pr >= &sin_table[180])

{

sin_data_pr = &sin_table[0];

}

// Positive ramp

DAC12_0DAT &= 0xFFF; // Modulo 4096

}

}

void SetVcoreUp (unsigned int level)

{

PMMCTL0_H = PMMPW_H; // Open PMM registers for write

// Set SVS/SVM high side new level

SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;

// Set SVM low side to new level

SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;

while ((PMMIFG & SVSMLDLYIFG) == 0); // Wait till SVM is settled

PMMIFG &= ~(SVMLVLRIFG + SVMLIFG); // Clear already set flags

PMMCTL0_L = PMMCOREV0 * level; // Set VCore to new level

if ((PMMIFG & SVMLIFG))

while ((PMMIFG & SVMLVLRIFG) == 0); // Wait till new level reached

// Set SVS/SVM low side to new level

SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;

// Lock PMM registers for write access

PMMCTL0_H = 0x00;

}

//--------timerA interruption---------

#pragma vector=TIMER0_A0_VECTOR

__interrupt void TIMER0_A0_ISR(void)

{

__bic_SR_register_on_exit(CPUOFF);

}

//-------bottom interruption----------

#pragma vector=PORT2_VECTOR

__interrupt void Port_2(void)

{

__bic_SR_register_on_exit(CPUOFF);

cnt_flg++;

if (cnt_flg >= 10) cnt_flg = 0;

LCD_Clear(); // 清屏

LCDMEM[5] = char_gen[0];

LCDMEM[4] = char_gen[0];

if (cnt_flg == 9)

{

LCDMEM[3] = char_gen[0];

LCDMEM[2] = char_gen[1];

}

else LCDMEM[3] = char_gen[cnt_flg + 1];

TA0CCR0 = cnt_table[cnt_flg];

P2IFG &= ~BIT6;

__bis_SR_register(CPUOFF + GIE);

}

实验现象分析:

实验一:

LCD显示屏上循环显示0到6,每次显示都为6个相同的数字,现象对应的代码为:

实验二:

实验板上扬声器放出周期为64us*360=0.023s的正弦波信号。

实验三:

基础:用示波器测量P7.6信号,测出信号频率为300HZ左右,LCD面板上显示为300。提高:按下按键,信号频率按要求改变,同时LCD也显示出信号频率对应值。

思考题

1、MSP430系列单片机液晶驱动模块有哪些驱动方法?

答:4种驱动方法:

静态

2‐mux

3‐mux

4‐mux

2、MSP430系列单片机液晶驱动模块包括哪些功能结构?

答:

功能结构:

具有显示缓存器

所需的SEG、COM信号自动产生

多种扫描频率

每个闪烁段都有独立的闪烁存储器

稳压电荷泵

软件实现反向控制

显示缓存器可作为一般存储器

3、MSP430系列单片机液晶驱动模块显示缓存有什么特

点?和普通的存储单元有什么不同?

答:

特点:

液晶显示缓存器各个位与液晶的段一一对应。存储位置位则可以点亮对

应的液晶段,存储位复位液晶段变暗。段、公共极输出控制能够自动从显示

缓存器读取数据,送出相应信号到液晶玻璃片上。因为不同器件驱动液晶的

段数不同,所以液晶显示缓存器的数量也不一样。数量越大,驱动能力越强

,显示的内容就越多。

不同:

显示缓存器可作为一般存储器,但一般存储单元存储位置位不可以点亮液晶段。

4、常见液晶显示的类型有哪些?

答:

段式液晶

字符式液晶

图形式液晶

5、MSP430系列单片机液晶驱动模块有哪些特点?

答:

具有显示缓存器

所需的SEG、COM信号自动产生

多种扫描频率

每个闪烁段都有独立的闪烁存储器

稳压电荷泵

软件实现反向控制

显示缓存器可作为一般存储器

4种驱动方法

静态

‐mux

‐mux

‐mux

6、简述DAC的主要性能参数。

答:

分辨率(n):

DAC转换器使用的位数, D/A转换器模拟输出电压可能被分离

的等级数。输入数字量位数越多,分辨率越高。所以,在实际应用中,常用数字量的位数表示D/A转换器的分辨率。

转换速度:

转换速率(SR)——在大信号工作状态下模拟电压

的变化率。

建立时间(tset)——当输入的数字量发生变化时,输出

电压变化到相应稳定电压值所需时间。最短可达0.1μS。单调性:

转换器的模拟输出值与数字输入值同增同减.

偏移误差:

当输入的数字量为0时,DAC输出的模拟量的大小。

温度系数:

在输入不变的情况下,输出模拟电压随温度变

化产生的变化量。一般用满刻度输出条件下温度每升

高1℃,输出电压变化的百分数作为温度系数。

7、简述MSP430单片机DAC12模块的特点。

答:

12 位单调输出

8位或12位电压输出分辨率

可编程的时间对能量的消耗

内部或外部参考电压

二进制或二进制补码形式

具有自校验功能

多路DAC同步更新

可直接用存储器存储(DMA)

实验中遇到的问题

MSP430单片机实验报告v3.0

MSP430单片机课程设计 一.设计要求 数字温度计 (1)用数码管(或LCD)显示温度和提示信息; (2)通过内部温度传感器芯片测量环境温度; (3)有手动测量(按测量键单次测量)和自动测量(实时测量)两种工作模式; (4)通过按键设置工作模式和自动测量的采样时间(1秒~1小时); (5)具备温度报警功能,温度过高或过低报警。 二.系统组成 系统由G2Launch Pad及其拓展板构成,单片机为MSP430G2553。 I2的通信方式对IO进行拓展,芯片为TCA6416A; 使用C 使用HT1621控制LCD; 三.系统流程 拓展的四个按键key1、key2、key3、key4分别对应单次测量、定时测量、定时时间的增、减。定时时间分别为1s,5s,15s,30s,60s。在自动测量模式下,当温度超过设定温度上限

即报警,报警时在LCD屏幕显示ERROR同时LED2闪烁,在5s后显示0℃。此时可重新开始手动或自动测量温度。 系统示意图: 四.演示 a)手动测量温度 b)自动测量温度 c)报警

显示ERROR同时LED闪烁d)设置时间界面 五.代码部分 #include "MSP430G2553.h" #include "TCA6416A.h" #include "LCD_128.h" #include "HT1621.h" #include "DAC8411.h" #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) static int t=0; long temp; long IntDeg; void ADC10_ISR(void); void ADC10_init(void); void LCD_Init(); void LCD_Display(); void GPIO_init(); void I2C_IODect(); void Error_Display(); void WDT_Ontime(void); void LCD_Init_AUTO(); void LCD1S_Display();

李全利版单片机原理及接口技术课后答案(第五章)

章5 80C51的中断系统及定时/计数器 1.80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU响应各中断时,其中断入口地址是多少? 答:5个中断源,分别为外中断INT0和INT1、T0和T1溢出中断、串口中断。 电平方式触发的外中断标志与引脚信号一致;边沿方式触发的外中断响应中断后由硬件自动复位。 T0和T1,CPU响应中断时,由硬件自动复位。 RI和TI,由硬件置位。必须由软件复位。 另外,所有能产生中断的标志位均可由软件置位或复位。 各中断入口地址:INT0―0003H,T0—000BH,INT1—0013H,T1—001BH,RI和TI—0023H。 2.某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。试编写主程序及中断服务程序(转至相应的入口即可)。 答:将3个中断信号经电阻线或,接INT1。 ORG 0000H LJMP MAIN ORG 00013H LJMP ZDFZ ORG 0040H MAIN:SETB EA SETB EX1 SJMP $ 0RG 0200H ZDFZ:PUSH PSW PUSH ACC JB P1.0,DV0 JB P1.1,DV1 JB P1.2,DV2 INRET:POP ACC POP PSW RETI ORG 2000H DV0:------------ JMP INRET ORG 2100H

DV1:------------ JMP INRET ORG 2200H DV2:------------ JMP INRET 3.外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定? 答: 当IT0=0时,INT0为电平触发方式。电平触发方式时,CPU在每个机器周期的S5P2采样INT0引脚电平,当采样到低电平时,置IE0=1向CPU请求中断;采样到高电平时,将IE0清0。在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。 电平触发方式时,外部中断源的有效低电平必须保持到请求获得响应时为止,不然就会漏掉;在中断服务结束之前,中断源的有效的低电平必须撤除,否则中断返回之后将再次产生中断。该方式适合于外部中断输入为低电平,且在中断服务程序中能清除外部中断请求源的情况。 当IT0=1时,INT0为边沿触发方式。边沿触发方式时,CPU在每个机器周期的S5P2采样INT0引脚电平,如果在连续的两个机器周期检测到INT0引脚由高电平变为低电平,即第一个周期采样到INT0=1,第二个周期采样到INT0=0,则置IE0=1,产生中断请求。在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。 边沿触发方式时,在相继两次采样中,先采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。若CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清0。另外,为了保证下降沿能够被可靠地采样到,INT0和INT1引脚上的负脉冲宽度至少要保持一个机器周期(若晶振频率为12MHz,为1微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求。 4.定时/计数器工作于定时和计数方式时有何异同点? 答: 定时/计数器实质是加1计数器。 不同点:设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值乘以机器周期就是定时时间。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。 相同点:它们的工作原理相同,它们都有4种工作方式,由TMOD中的M1M0设定,即 方式0:13位计数器; 方式1:16位计数器; 方式2:具有自动重装初值功能的8位计数器; 方式3:T0分为两个独立的8位计数器,T1停止工作。 5.定时/计数器的4种工作方式各有何特点?

单片机原理及接口技术第3章习题答案.docx

1>指令:CPU 根据人的意图来执行某种操作的命令 指令系统:一台计算机所能执行的全部指令集合 机器语言:用二进制编码表示,计算机能直接识别和执行的语言 汇编语言:用助记符、符号和数字来表示指令的程序语言 高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入 了解的通用性语言 2、 见第1题 3、 操作码[目的操作数][,源操作数] 4、 寻址方式 寻址牢间 立即数寻址 程序存储器ROM 直接寻址 片内RAM 低128B 、特殊功能寄存器 寄存器寻址 工作寄存器R0 R7、A 、B 、C 、DPTR 寄存器间接寻址 片内RAM 低128B 、片外RAM 变址寻址 程序存储器(@A+PC,@A+DPTR ) 相对寻址 程序存储器256B 范围(PC+偏移量) 位寻址 片内RAM 的20H-2FH 字节地址、部分SFR 5、SFR :直接寻址,位寻址,寄存器寻址;片外RAM :寄存器间接寻址 A, 40H ;直接寻址 (40H ) A RO, A ;寄存器寻址 (A ) - RO Pl, #0F0H ;立即数寻址 0F0—P1 A, @R0 ;寄存器间接寻址((RO )) - A P2, Pl ;直接寻址(Pl ) ->P2 最后结果:(RO) =38H, (A) =40H, (PO) =38H, (Pl) = (P2) =0F0H, (DPTR) =3848H, (18H) =30H, OOH) =38H, (38H) =40H, (40H) =40H, (48H) =38H 注意:?左边是内容,右边是单元 7、 用直接寻址,位寻址,寄存器寻址 8、 MOV A,DATA ;直接寻址2字节1周期 MOV A,#DATA ;立即数寻址 2字节1周期 6、MOV MOV MOV MOV MOV MOV MOV MOV MOV @R0,30H ;直接寻址(3UH ) (RO ) DPTR,#3848 ;立即数寻址 3848—DPTR 40H,38H ;直接寻址(38H ) ->40H R0,30H ;直接寻址(30H ) ->R0 P0,R0 ;寄存器寻址 (RO ) PO 18H, #30H ;立即数寻址 30->18H MOV MOV

单片机原理与接口技术课后习题第9章答案

第九章复习思考题 1. 计算机系统中为什么要设置输入输出接口? 输入/输出接口电路是CPU与外设进行数据传输的桥梁。外设输入给CPU的数据,首先由外设传递到输入接口电路,再由CPU从接口获取;而CPU输出到外设的数据,先由CPU输出到接口电路,然后与接口相接的外设获得数据。CPU与外设之间的信息交换,实际上是与I/O接口电路之间的信息交换。 2. 简述输入输出接口的作用。 I/O接口电路的作用主要体现在以下几个方面:(1)实现单片机与外设之间的速度匹配;(2)实现输出数据锁存;(3)实现输入数据三态缓冲;(4)实现数据格式转换。 3. 在计算机系统中,CPU与输入输出接口之间传输数据的控制方式有哪几种?各有什么特点? 在计算机系统中,CPU与I/O接口之间传输数据有3种控制方式:无条件方式,条件方式,中断方式,直接存储器存取方式。 在无条件方式下,只要CPU执行输入/输出指令,I/O接口就已经为数据交换做好了准备,也就是在输入数据时,外设传输的数据已经传送至输入接口,数据已经在输入接口端准备好;输出数据时,外设已经把上一次输出的数据取走,输出接口已经准备好接收新的数据。 条件控制方式也称为查询方式。CPU进行数据传输时,先读接口的状态信息,根据状态信息判断接口是否准备好,如果没有准备就绪,CPU将继续查询接口状态,直到其准备好后才进行数据传输。 在中断控制方式下,当接口准备好数据传输时向CPU提出中断请求,如果满足中断响

应条件,CPU则响应,这时CPU才暂时停止执行正在执行的程序,转去执行中断处理程序进行数据传输。传输完数据后,返回原来的程序继续执行。 直接存储器存取方式即DMA方式,它由硬件完成数据交换,不需要CPU的介入,由DMA控制器控制,使数据在存储器与外设之间直接传送。 4. 采用74LS273和74LS244为8051单片机扩展8路输入和8路输出接口,设外设8个按钮开关和8个LED,每个按钮控制1个LED,设计接口电路并编制检测控制程序。 图9.1题3接口电路原理图 接口电路原理图如图9.1 源程序: MOV DPTR,#BFFFH ;设置输入/输出口地址 COMT: MOVX A,@DPTR ;读取开关状态 NOP ;延时,总线稳定 MOVX @DPTR,A ;输出,驱动LED显示 NOP ;延时,总线稳定 AJMP CONT 5. 74LS377是8D触发器,其功能表见表9.17,其中Di为触发器的数据输入端,Qi为触发器的数据输出端,G是使能控制端,CLK是时钟输入端,Q0为建立稳态输入条件之前,锁存器输出Q的状态。采用它为8051单片机扩展1个8位的并行输出口。

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案

单片机原理及应用技术苏家建 课后习题参考答案 第三章MCS-51指令系统 3-1 MCS-51指令系统有哪几种寻址方式?按功能分类有哪几种指令? 3-2 设A=0FH,R0=30H,片内RAM的(30H)=0AH, (31H)=0BH, (32H)=0CH,下列程序段运行后的结果? MOV A,@R0 ;A=0AH MOV @R0,32H ;(30H)=0CH MOV 32H,A ;(32H)=0AH MOV R0,#31H ;R0=31H MOV A,@R0;A=(31H)=0BH 3-3 (1)R0的内容传送到R1 MOV A,R0 MOV R1,A (2)内部RAM 20H单元的内容传送到A MOV A,20H (3)外部RAM 30H单元的内容传送到R0 MOV R1,#30H MOVX A,@R1 MOV R0,A (4) 外部RAM 30H单元的内容传送到内部RAM 20H单元 MOV R1,#30H MOVX A,@R1 MOV 20H,A (5) 外部RAM 1000H单元的内容传送到内部RAM 20H单元 MOV DPTR,#1000H MOVX A,@DPTR MOV 20H,A (6)程序存储器ROM 2000H单元的内容传送到R1 MOV DPTR,#2000H CLR A MOVC A,@A+DPTR MOV R1,A (7) RAM 2000H单元的内容传送到内部RAM 20H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A (8) RAM 2000H单元的内容传送到外部RAM 30H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV R0,#30H MOVX @R0,A (9) RAM 2000H单元的内容传送到外部RAM 1000H单元

单片机原理及接口技术

0924]《单片机原理与接口技术》 作业一 [单选题]MCS―51单片机一个机器周期由()个振荡周期构成;A:2 B:4 C:8 D:12 参考答案:D [多选题]电子计算机的硬件系统主要组成部分有()A:CPU B:存储器 C:输入设备 D:输出设备 参考答案:ABCD [单选题]MCS-51单片机是()位机。 A:4 B:8 C:16 D:32 参考答案:B [单选题]使用MCS51汇编语言指令时,标号以()开始。 A:标点符号 B:数字 C:英文字符 D:中文字符 参考答案:C

[多选题]CPU的主要组成部分有() A:运算器 B:控制器 C:程序存储器 D:数据存储器 参考答案:AB [判断题]MCS-51单片机复位后,RS1、RS0为0、0,此时使用0组工作寄存器。 参考答案:正确 [判断题]MCS-51单片机复位后,部特殊功能寄存器均被清零。 参考答案:错误 [填空题] 1.十六进制数30H等于十进制数(); 2.十六进制数20H的压缩BCD码为(); 3.与十进制数40相等的十六进制数为( ); 4.十六进制数037H对应的压缩BCD码可表示为( ); 5.字符"A”的ASCII码为(); 6.字符"D”的ASCII码为(); 7.字符"1”的ASCII码为(); 8.字符"5”的ASCII码为(); 9.位09H所在的单元地址是()字节的()位; 10.编写程序时使用的程序设计语言有()、()、()三种; 11.MCS―51单片机有四个工作寄存器区,由PSW状态字中的()、()两位的状态来 决定; 12.定时器的工作方式()为16位为定时/计数方式; 13.串行通讯分为()和()两种基本方式; 14.串行通讯工作方式1和方式3的波特率有SMOD值和()控制。 参考答案:

南理工 王宏波 MSP430F6638单片机实验报告

MSP430单片机应用技术 实验报告 学号:XXXXXXXX

实验1 一、实验题目:UCS实验 二、实验目的 设置DCO FLL reference =ACLK=LFXT1 = 32768Hz, MCLK = SMCLK = 8MHz,输出ACLK、SMCLK,用示波器观察并拍照。 UCS,MCLK、 SMCLK 8MHz 的 1 2 六、实验结果 实验2 一、实验题目:FLL+应用实验 二、实验目的

检测P1.4 输入,遇上升沿进端口中断,在中断服务程序内翻转P4.1 状态。 三、实验仪器和设备 计算机、开发板、示波器、信号源、电源、Code Comeposer Studio v5 四、实验步骤 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; WDT 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; 3、新建工作空间workspace; 4、新建工程project与源文件main.C; 5、编写程序; 6、编译、调试、下载程序到单片机;

7、观察、分析、保存运行结果。 五、实验程序 实验4 一、实验题目:WDT_A实验 二、实验目的 定时模式 1 2 六、实验结果 实验5一、实验题目:Timer_A实验

二、实验目的 比较模式-Timer_A0,两路PWM 输出,增减计数模式,时钟源SMCLK,输出模式7 TACLK = SMCLK = default DCOCLKDIV。PWM周期CCR0 = 512-1,P1.6 输出PWM占空比CCR1 = 37.5%,P1.7输出PWM占空比CCR1 =12.5%。 要求: (1)用示波器观察两路PWM 输出的波形并拍照,测量周期、正脉宽等参数,与理论值进行对比分析。 (2 (3 1 2 实验6 一、实验题目:ADC12实验 二、实验目的 ADC12 单次采样A0 端口,根据转换结果控制LED 状态。

《单片机原理与接口技术(第2版)张毅刚》第5章习题与答案

《单片机原理及接口技术》(第2版)人民邮电出版社 第5章I/O口应用-显示与开关/键盘输入 思考题及习题5 1.判断下列说法是否正确。 A.HD7279是用于键盘和LED数码管的专用接口芯片。答:对 B.LED数码管的字型码是固定不变的。答:错 C.为给扫描法工作的88非编码键盘提供接口电路,在接口电路中需要提供两个8位并行的输入口和一个8位并行的输出口。答:错 D.LED数码管工作于动态显示方式时,同一时间只有一个数码管被点亮。答:对 2.动态显示的数码管,任一时刻只有一个LED处于点亮状态,是LED的余辉与人眼的“视觉暂留”造成数码管同时显示的“假象”。答:对 3.为什么要消除按键的机械抖动?软件消除按键机械抖动的原理是什么? 答:消除按键的机械抖动,避免由于机械抖动造成的对键盘是否按下误判。软件消除按键机 械抖动的原理是采用软件延时,躲过键盘按键的机械抖动期。 4.LED的静态显示方式与动态显示方式有何区别?各有什么优缺点? 答:静态显示时,欲显示的数据是分开送到每一位LED上的。而动态显示则是数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多。动态显示口线占用较少,但是需要编程进行动态扫描,适合用在显示位数较多的场合。 5.分别写出表5-1中共阴极和共阳极LED数码管仅显示小数点“.”的段码。 答:80H(共阴极);7FH(共阳极)。 6.已知8段共阴极LED数码显示器要显示某字符的段码为7DH(a段为最低位),此时显示器显示 的字符为。 答:6 7.已知8段共阳极LED数码显示器要显示字符“6”(a段为最低位),此时的段码为。。 答:82H 8.当键盘的按键数目少于8个时,应采用式键盘。当键盘的按键数目为64个时,应采用式键盘。

单片机原理与运用_第三章答案

第三章单片机的汇编语言与程序设计习题 1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值? MOV A,59H MOV R0,A MOV A,#00H MOV @R0,A MOV A,#25H MOV 51H,A MOV 52H,#70H 解:MOV A,59H ;A=50H MOV R0,A ;RO=50H MOV A,#00H ;A=00H MOV @R0,A ;50H=00H MOV A,#25H ;A=25H MOV 51H,A ;51H=25H MOV 52H,#70H ;52H=70H

所以:A=25H R0=50H ;50H=00H 51H=25H 2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。 解:MOV A,P0 ANL A,0fh Mov P0,A 3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。解:访问外部数据存储器指令有: MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,A MOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTR MOVX A,@Ri MOVX A,@R0 MOVX @Ri,A MOVX @RI,A 访问程序存储器指令有: MOVX A,@A+PC

MOVX A,@A+DPTR 4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化? PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H,#00H MOV 31H,#0FFH 解:PUSH 30H ;61H=24H PUSH 31H ;62=10H SP=62H POP DPL ;DPL=10H POP DPH ;DPH=24H SP=60H MOV 30H,#00H ;30H=00H MOV 31H,#0FFH ;31H=0FFH

单片机原理及应用课后习题参考答案~章

《单片机原理及应用》习题答案 第一章计算机基础知识 1-1 微型计算机主要由哪几部分组成?各部分有何功能? 答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。 CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。 存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。 输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。 总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。 1-3 什么叫单片机?其主要由哪几部分组成? 答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。 1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用? 答:单片机片内ROM的配置状态可分四种: (1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产; (2)片内EPROM型单片机(如8751),适合于研制产品样机; (3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;

(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。 1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制) 1-6 写出下列各数的BCD参与: 第二章MCS-51单片机的硬件结构 2-1 8052单片机片内包含哪些主要逻辑功能部件? 答:8052单片机片内包括: ①8位中央处理器CPU一个 ②片内振荡器及时钟电路 ③256B数据存储器RAM。 ④8KB片内程序存储空间ROM ⑤21个特殊功能寄存器SFR ⑥4个8位并行I/O端口(32条线) ⑦1个可编程全双工串行口 ⑧可寻址64KB的外部程序存储空间和外部数据存储空间 ⑨3个16位的定时器/计数器

430单片机点亮LED实验报告

430单片机点亮LED实验报告 一.安装实验软件IAR 二.编写点亮LED灯程序 1.使P1.0口LED灯会不停的闪烁着,程序 #include typedef unsigned int uint; typedef unsigned char uchar; /*延时函数*/ void Delay_Ms(uint x) { uint i; while(x--)for(i=0;i<250;i++); } /*主函数*/ int main( void ) { WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to prevent time out reset P2DIR|=BIT0;//定义P1口为输出 while(1)//死循环 { P2OUT^=BIT0;//P1.0口输出取反

Delay_Ms(600);//稍作延时 } } 下载进去看到了P1.0口LED灯会不停的闪烁着。 2.实验目的让两盏灯交换闪烁程序 #include"msp430g2553.h" void main(void) { void Blink_LED(); WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 P1DIR=BIT6; P2DIR=BIT0; while(1) { Blink_LED(); } } void Blink_LED() { _delay_cycles(1000000); //控制第二个LED P1OUT^=BIT6; _delay_cycles(1000000); //控制第一个LED P2OUT^=BIT0;

单片机原理及应用课后习题答案第5章作业学习资料

单片机原理及应用课后习题答案第5章作 业

第五章中断系统作业 1. 外部中断1所对应的中断入口地址为()H。 2. 对中断进行查询时,查询的中断标志位共有、_ _、、 _ 和_ 、_ _ 六个中断标志位。 3.在MCS-51中,需要外加电路实现中断撤除的是:() (A) 定时中断 (B) 脉冲方式的外部中断 (C) 外部串行中断 (D) 电平方式的外部中断 4.下列说法正确的是:() (A) 同一级别的中断请求按时间的先后顺序顺序响应。() (B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。() (C) 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求 能中断低优先级中断请求。() (D) 同级中断不能嵌套。() 5.在一般情况下8051单片机允许同级中断嵌套。() 6.各中断源对应的中断服务程序的入口地址是否能任意设定? () 7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。() 8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。 (A)TMOD (B)TCON/SCON (C)IE (D)IP 9. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存 器IE的内容应是() (A)98H (B)84H (C)42 (D)22H 10.编写出外部中断1为负跳沿触发的中断初始化程序。 11.什么是中断?其主要功能是什么? 12. 什么是中断源?MCS-51有哪些中断源?各有什么特点? 13. 什么是中断嵌套? 14.中断服务子程序与普通子程序有哪些相同和不同之处? 15. 中断请求撤除的有哪三种方式? 16. 特殊功能寄存器TCON有哪三大作用?

第3章单片机原理课后答案

习题 1. 在MCS-51单片机中,寻址方式有几种? 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。 2. 在MCS-51单片机中,哪些寻址方式访问的是片内RAM? 答:访问片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。 3. 在MCS-51单片机中,哪些寻址方式访问的是片外RAM? 答:只有寄存器间接寻址方式访问片外RAM寻址。 4. 在对片外RAM单元的寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别? 答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR 作指针间接访问可访问整个64K字节。 5. 在MCS-51单片机中,相对寻址方式的目的地址如何计算? 答:目的地址=当前PC+rel=转移指令的地址+转移指令的字节数+rel 6. 在位处理中,位地址的表示方式有哪几种? 答:位地址的表示方式有4种: (1) 直接位地址(00H~0FFH)。例如,20H。 (2) 字节地址带位号。例如,20H.3表示20H单元的3位。 (3) 特殊功能寄存器名带位号。例如,P0.1表示P0口的1位。 (4) 位符号地址。例如,TR0是定时/计数器T0的启动位。 7. 写出完成下列操作的指令。 (1) R2的内容送到R3中。 MOV A,R2 MOV R3,A (2) 片内RAM的30H单元内容送到片内RAM的40H单元中。 MOV 40H,30H (3) 片内RAM的30H单元内容送到片外RAM的30H单元中。 MOV A,30H MOV R0,#30H MOVX @R0,A (4) 片内RAM的20H单元内容送到片外RAM的2000H单元中。 MOV A,20H MOV DPTR,#2000H MOVX @DPTR,A (5) 片外RAM的1000H单元内容送到片内RAM的20H单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV 20H,A (6) 片外RAM的1000H单元内容送到片外RAM的4000H单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#4000H

单片机原理课后习题整理

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式控制器. 3. AT89S52单片机工作频率上限为MHz。答:33 MHz。 三、判断对错 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 的长处。对 四、简答 4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB 口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash 存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。

第2章思考题及习题2参考答案 一、填空 1. 在AT89S52单片机中,如果采用6MHz晶振,一个机器周期为。答:2μs 2. AT89S52单片机的机器周期等于个时钟振荡周期。答:12

MSP430单片机实验报告

MSP430单片机实验报告 专业: 姓名: 学号:

MSP430单片机实验报告 设计目标:使8位数码管显示“5201314.”,深入了解串行数据接口。 实现过程:主要分为主函数、驱动8位数码管函数、驱动1位数码管函数及延时函数。 延时函数:采用for循环。 驱动1位数码管子函数:设置74HC164的时钟传输和数传输,声明变量,使数据表中每一个要表示的字符的每一位都与shift做与运算从而进行传输,上升沿将传输数据传送出去。驱动1位数码管子函数的流程图如图1所示。 图1 驱动1位数码管子函数流程图 驱动8位数码管子函数:调用8次驱动1位数码管子函数。驱动8位数码管子函数流程图如图2所示。 图2 驱动8位数码管流程图

while 图3 主函数流程图 实验结果:供电后,数码管显示“5201314.”字样。 源程序: /************* 程序名称:5201314.*************/ /***程序功能:通过模拟同步串口控制8个共阳数码管***/ /*******P5.1 数据管脚,P5.3 同步时钟管脚*******/ #include // 头文件 void delay(void); // 声明延迟函数void seg7_1 (unsigned char seg7_data); // 声明驱动1 位数码管函数void seg7_8 ( unsigned char seg7_data7, unsigned char seg7_data6, unsigned char seg7_data5, unsigned char seg7_data4, unsigned char seg7_data3, unsigned char seg7_data2,

单片机原理及应用课后习题答案第5章作业

第五章中断系统作业 1. 外部中断1所对应的中断入口地址为()H。 2. 对中断进行查询时,查询的中断标志位共有、_ _、、 _ 和_ 、_ _ 六个中断标志位。 3.在MCS-51中,需要外加电路实现中断撤除的是:() (A) 定时中断 (B) 脉冲方式的外部中断 (C) 外部串行中断 (D) 电平方式的外部中断 4.下列说法正确的是:() (A) 同一级别的中断请求按时间的先后顺序顺序响应。() (B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。() (C) 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求 能中断低优先级中断请求。() (D) 同级中断不能嵌套。() 5.在一般情况下8051单片机允许同级中断嵌套。() 6.各中断源对应的中断服务程序的入口地址是否能任意设定? () 7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。() 8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。 (A)TMOD (B)TCON/SCON (C)IE (D)IP 9. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器 IE的内容应是() (A)98H (B)84H (C)42 (D)22H 10.编写出外部中断1为负跳沿触发的中断初始化程序。 11.什么是中断?其主要功能是什么? 12. 什么是中断源?MCS-51有哪些中断源?各有什么特点? 13. 什么是中断嵌套? 14.中断服务子程序与普通子程序有哪些相同和不同之处? 15. 中断请求撤除的有哪三种方式? 16. 特殊功能寄存器TCON有哪三大作用? 17. 把教材的P82页的图改为中断实现,用负跳变方式,中断0(INT0)显示“L2”,中断1(INT1)显示“H3”。(可参考第四章的电子教案中的例子) 18.第5章课后作业第9题。 第五章中断系统作业答案 1. 外部中断1所对应的中断入口地址为(0013)H。 2. 对中断进行查询时,查询的中断标志位共有 IE0 、_TF0_、IE1 、 TF1_ 和_TI 、_RI_六个中断标志位。【实际上只能查询TF0、TF1、TI、RI】 3.在MCS-51中,需要外加电路实现中断撤除的是:(D) (A) 定时中断 (B) 脉冲方式的外部中断 (C) 外部串行中断 (D) 电平方式的外部中断 4.下列说法正确的是:(A C D ) (A) 同一级别的中断请求按时间的先后顺序顺序响应。(YES)

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

习题三 1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM 可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式? 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR 间接寻址有什么区别? 答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。 3.在位处理中,位地址的表示方式有哪几种? 答:1.直接位地址(00H~0FFH)。例如:20H 2.字节地址带位号。例如:20H.3表示20H单元的3位。 3.特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。 4.位符号地址。例如:TR0是定时/计数器T0的启动位。 4.写出完成下列操作的指令。 (1)R0的内容送到R1中。 MOV A,R0 MOV R1,A (2)片内RAM的20H单元内容送到片内RAM的40H单元中。 MOV 40H,20H (3)片内RAM的30H单元内容送到片外RAM的50H单元中。 MOV A,30H MOV R0,#50H MOVX @R0,A (4)片内RAM的50H单元内容送到片外RAM的3000H 单元中。 MOV A,50H MOV DPTR,#3000H MOVX @DPTR,A (5)片外RAM的2000H单元内容送到片内RAM的20H 单元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A (6)片外RAM的1000H单元内容送到片外RAM的4000H 单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#4000H MOV @DPTR,A (7)ROM的1000H单元内容送到片内RAM的50H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR MOV 50H,A (8)ROM的1000H单元内容送到片外RAM的1000H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR MOVX @DPTR,A 5.区分下列指令有什么不同? (1)MOV A,20H和MOV A,#20H 答:前者源操作数是直接寻址,后者源操作数立即寻址。 (2)MOV A,@R1和MOVX A,@R1 答:前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。 (3)MOV A,R1和MOV A,@R1 答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。 (4)MOVX A,@R1和MOVX A,@DPTR 答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。 (5)MOVX A,@DPTR和MOVC A,@A+DPTR 答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。 6.设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析下列指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。 MOV R0,#20H ;R0=20H MOV A,@R0 ;A=40H MOV R1,A ;R1=40H MOV A,@R1 ;A=10H MOV @R0,P1 ;(40H)=0CAH MOV P2,P1 ;P2=0CAH MOV 10H,A ;(10H)=10H 1

相关文档
最新文档