嵌入式实验报告各实验答案.docx

上传人:b****8 文档编号:10095950 上传时间:2023-05-23 格式:DOCX 页数:32 大小:92.92KB
下载 相关 举报
嵌入式实验报告各实验答案.docx_第1页
第1页 / 共32页
嵌入式实验报告各实验答案.docx_第2页
第2页 / 共32页
嵌入式实验报告各实验答案.docx_第3页
第3页 / 共32页
嵌入式实验报告各实验答案.docx_第4页
第4页 / 共32页
嵌入式实验报告各实验答案.docx_第5页
第5页 / 共32页
嵌入式实验报告各实验答案.docx_第6页
第6页 / 共32页
嵌入式实验报告各实验答案.docx_第7页
第7页 / 共32页
嵌入式实验报告各实验答案.docx_第8页
第8页 / 共32页
嵌入式实验报告各实验答案.docx_第9页
第9页 / 共32页
嵌入式实验报告各实验答案.docx_第10页
第10页 / 共32页
嵌入式实验报告各实验答案.docx_第11页
第11页 / 共32页
嵌入式实验报告各实验答案.docx_第12页
第12页 / 共32页
嵌入式实验报告各实验答案.docx_第13页
第13页 / 共32页
嵌入式实验报告各实验答案.docx_第14页
第14页 / 共32页
嵌入式实验报告各实验答案.docx_第15页
第15页 / 共32页
嵌入式实验报告各实验答案.docx_第16页
第16页 / 共32页
嵌入式实验报告各实验答案.docx_第17页
第17页 / 共32页
嵌入式实验报告各实验答案.docx_第18页
第18页 / 共32页
嵌入式实验报告各实验答案.docx_第19页
第19页 / 共32页
嵌入式实验报告各实验答案.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式实验报告各实验答案.docx

《嵌入式实验报告各实验答案.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告各实验答案.docx(32页珍藏版)》请在冰点文库上搜索。

嵌入式实验报告各实验答案.docx

嵌入式实验报告各实验答案

boot实验报告

 

本次实验由于时间限制,共完成了三种不同的变化方式,但是课后又设计了一些其他的变化方式。

1、从左到右,再从右到左亮灯,不断循环

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

 

inti;

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

voiddummyOs(void)

{

while

(1)

{

LED_CS4=0xff;

for(i=1;i<=8;i++)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

for(i=7;i>1;i--)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

}

}

2、先从左到中,后从右到中,不断循环

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

 

inti;

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

 

voiddummyOs(void)

{

while

(1)

{

LED_CS4=0xff;

for(i=0;i<4;i++)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

for(i=7;i>=4;i--)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

}

}

3、从左到右,从右到左,隔一个跳

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

 

inti;

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

voiddummyOs(void)

