嵌入式基础考试题目(共22页)

上传人:20****08 文档编号:58337332 上传时间:2022-02-27 格式:DOC 页数:22 大小:623.50KB
收藏 版权申诉 举报 下载
嵌入式基础考试题目(共22页)_第1页
第1页 / 共22页
嵌入式基础考试题目(共22页)_第2页
第2页 / 共22页
嵌入式基础考试题目(共22页)_第3页
第3页 / 共22页
资源描述:

《嵌入式基础考试题目(共22页)》由会员分享,可在线阅读,更多相关《嵌入式基础考试题目(共22页)(22页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上1、 用PWM方式,使LED灯闪烁。专心-专注-专业#include config.hvoid PwmInit(void);int main(void)PINSEL0=0x;PwmInit();while(1)PWMMR0=4000;PWMMR6=2000;return 0;void PwmInit()PWMPR=0x00;PWMMCR=0x02;PWMMR0=4000;PWMMR6=2000;PWMLER=0x41;PWMPCR=0x4000;PWMTCR=0x09;2、 用定时器匹配后引脚翻转功能使LED灯1秒闪烁一次。#include config.h#defi

2、ne LED 13void _irq IRQ_Time0() while(T0IR&0x01)=0); T0IR=0x01; VICVectAddr=0x00; void Time0Init() T0PR = 99;T0MCR = 0x03; T0MR0 = /4; T0TCR = 0x03; T0TCR = 0x01; T0EMR=0X30;VICIntSelect = 0x00;VICVectCntl0 = 0x24;VICVectAddr0 = (uint32)IRQ_Time0; VICIntEnable = 0x;int main() PINSEL0 = 0x; IOCLR=LED;

3、 Time0Init(); while(1); return 1;3、 上位机发送一个数字字符给下位机(1-8),下位机接受到这个字符若为“1”,则点亮一盏灯,“2”点亮2盏灯。“8”点亮8盏灯。4、 设外部中断为FIQ快速中断,按键按下,灯的亮灭状态改变。/*注意:需要在LPC2106.h中添加EXTMODE和EXTPOLAR寄存器*/#include config.h#define LED 0x01void _irq IRQ_SPR()if(IOPIN&0X01)=0)IOSET=0X01;elseIOCLR=0X01;while(EXTINT&0X02)!=0)EXTINT=0x02;/

