2017单片机复习题答案

上传人:jiups****uk12 文档编号:45983925 上传时间:2018-06-20 格式:DOC 页数:17 大小:89KB
返回 下载 相关 举报
2017单片机复习题答案_第1页
第1页 / 共17页
2017单片机复习题答案_第2页
第2页 / 共17页
2017单片机复习题答案_第3页
第3页 / 共17页
2017单片机复习题答案_第4页
第4页 / 共17页
2017单片机复习题答案_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《2017单片机复习题答案》由会员分享,可在线阅读,更多相关《2017单片机复习题答案(17页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 18 页复习题 考试时间:考试时间: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()WDTCTL=WDTPW+WDTHOLD;GPIO_init();_EINT();_enabl

2、e_interrupts();while(1)P1OUT=BIT0;P1OUT=BIT6;_delay_cycles(1000000);void GPIO_init()P1DIR|=BIT0+BIT6;P1OUT|=BIT0;P1OUTP1IFGP1REN|=BIT3;P1OUT|=BIT3;P1DIRP1IES|=BIT3;第 2 页 共 18 页P1IE|=BIT3;void P1_IODect()unsigned char Push_Key=0;Push_Key=P1IFG_delay_cycles(10000);if(P1INcase BIT1: break;case BIT2: br

3、eak;case BIT3: P13_Onclick();break;default:break;#pragma vector=PORT1_VECTOR_interrupt void P1_ISR(void)_DINT();P1_IODect();P1IFG_EINT();void P13_Onclick()static unsigned int Freq=0;if(Freq3)Freq=0;switch(Freq)case 0:BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;break;case 1:BCSCTL1 = CALBC1_8MHZ; DCO

4、CTL = CALDCO_8MHZ;break;第 3 页 共 18 页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#includemain()WDTCTL=WDTPW+WDTHOLD;TCA6

5、416A_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 个外扩小灯的循环显示即

6、流水灯第 4 页 共 18 页功能,循环显示方式为:(要求画出硬件接线图) 加入 TCA6416A.c void LEDFlash(void)unsigned char out0_72=0;unsigned char Flag1=0x7F;unsigned char Flag2=0xFE;unsigned int i;for(i=0;i1)|0x80;TCA6416_Tx_Frame(out0_7,2);/ 将更新后的数据包,写入芯片寄存器_delay_cycles(16000000);for(i=0;i#includevoid main(void)第 5 页 共 18 页WDTCTL=WDT

7、PW+WDTHOLD;TCA6416A_Init();BCSCTL1 = CALBC1_12MHZ;DCOCTL = CALDCO_12MHZ;while(1)LEDFlash();试题试题 4:按键外部中断:按键外部中断要求利用 LaunchPad 板,P1.3 外接按键,控制 LED 小灯(P1.6)状态,通过外部中断 实现。要求画出硬件接线图。主程序:(非常规方法) #include“msp430g2553.h“void P13_Onclick();void P1_IODect();void GPIO_init();void main(void)WDTCTL=WDTPW+WDTHOLD;

8、GPIO_init();_EINT();TACTL=TASSEL_2+ID_0+MC_1+TACLR+TAIE+TAIFG;TACCTL1=OUTMOD_7;TACCR0=500;_BIS_SR(LPM0_bits+GIE);LPM3;void GPIO_init()P1DIR|=BIT6;P1SEL|=BIT6;P1REN|=BIT3;P1OUT|=BIT3;P1DIR第 6 页 共 18 页P1IES|=BIT3;P1IE|=BIT3;#pragma vector =PORT1_VECTOR_interrupt void PORT1_ISR(void)P1_IODect();P1IFG=0

9、;void P1_IODect()unsigned int key=0;key=P1IFG_delay_cycles(10000);if(P1INbreak;case BIT3:P13_Onclick();break;default:break;void P13_Onclick()static unsigned int Freq=0;if(Freq=3)Freq=0;else Freq+;switch(Freq)case 0:TACCR1=100;break;case 1:TACCR1=0;break;case 2:TACCR1=100;break;case 3:TACCR1=0;break;

10、default:break;第 7 页 共 18 页试题试题 5:定时器定时器利用定时器定时 0.5S 功能,让小灯亮 0.5s,暗 0.5s 方式闪烁。要求采用定时器中断功 能实现。主程序: #includevoid BCSplus_init(void);void main(void)WDTCTL=WDTPW+WDTHOLD;BCSplus_init();P1SEL=0X00;P1DIR|=0X01;P1OUT|=0X01;while(1)P1OUT=0X01;_delay_cycles(500000);void BCSplus_init(void)BCSCTL2 = SELM_0 + DI

11、VM_0 + DIVS_0;if (CALBC1_1MHZ != 0xFF) DCOCTL = 0x00;BCSCTL1 = CALBC1_1MHZ; /* Set DCO to 1MHz */DCOCTL = CALDCO_1MHZ;第 8 页 共 18 页BCSCTL1 |= XT2OFF + DIVA_0;试题试题 6:串口控制小灯亮灭:串口控制小灯亮灭要求通过串口连接实验箱和计算机,编制程序,从 PC 机发送字符 A 到单片机,单片 机接收后关闭 LED 小灯。发送字符 B 到单片机,单片机接收后点亮 LED 小灯。主程序: #include “msp430g2553.h“void U

12、ART_RX(void);unsigned char temp;void main(void)/ CSL_init(); / Activate Grace-generated configurationWDTCTL = WDTPW + WDTHOLD;P1DIR|=BIT0;P1SEL = BIT1 + BIT2;P1SEL2 = BIT1 + BIT2;if (CALBC1_1MHZ != 0xFF) DCOCTL = 0x00;BCSCTL1 = CALBC1_1MHZ; /* Set DCO to 1MHz */DCOCTL = CALDCO_1MHZ;UCA0CTL1 |= UCSWR

13、ST;UCA0CTL1 = UCSSEL_2 + UCSWRST;UCA0MCTL = UCBRF_0 + UCBRS_1;UCA0BR0 = 104;UCA0CTL1 IFG2 IE2 |= UCA0RXIE;_bis_SR_register(GIE);LPM0;第 9 页 共 18 页#pragma vector=USCIAB0RX_VECTOR_interrupt void USCI0RX_ISR_HOOK(void)UART_RX();void UART_RX(void)temp=UCA0RXBUF;if(temp=B)P1OUT|=BIT0;Else if(temp=A)P1OUTw

14、hile (!(IFG2UCA0TXBUF=temp;题题 7:串口通信:串口通信要求通过串口连接实验箱和计算机,编制程序,从 PC 机发送字符到单片机,单片机 在 LCD 上显示接收到的字符。 #include#include#include#includevoid UART_RX(void);unsigned char temp;void main(void)/ CSL_init(); / Activate Grace-generated configurationWDTCTL = WDTPW + WDTHOLD;P1DIR|=BIT0;P1SEL = BIT1 + BIT2;P1SEL2

15、 = BIT1 + BIT2;if (CALBC1_1MHZ != 0xFF) DCOCTL = 0x00;第 10 页 共 18 页BCSCTL1 = CALBC1_1MHZ; /* Set DCO to 1MHz */DCOCTL = CALDCO_1MHZ;UCA0CTL1 |= UCSWRST;UCA0CTL1 = UCSSEL_2 + UCSWRST;UCA0MCTL = UCBRF_0 + UCBRS_1;UCA0BR0 = 104;UCA0CTL1 IFG2 IE2 |= UCA0RXIE;_bis_SR_register(GIE);LPM0;#pragma vector=USCIAB0RX_VECTOR_interrupt void USCI0RX_ISR_HOOK(void)UART_RX();void UART_RX(void)temp=UCA0RXBUF;TCA6416A_Init();HT1621_init();LCD_DisplayDigit(temp-48,6);HT1621_Reflash(LCD_Buffer);while (!(IFG2UCA0TXBUF=temp;r试题试题 8:定时器:定时器 使用单片机的内部定时器模块,制作电子钟并通过液晶显示时间信息。电子

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号