单片机复习题答案 下载本文

内容发布更新时间 : 2024/5/4 4:16:50星期一 下面是文章的全部内容请认真阅读。

复习题

考试时间:90分钟 试题1:小灯闪烁

要求利用LauncnPad上的LED小灯(P1.0 P1.6),通过循环延时程序控制小灯闪烁,要求修改内部DCO系统时钟,控制小灯闪烁的速度,要求至少有四种明显变化的速度。要求画出硬件接线图。 主程序:

#include void GPIO_init(); void BCSplus_init(void); void P1_IODect(); void P13_Onclick(); void main() { }

void GPIO_init() {

P1DIR|=BIT0+BIT6; P1OUT|=BIT0; P1OUT&=~BIT6; P1IFG&=BIT0; P1REN|=BIT3; P1OUT|=BIT3; P1DIR&=~BIT3; P1IES|=BIT3;

第 1 页 共 17 页

WDTCTL=WDTPW+WDTHOLD; GPIO_init(); _EINT();

_enable_interrupts(); while(1)

{ }

P1OUT^=BIT0; P1OUT^=BIT6;

__delay_cycles(1000000);

}

P1IE|=BIT3;

void P1_IODect() { }

#pragma vector=PORT1_VECTOR __interrupt void P1_ISR(void) { }

void P13_Onclick() {

static unsigned int Freq=0; if(Freq>3) { }

switch(Freq) {

case 0:BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;break; case 1:BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ;break;

第 2 页 共 17 页

unsigned char Push_Key=0; Push_Key=P1IFG&(~P1DIR); __delay_cycles(10000); if((P1IN&Push_Key)==0) { }

switch(Push_Key) { }

case BIT0: break; case BIT1: break; case BIT2: break;

case BIT3: P13_Onclick();break; default:break;

_DINT(); P1IFG&=0X00; _EINT();

P1_IODect();

Freq=0;

}

case 2:BCSCTL1 = CALBC1_12MHZ; DCOCTL = CALDCO_12MHZ;break; case 3:BCSCTL1 = CALBC1_16MHZ; DCOCTL = CALDCO_16MHZ;break; default:break; } Freq++;

试题2:LCD显示学号

在提供的段式LCD驱动程序基础上,编写主程序显示学号。要求画出硬件接线图。 主程序:

#include #include #include #include main() { }

WDTCTL=WDTPW+WDTHOLD; TCA6416A_Init(); HT1621_init(); while(1) { }

LCD_DisplayDigit(1,10); LCD_DisplayDigit(4,9); LCD_DisplayDigit(8,8); LCD_DisplayDigit(4,7); LCD_DisplayDigit(1,1); LCD_DisplayDigit(1,2); LCD_DisplayDigit(0,3); LCD_DisplayDigit(3,4); HT1621_Reflash(LCD_Buffer);

显示为本人学号 试题3:流水灯

在提供的TCA6416驱动程序基础上,要求首先实现8个外扩小灯的循环显示即流水灯

第 3 页 共 17 页