4、中断初始化void EINT_init()PINSEL0=0X;/选择P0.14为中EINT1,P0.0为GPIOVICIntSelect=/*/(115);/设置EINT1为FIQ中断VICIntEnable=(10;i-)for(j=5000;j0;j-);uint32 dis_tab16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;int main()int i;PINSEL0=0;IODIR=LED;while(1)for(i=0;i0;i-) for(j=110;j0;

5、j-) ;int main(void) const uint a8=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff;PINSEL0 = 0x;PINSEL1 = 0x;IODIR = 0xFFFF;while (1) uchar i; for (i=0;i8;i+) IOSET = (CSi) & (0xFF00) | ai; delay(20); IOCLR = 0xFFFF; return 0;9、使用中断,2按键,2灯。不同按键控制不同灯,按键按下,所控制的灯的状态改变。修改头文件1)在#define MAMTIM (*(volatile unsigned

6、 char *) 0xE01FC004)/定时控制添加:#define EXTMODE (*(volatile unsigned char *) 0xE01FC148)#define EXTPOLAR(*(volatile unsigned char *) 0xE01FC14C)#include config.h#define d1 10/第一盏灯#define d2 1=10)temp+=6;/个位大于9进位,改0if(temp&0x00ff)0x99)temp+=0x060;/十位大于9进位,改0IOCLR=LED;IOSET=temp;while(EXTINT&0x01)!=0)EXTI

7、NT=0x01;VICVectAddr=0x00;/清零void _irq IRQ_Eint1()temp=VICIRQStatus;IOCLR=LED;IOSET=0;while(EXTINT&0x02)!=0)EXTINT=0x02;VICVectAddr=0x00;/减法void _irq IRQ_Eint2() temp=VICIRQStatus;temp=IOSET;temp-;if(temp&0x000f)=0xf)/temp-,个位出现f,执行下边操作temp&=0xf9;/个位f-9-,十位保留if(temp&0x00f0)=0xf0)/temp-,十位出现f,执行下边操作te

8、mp&=0x9f;/十位f-9,个位保留IOCLR=LED;IOSET=temp;while(EXTINT&0x04)!=0)EXTINT=0x04;VICVectAddr=0x00;void EXTINT_Init()VICIntSelect=0x;VICVectCntl0=0x2e;VICVectAddr0=(int)IRQ_Eint0;VICVectCntl1=0x2f;VICVectAddr1=(int)IRQ_Eint1;VICVectCntl2=0x30;VICVectAddr2=(int)IRQ_Eint2;VICIntEnable=0x0001c000;EXTINT=0x07;

9、int main()PINSEL0=0xa;PINSEL1=0x;EXTINT_Init();IODIR=LED;IOCLR=LED;while(1);return 0;11、以GPIO的方式控制LCD1602输出两行,第一行显示邮箱,第二行显示电话号#include config.h#define rs (18)#define rw (19)#define en (110)#define busy (19)data_buf0 = 0;Display(data_buf0+1);data_buf0+;ISendStr(EEPROM,0x00,data_buf,1);/写入数据到EEPROM 0x

10、00while(1);return 0;void DelayNS(uint32 dly) uint32 i; for(; dly0; dly-) for(i=0; i50000; i+);void Display(uint8 num)switch(num)case 0:/0IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x3F8;break;case 1:/1IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 2:/2IOCLR |= (IOCLR & 0xFFFF00FF)

11、|(0xFF8);IOSET |= 0xB8;break;case 3:/3IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xF8;break;case 4:/4IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 5:/5IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xD8;break;case 6:/6IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xD8;break;case

12、 7:/7IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 8:/8IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xF8;break;case 9:/9IOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xF8;break;case 10:/AIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 11:/BIOCLR |= (IOCLR & 0xFFFF00F

13、F)|(0xFF8);IOSET |= 0xC8;break;case 12:/CIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 13:/DIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0xE8;break;case 14:/EIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;case 15:/FIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;

14、default:/offIOCLR |= (IOCLR & 0xFFFF00FF)|(0xFF8);IOSET |= 0x8;break;13、利用PWM和按键,实现按键按下,脉宽增加的功能。#include config.h#define KEY1 0x /*P0.14引脚连接KEY1*/void WaitKey() uint32 i; while(1) while(IOPIN&KEY1)!=0); for(i=0;i=4000) pwmdata=0; return 0;14、利用数码管显示8个按键的按键序号,例如:第一个按键按下显示“1”,第二个按键按下显示“2”,以此类推。#includ

15、e config.h#define key (0xff0;i-)for(j=110;j0;-j);/*判断按键*/void waitkey()if(IOPIN&key)!=key)/判断有键按下delay(1000);/延时去抖if(IOPIN&key)!=key)/再次判断按键IOCLR=0xff;/清0switch(IOPIN&key)case 0x0000fe00:/键1IOSET=0x00FF06;break;case 0x0000fd00:/键2IOSET=0x00FF5b;break;case 0x0000fb00:/键3IOSET=0x000FF4f;break;case 0x0

16、000f700:/键4IOSET=0x00FF66;break;case 0x0000ef00:/键5IOSET=0x00FF6d;break;case 0x0000df00:/键6IOSET=0x00FF7d;break;case 0x0000bf00:/键7IOSET=0x0000FF07;break;case 0x00007f00:/键8IOSET=0x0000FF7f;break;while(IOPIN&key)=key);/等待按键抬起int main()PINSEL0=0x0;/GPIO功能IODIR=0xFF;/输入输出while(1)waitkey();return 0;15、

17、利用WDT,控制LED1-LED4显示输出。程序先对LED1-LED4闪烁3次,并进行喂狗处理;然后只点亮LED1,并进入死循环,等待WDT复位;#include config.h#define LEDCON 0xfvoid WdtFeed(void) WDFEED = 0xAA; WDFEED = 0x55;void DelayNS(uint32 dly) uint32 i; for(; dly0; dly-) for(i=0; i1000; i+)WdtFeed(); int main(void) uint8 i; IODIR = LEDCON; WDTC = ; WDMOD = 0x03