{

while

(1)

{

LED_CS4=0xff;

for(i=1;i<8;i=i+2)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

for(i=7;i>1;i=i-2)

{

LED_CS4=(LED_VALUE<

Delay(200);

}

}

}

课后补做:

1、从左到右灯灭

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

 

inti;

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

 

voiddummyOs(void)

{

while

(1)

{

LED_CS4=0x00;

for(i=8;i>=1;i--)

{

LED_CS4=(LED_VALUE>>i)+1;

Delay(200);

}

}

}

2、从左到右,再从右到左灯灭,不断循环

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

inti;

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

voiddummyOs(void)

{

while

(1)

{

LED_CS4=0x00;

for(i=8;i>=1;i--)

{

LED_CS4=(LED_VALUE>>i)+1;

Delay(200);

}

for(i=1;i<7;i++)

{

LED_CS4=(LED_VALUE>>i)+1;

Delay(200);

}

}

}

实验总结:

 

数码管显示实验报告

实验目的

1.在实验一引导程序的基础上进一步了解ARM体系结构和编程方法;

2.掌握外设访问的方法;

3.理解8段数码管的显示原理

实验内容

1显示同组的两位同学的四位学号20322033;

2显示一组大于九的四位十六进制数字,如abcd。

3使跑码灯从左到右顺序亮。

实验代码

#include

#include"register_variant.h"

#defineLED_CS2(*((volatileunsignedshortint*)(0x10300000)))//LED1andLED2

#defineLED_CS3(*((volatileunsignedshortint*)(0x10400000)))//LED3andLED4

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineLED_VALUE(0xff)

 

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

inti=0;

voiddummyOs(void)

{

LED_CS2=0x8f8f;//00

LED_CS3=0x8f8f;//00

while

(1)

{

//Delay(100);

LED_CS2=0x4024;//20

LED_CS3=0x2430;//32

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

LED_CS2=0x4024;//20

LED_CS3=0x3030;//33

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

LED_CS2=0x4024;//20

LED_CS3=0x2430;//32

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

LED_CS2=0x4024;//20

LED_CS3=0x3030;//33

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

LED_CS2=0x0308;//Ab

LED_CS3=0x0646;//CE

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

LED_CS2=0x0308;//Ab

LED_CS3=0x0646;//CE

LED_CS4=(LED_VALUE<

if(i<=8)i++;

elsei=0;

Delay(200);

}

}

实验总结:

 

键盘实验实验报告

实验目的:

1.了解直入键盘与矩阵键盘的原理

2.了解键盘寄存器的功能

3.掌握键盘输入的编程方法

实验要求:

1.对所有16个按键进行编码,如使用一位数字[0-F,也可以用两位]

2.当按键后,在七段数码管上显示对应的键盘编码。

3.在跑码灯上显示相应二进制数。

 

实验代码:

#include

#include"register_variant.h"

#defineLED_CS2(*((volatileunsignedshortint*)(0x10300000)))//LED1andLED2

#defineLED_CS3(*((volatileunsignedshortint*)(0x10400000)))//LED3andLED4

#defineKPDK_VALUE(*((volatileunsignedchar*)(0x41500008)))//DirectKeypad

#defineKAPS_VALUE(*((volatileunsignedchar*)(0x41500020)))

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

 

voidbutton_statusFetch(void)

{

charm=0,n=0;

unsignedshortintkbd_buff;

m=KPDK_VALUE;

n=KAPS_VALUE;

switch(m)

{

case0x40:

//key-press1

kbd_buff=0x8F79;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x7F;

break;

case0x02:

//key-press2

kbd_buff=0x248F;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0xBF;

break;

case0x04:

//key-press3

kbd_buff=0x8F30;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0x3F;

break;

case0x20:

//key-press4

kbd_buff=0x198F;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0xDF;

break;

default:

kbd_buff=0x8F8F;break;

}

switch(n)

{

case0x00:

//key-press5

kbd_buff=0x8F12;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x5F;

break;

case0x01:

//key-press6

kbd_buff=0x028F;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x9F;

break;

case0x02:

//key-press7

kbd_buff=0x8F78;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0x1F;

break;

case0x05:

//key-press8

kbd_buff=0x008F;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0xEF;

break;

case0x10:

//key-press9

kbd_buff=0x8F18;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x6F;

break;

case0x11:

//key-press10

kbd_buff=0x088F;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0xAF;

break;

case0x12:

//key-press11

kbd_buff=0x8F03;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0x2F;

break;

case0x15:

//key-press12

kbd_buff=0x468F;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0xCF;

break;

case0x20:

//key-press13

kbd_buff=0x8F21;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x4F;

break;

case0x21:

//key-press14

kbd_buff=0x068F;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x8F;

break;

case0x22:

//key-press15

kbd_buff=0x8F0E;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0x0F;

break;

case0x25:

//key-press16

kbd_buff=0x408F;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0xF7;

break;

default:

kbd_buff=0x8F8F;break;

}

}

voiddummyOs(void)

{

intled_sharp;

inttemp=~0;

LED_CS2=temp;

LED_CS3=temp;

while

(1)

{

led_sharp=ledShareInterval;

for(;led_sharp>0;led_sharp--)

{

button_statusFetch();

}

}

}

实验总结:

 

中断实验报告

实验目的;

1.理解中断向量表的结构

2.理解中断处理的过程

3.学习编写中断处理程序的方法

实验内容:

1.基本内容:

修改源程序,通过中断方式响应按键,当1-16键按下时,数码管显示0-F。

2.设计主程序,使8个LED以一定的时间间隔从右到左依次点亮,循环显示;(实验一的内容)

3.编写中断服务程序,达到如下效果:

以中断形式驱动按键,当有键按下时,在七段数码管上,显示对应的16个键盘编码值0-9a-f(实验二、三的内容),然后回到主程序。

实验代码:

Interrupt.c中

#include

#defineLED_CS2(*((volatileunsignedshortint*)(0x10300000)))//LED1andLED2

#defineLED_CS3(*((volatileunsignedshortint*)(0x10400000)))//LED3andLED4

#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))

#defineKPDK_VALUE(*((volatileunsignedchar*)(0x41500008)))//DirectKeypad

#defineKPAS_VALUE(*((volatileunsignedchar*)(0x41500020)))//MatrixKeypad

#defineLED_VALUE(0xff)

voidDelay(unsignedintx)

{

unsignedinti,j,k;

for(i=0;i<=x;i++)

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

for(k=0;k<0xff;k++);

}

voidIRQ_Function(void)

{

chari,j;

unsignedshortintkbd_buff;

i=KPDK_VALUE;

j=KPAS_VALUE;

switch(i)

{

case0x40:

//key-press1

kbd_buff=0x408f;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0x7F;

break;

case0x02:

//key-press2

kbd_buff=0x798f;

LED_CS2=kbd_buff;

LED_CS3=0x8F8F;

LED_CS4=0xBF;

break;

case0x04:

//key-press3

kbd_buff=0x248f;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0x3F;

break;

case0x20:

//key-press4

kbd_buff=0x8F30;

LED_CS3=kbd_buff;

LED_CS2=0x8F8F;

LED_CS4=0xDF;

break;

default:

switch(j)

{

case0x00:

//key-press5

LED_CS2=0x198f;

LED_CS3=0x8f8f;

LED_CS4=0x5F;

break;

case0x01:

//key-press6

LED_CS2=0x128f;

LED_CS3=0x8f8f;

LED_CS4=0x9F;

break;

case0x02:

//key-press7

LED_CS2=0x028f;

LED_CS3=0x8f8f;

LED_CS4=0x1F;

break;

case0x05:

//key-press8

LED_CS2=0x788f;

LED_CS3=0x8f8f;

LED_CS4=0xEF;

break;

case0x10:

//key-press9

LED_CS2=0x008f;

LED_CS3=0x8f8f;

LED_CS4=0x6F;

break;

case0x11:

//key-press10

LED_CS2=0x108f;

LED_CS3=0x8f8f;

LED_CS4=0xAF;

break;

case0x12:

//key-press11

LED_CS2=0x088f;

LED_CS3=0x8f8f;

LED_CS4=0x2F;

break;

case0x15:

//key-p

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2