好文档 - 专业文书写作范文服务资料分享网站

嵌入式基础考试题目

天下 分享 时间: 加入收藏 我要投稿 点赞

1、 用PWM方式,使LED灯闪烁。

#include \ void PwmInit(void); int main(void){

PINSEL0=0x00080000; PwmInit(); while(1){ PWMMR0=4000;

}

void PwmInit(){

PWMPR=0x00; PWMMCR=0x02; PWMMR6=2000; } return 0;

}

PWMMR0=4000; PWMMR6=2000; PWMLER=0x41; PWMPCR=0x4000; PWMTCR=0x09;

2、 用定时器匹配后引脚翻转功能使LED灯1秒闪烁一次。

#include \ #define

LED 1<<3

T0TCR = 0x01; T0EMR=0X30; VICIntSelect = 0x00;

VICVectCntl0 = 0x24;

IOCLR=LED; Time0Init();

void __irq IRQ_Time0(){

while((T0IR&0x01)==0);

T0IR=0x01; VICVectAddr=0x00; }

void Time0Init(){

T0PR = 99;

while(1); }

VICVectAddr0 = (uint32)IRQ_Time0;

}

int main(){

PINSEL0 = 0x00000080;

VICIntEnable = 0x00000010;

return 1;

T0MCR = 0x03;

T0MR0 = 110592/4; T0TCR = 0x03;

3、 上位机发送一个数字字符给下位机(1-8),下位机接受到这个字符若为“1”,则点亮一盏灯,“2”点亮2盏灯。。。。。。。“8”点亮8

盏灯。

4、 设外部中断为FIQ快速中断,按键按下,灯的亮灭状态改变。

/*

*注意:需要在中添加EXTMODE和EXTPOLAR寄存器 */

#include \ #define LED 0x01 void __irq IRQ_SPR() {

if((IOPIN&0X01)==0) else

IOCLR=0X01;

IOSET=0X01;

}

//中断初始化 void EINT_init(){

PINSEL0=0X;//选择为中EINT1,为GPIO VICIntSelect=/*~*/(1<<15);//设置EINT1为

} int main(){ }

EINT_init();

IODIR=LED;//为输出,其余为输入 IOSET=LED;//开始不显示 while(1); return 0;

FIQ中断

VICIntEnable=(1<<15);//EINT1中断使能,

开中断

EXTINT=0x02;//清中断

while((EXTINT&0X02)!=0) EXTINT=0x02;

修改头文件 修改lpc2016

1)在#define MAMTIM (*((volatile unsigned char *) 0xE01FC004))//定时控制 添加:

#define EXTMODE (*((volatile unsigned char *) 0xE01FC148)) #define EXTPOLAR (*((volatile unsigned char *) 0xE01FC14C)) 2)添加 lcd1602 3)修改

void FIQ_Exception(void) {

if((IOPIN&0X01)==0)

IOSET=0X01; else

IOCLR=0X01;

while((EXTINT&0X02)!=0) EXTINT=0x02;

// while(1); // 这一句替换为自己的代码 }

4) 修改 文件 将 5f 改成 9f

5、外部中断,通过1个按键使8个发光二极管二进制显示加法。

#include \

#define LED 0x000000FF //设置p0引脚 typedef unsigned int uint32; uint32 counter=0;

void __irq IRQ_Eint1(void){ //加法 counter++; IOSET=LED; IOCLR=counter;

while((EXTINT&0x02)!=0){ }

VICVectAddr=0; }

EXTINT=0x02;

int main(void) }

{

PINSEL0 = 0x; IODIR = LED; IOSET=LED; IOCLR=counter; VICIntSelect=0;

VICIntEnable=0x00008000; VICVectCntl1=0x2F;

VICVectAddr1=(int)IRQ_Eint1; while (1) ;

6、用单边沿、双边沿两种方式输出两路脉冲信号,要求占空比为50%,显示在同一个示波器上;

嵌入式基础考试题目

1、用PWM方式,使LED灯闪烁。#include\voidPwmInit(void);intmain(void){PINSEL0=0x00080000;PwmInit();while(1){PWMMR0=4000;}voidPwmInit(){<
推荐度:
点击下载文档文档为doc格式
1620s0qaye4uc568cqjj1x2cx44ea901a9z
领取福利

微信扫码领取福利

微信扫码分享