18、; WdtFeed(); for(i=0; i0; dly-) for(i=0; i5000; i+);void MSpiIni(void) S0SPCCR = 0x52; S0SPCR = 0x30;uint8 MSendData(uint8 data) IOCLR = HC595_CS; S0SPDR =data; while( 0=(S0SPSR&0x80) ); IOSET = HC595_CS; return (S0SPDR); uint8 const DISP_TAB16 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x7

19、7,0x7c,0x39,0x5e,0x79,0x71;uint8 rcv_data; int main(void) uint8 i; PINSEL0 = 0x; PINSEL1 = 0x; IODIR = HC595_CS; MSpiIni(); while(1) for(i=0; i0;dly-) for(i=0;i50000;i+);void MSpiIni(void) S0SPCCR=0x52; S0SPCR=0x30; uint8 MSendData(uint8 data) IOCLR=HC595_CS; S0SPDR=data; while(0=(S0SPSR&0x80); IOSE

20、T=HC595_CS; return(S0SPDR);uint8 DISP_TAB33=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01, 0x00,0xFF,0x00,0xFF,0x00, 0x18,0x24,0x42,0x81, 0x01,0x04,0x10,0x40, 0x02,0x08,0x20,0x80 ; int main(void) uint8 rcv_data; uint8 i; PINSEL0=0x; PINSEL1=0x; IODIR=HC595_CS; MSpi

21、Ini(); rcv_data=MSendData(0); while(1) for (i=0;i0;dly-) for(i=0;i50000;i+);void UART0_Ini(void) U0LCR=0x83; U0DLL=0x12; U0DLM=0x00; U0LCR=0x03;void UART0_SendByte(uint8 data) U0THR=data; while(U0LSR&0x40)=0); void UART0_SendStr(uint8 const *str) while(1) UART0_SendByte(*str+); if(*str=0) UART0_Send

22、Byte(r); UART0_SendByte(n); break; int main(void) uint8 const SEND_STRING=zhangyunan!n; PINSEL0=0x; PINSEL1=0x; UART0_Ini(); UART0_SendStr(SEND_STRING); DelayNS(10);20、利用UART串口,完成一个字符串的写入和回写功能,要求每4个字符触发一次,返回刚才写入的字符。#include config.h#define LED1CON 0x #define FPCLK Ltypedef struct UartMode uint8 data

23、b; uint8 stopb; uint8 parity; UARTMODE;uint8 rcv_buf9; uint8 rcv_new; uint32 i;void _irq IRQ_UART0(void) i=IOSET; if(i&LED1CON)=0) IOSET=LED1CON; else IOCLR=LED1CON; if(0x04=(U0IIR&0x0F)rcv_new=1; for(i=1;i5;i+) rcv_bufi=U0RBR; for(i=5;i9;i+) rcv_bufi=rcv_bufi-4; VICVectAddr=0x00; void SendByte(uint

24、8 data) U0THR=data; while(U0LSR&0x20)=0); void ISendBuf(void) uint8 i; SendByte(n); for(i=1;i)return(0); if(set.datab8)return(0); if(0=set.stopb)|(set.stopb2)return(0); if(set.parity4)return(0); U0LCR=0x80; bak=(FPCLK4)/baud; U0DLM=bak8; U0DLL=bak&0xff; bak=set.datab-5; if(2=set.stopb)bak|=0x04; if(

25、0!=set.parity)set.parity=set.parity-1;bak|=0x08; bak|=set.parity4; U0LCR=bak; return(1);int main(void) UARTMODE uart0_set; PINSEL0=0x; PINSEL1=0x; IODIR=LED1CON; rcv_new=0; uart0_set.datab=8; uart0_set.stopb=1; uart0_set.parity=0; UART0_Ini(9600,uart0_set); U0FCR=0x81; U0IER=0x01; VICIntSelect=0x; VICVectCntl0=0x26; VICVectAddr0=(int)IRQ_UART0; VICIntEnable=0x; while(1) if(1=rcv_new) rcv_buf0=r; ISendBuf(); rcv_new=0; return(0);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!