李晓林(061121)嵌入式系统实验报告_嵌入式系统实验报告

其他范文 时间:2020-02-28 05:42:31 收藏本文下载本文
【www.daodoc.com - 其他范文】

李晓林(061121)嵌入式系统实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“嵌入式系统实验报告”。

嵌入式系统设计实验报告

班 级:学 号:姓 名:成 绩:指导教师:

090611 2009061121 李晓林 武俊鹏 刘书勇 1

1.实验一

1.1 实验名称

博创UP-3000实验台基本结构及使用方法

1.2 实验目的 熟悉UP-net3000实验平台的核心硬件电路和外设  ARM JTAG的安装与使用

 通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态,为以后的实验和课设打下基础。

1.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环

境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求

熟悉UP-net3000实验平台的核心硬件电路和外设,ARM JTAG的安装与使用。通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态。要求通过本次课程对各个外设的了解,为今后各个接口实验打下基础。

1.5 实验设计与实验步骤

1.熟悉嵌入式开发平台。

1)了解开发板主要硬件位置及功能

2)主要了解串口及USB口位置

3)了解开发板与PC间的连接方法。2.安装ARM JTAG。

3.建立超级终端ARM,并熟悉其使用。

1)运行windows下的超级终端,取名为arm。

2)设置波特率为115200,数据位8,停止位1,无数据流控制。

3)保存快捷方式

4)启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS 设置状态。5)每个条目的最左边字母是该功能的快捷键,按PC 机键盘相应键将执行对应功能。

6)按超级终端的提示尝试部分测试功能。

7)按PC键盘的u键将开发板16M Flash挂载到PC机上。

1.6 实验过程与分析

按照步骤3测试开发板外设状态,测试结果表明开发板硬件没有问题,为以后

开发排除了硬件故障这个原因,最后将“Hello,world”那个工程system.bin 文件通过USB 下载到嵌入式开发板中,复位系统,运行并检查输出。基本测试完成。

1.7 实验结果总结

本实验测试了开发板硬件状态,保证其功能好使,为以后开发出现问题排除了硬件故障这一原因,熟悉了开发板主要部件作用及位置,知道了USB口及串口的位置,为以后出现连接问题提供了解决方案。最后,测试“Hello,world”工程,了解了简单调试修改错误的方法,为以后调试代码提供了解决方案。

1.8 试验中遇到的问题

在实验过程中遇到了挂载开发板Flash没有挂载上去的现象,总结其原因大致有两个

1)病毒侵占开发板端口,解决方法为安装杀毒软件扫描一下PC。

2)PC键盘为英语“大写”状态,此时按“U”无法挂载,因为终端对于大小写非常敏感,这一点类似于Linux,解决方法为按“CapsLk”键转换为“小写”。

1.9 心得体会

通过本次实验,大致学会了三点: 1)通过终端挂载开发板Flash 3)测试开发板硬件外设状态,为以后开发出现问题排除了硬件故障这一原因。2)拷贝开发工程中system.bin至开发板Flash,运行代码,并根据运行结果进行简单调试。

2.实验二

2.1 实验名称

ADS1.2软件开发环境使用方法

2.2 实验目的熟悉ADS1.2开发环境,了解嵌入式开发的基本思想和过程。使用 ADS1.2 编译、下载、调试并跟踪程序。

2.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环

境、仿真器驱动程序、超级终端通讯程序。

2.4 实验内容及要求

1.ADS 1.2开发环境使用。AXD Debugger使用方法。

2.Hello World!——最小系统,编译及调试。学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。

3.编程实现ARM 和计算机之间的串行通讯。

4.ARM 监视串行口;将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的);即按PC 键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。

2.5 实验设计与实验步骤

1.新建工程,将“Exp2 ARM 串口实验”中的文件添加到工程中,这些是启动时所需

要的文件。

2.定义与UART 有关的各个寄存器地址和一些特殊的位命令。3.编写串口驱动函数(MyUart.c)。此函数主要是实现三个功能: 1)串口的初始化

实现方法为将寄存器ULCONn、UCONn置零,设置寄存器ULCONn、UCONn、UBRDIV,延时:延时的实现方法可以用for循环实现,循环体里空函数以实现延时。2)发送数据

实现方法为首先判断发送队列是否为空,若为空则延时,然后发送数据WrUTXH0(data);若不为空则继续判断发送队列是否为空。3)接收数据

实现方法为首先判断接收队列是否为满,若为空则接收数据RdURXH0();若不为空则继续判断接收队列是否为满。

4.在主函数中实现将从串口0 接收到的数据发送到串口0(Main.c)。

主要编程思想:开发板初始化ARMTargetInit(),设置LCD显示模式,向串口输出数据Hello world!,从串口采集数据,显示采集的数据。

2.6 实验过程与分析

在实验过程中,主函数调用函数Uart_Getch从串行口采集数据,然后将采集的数据通过函数Uart_SendByte显示出来。主函数主要实现代码:

ARMTargetInit();//开发版初始化

LCD_Init();while(1){ LCD_ChangeMode(DspTxtMode);//转换LCD显示模式为文本显示模式

LCD_Cls();//文本模式下清屏命令

LCD_printf(“Hello world!n”);//向液晶屏输出

Uart_Printf(“nHello world!n”);//向串口输出

err=Uart_Getch(c1,0,0);//从串口采集数据

Uart_SendByte(0,c1[0]);//显示采集的数据

} 2.7 实验结果总结

运行串行口函数,将PC 键盘通过超级终端发送数据,开发板再将接收到的数据返送给PC,在超级终端上显示。

2.8 心得体会

通过本次实验进一步熟悉了实验平台和软件,并通过实验指导书的指导,初步了解可在平台上的系统的基本组成,并可以将一个简单的例子实现,熟悉了串口对串口原理有了进一步的了解。

3.实验三

3.1 实验名称

键盘控制方法及LED驱动设计

3.2 实验目的1.学习键盘及LED 驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序

3.4 实验内容及要求

通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。要求从右至左循环显示至少四位数字。

基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。

3.5 实验设计与实验步骤

此实验设计主要分为三大模块: 1)定义键盘映射表:(KeyBoard.c)

unsigned char KeyBoard_Map[]= {4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};此文件中有键值读取函数:其大体流程为,判断是否有键按下,如果有按键按下,从zlg7289读取键值,判断按键值是否有效,如果有效则通过映射表得到按键值。

2)数码管显示数字模块,首先使zlg7289占有同步串口,延时,然后显示个位,之后判断显示的数字为几位,分别编码显示各个位,此部分可以用else语句实现。

3)每当输入一个数字,数码管原先的数字就得向左移动新数字在最后一位显示,将原先所得数值*10再加上新值,最后显示。

4)主函数编写模块:首先开发板初始化,LCD初始化,从小键盘获取数字,显示数字。

3.6 实验过程与分析

1)数码管显示数字模块:部分代码 void LEDshow(U32 key){

Zlg7289_Reset();

Delay(1);6

ZLG7289_ENABLE();//使zlg7289占有同步串口

Delay(5);//延时

WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮

WriteSDIO(key%10);//显示个位

Delay(1);//延时

if(key>9999999)

{ WriteSDIO(ZLG7289_CMD_DATA0|7);

WriteSDIO((unsigned char)(key/10000000));

Delay(1);

„„„

WriteSDIO(ZLG7289_CMD_DATA0|1);//发送十位数据

WriteSDIO((unsigned char)(key/10%10));

Delay(1);

WriteSDIO(ZLG7289_CMD_HIDE);//使一、二两位数码管显示

WriteSDIO(255);

} ZLG7289_DISABLE();//zlg7289放弃同步串口控制权

} 2)获取数字模块主要代码: U32 GetNum(){ U32 key,m;key = GetKey();Delay(5000);

{

m=key;

LEDshow(key);

Delay(5000);„„

m=key+m*10;LEDshow(m);} return m;} 3.7 实验结果总结

本实验通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。实现了从左至右显示四位及四位以上数字(最大八位)。消除键盘抖动现象方法:

通过实验,用延时的方法的消除抖动现象,具体延时为Delay(2000)。

3.8 心得体会

通过本实验知道了键盘映射表的功能,通过尝试,修改键盘映射表,学会了驱动键盘及LED显示数据方法,为以后使用键盘,LED硬件提供了方法。

4.实验四

4.1

实验名称

电机转动控制及中断实验

4.2 实验目的1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现 ARM系统的PWM 输出和I/O 输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.掌握带有PWM 和I/O 的CPU 编程实现其相应功能的主要方法。了解44B0处理器的定时器应用。

5.学习在44B0处理器上中断的应用。进一步熟悉平台外围硬件及其驱动程序的编写。

4.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环 境、仿真器驱动程序、超级终端通讯程序。

4.4 实验内容及要求

1.利用A/D转换器实现对直流电机和步进电机的控制。

2.利用实验设备上自带的小键盘实现A/D转换器对两个电机控制的切换。

3.学习S3C44B0上定时器中断应用方法。综合键盘、LED、A/D以及电机等外设,编写出单一的中断应用。编写出多个不同优先级中断应用嵌套的应用系统。

4.5 实验设计与实验步骤

1.首先实现小键盘输入,这个问题的灵感来源于实验三键盘驱动实验,观察实验三keyBoard.c发现检测键盘是否有按键按下是通过while((rPDATG&ZLG7289_KEY));//有键按下,这段代码监视的,所以main.c中的if((rPDATG&0x10))//PC键盘有输入,则跳出这段监视PC键盘的代码修改为if(rPDATG&ZLG7289_KEY),这样就可以通过小键盘来驱动电机的转换。

2.加上定时Timer3INTCount==40,实验十是定时器中断和驱动程序,此实验中的timer.c是计算中断次数的,加上以上代码实现没中断40次实现直流电机和步进电机的切换。

4.6 实验过程与分析

1.参考实验三根据设计步骤一修改main.c实现小键盘输入。

2.将实验十的定时器中断代码timer.c加入本工程中,在mian.c中引用此文件中的函数。3.修改main.c实现中断次数到40次时,转换直流电机和步进电机。4.实验中main.c主要修改代码

int main(void)8

{ „„

for(;;){ begin:

for(;;){ „„

if((rPDATG&ZLG7289_KEY)||(Timer3INTCount==40))//小键盘是否有输入,中断次数是否为40次。

} {

} *Revdata=RdURXH0();goto next;next:

„„ for(;;){ loop: if((rPDATG&ZLG7289_KEY)||(Timer3INTCount==40))//小键盘是否有输入,中断次数是否为40次。

{

} Delay(10);*Revdata=RdURXH0();goto begin;„„ }

4.7 实验结果总结

在LED上显示中断次数。当中断次数到40实现直流电机和步进电机的切换,小键盘有键按下时也切换。

4.8 心得体会

通过本次实验对ARM实验台键盘输入更加了解,理解了步进电机和直流电机的工作原理,掌握了中断定时技术,熟悉了通过AD转换控制电机的编程原理。

5.实验五

5.1 实验名称

LCD驱动及触摸屏实验

5.2 实验目的1.了解LCD 基本概念与原理。

2.理解LCD 的驱动控制。熟悉用总线方式驱动LCD模块。3. 熟悉用ARM内置的LCD 控制器驱动LCD。

4.了解触摸屏基本概念与原理。理解触摸屏与LCD的密切配合。5.编程实现对触摸屏的控制。

5.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环

境、仿真器驱动程序、超级终端通讯程序。

5.4 实验内容及要求

1.掌握LCD显示原理及显示驱动的嵌入式系统编程实现方法。

2.学习基于ARM的LCD 显示驱动控制方法,通过对ARM 内置的LCD 控制器进行编程实现驱动LCD显示屏。

3.学习触摸屏基本原理,理解触摸屏的输出标定以及与LCD 显示器配合的过程,编程对触摸屏进行控制,实现:

1)点击触摸屏上两点后,两点之间画出一条直线。2)点击触摸屏并在其上移动,显示移动轨迹。

5.5 实验设计与实验步骤

本实验旨在点击触摸屏上两点后,两点之间画出一条直线。本实验主函数在main.c中其编写方法为: 1.开发板初始化 2.LCD初始化

3.触摸板函数TchScr_Test()在tchScr.c文件有TchScr_Test()函数,TchScr_GetScrXY函数(获得触摸点坐标),TchScr_GetOSXY(获得触摸点坐标并返回触摸动作)三个主要函数,其中TchScr_Test()函数为主要函数,来编写触摸两点划出一条直线。其编写方法为: 1.声明四个变量,根据TCHSCR_ACTION_CLICK动作获取两次点击触摸屏的坐标,第一次获得触摸屏坐标储存在变量w,h中。第二次获得触摸屏坐标储存在变量x,y中。

2.获取两次触摸屏的坐标后,比较两次获取的x坐标的大小,计算直线的斜率k =((float)y-(float)h)/((float)x-(float)w),然后根据公式j = h-k*(w-i)从小的坐标画直线。

3.如果两次坐标获取的x值相同,判断纵坐标大小,从纵坐标较小者递增画直线。

5.6 实验过程与分析

实现的主要过程为:

mode=TchScr_GetOSXY(&x, &y);获取触摸屏坐标 switch(mode){ case TCHSCR_ACTION_CLICK:

LCDBuffer[x][y]=jcolor;点亮像素点} if(x > w){ k =((float)y-(float)h)/((float)x-(float)w);计算直线的斜率 for(i = w;i

5.7 实验结果总结

点击触摸屏上两点后,两点之间画出一条直线。点击触摸屏并在其上移动,显示移动轨迹。

5.8 实验中遇到的问题

实验中遇到的问题:

实验时计算直线的斜率是首先用的是整数类型,结果画出的直线偏差很大。解决方法为用强制转化的方法计算斜率 k =((float)y-(float)h)/((float)x-(float)w);

5.9 心得体会

通过本次实验,对LCD触屏驱动原理和显示触屏轨迹有了很深的认识。明白了如何点亮触摸屏上的像素,为以后综合实验做了准备。

6.实验六

6.1 实验名称

ucos-II裁剪实验

6.2 实验目的掌握μcos-II裁剪的基本原理与嵌入式编程实现方法。学习如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。

6.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环 境、仿真器驱动程序、超级终端通讯程序。

6.4 实验内容及要求

1)掌握μcos-II裁剪的基本原理与嵌入式编程实现方法。

2)学习如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。3)通过对μcos-II配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对μcos-II的裁剪。4)给出裁剪的详细过程与裁剪结果说明,并生成裁剪后的操作系统文件。

6.5 实验设计与实验步骤

通过对μcos-II配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对μcos-II的裁剪。在OS_CFG.H配置文件中查找并修改以下宏定义 #define OS_LOWEST_PRIO

#define OS_TASK_STAT_EN

0 #define OS_EVENT_NAME_SIZE

#define OS_FLAG_NAME_SIZE

#define OS_MEM_NAME_SIZE

#define OS_TASK_NAME_SIZE

#define OS_TICKS_PER_SEC

1000 6.6 实验过程与分析

μcos-II操作系统基本是最低配置,在对源代码解析时发现可裁剪的很少,源代码主要包括以下文件os_core.c,os_flag.c,os_mbox.c,os_mem.c,os_mutex.c,os_q.c,os_sem.c,os_task.c,os_time.c,比较精简。故只对os_cfg.h配置文件做了一些相应修改。修改如上。

6.7 实验结果总结

成功的对μcos-II操作系统进行了修改,实现了对μcos-II的裁剪,为以后在操作系统上做一些相关实验以及课设奠定了基础。

6.8 心得体会

实现了对μcos-II的裁剪,为以后在操作系统上做一些相关实验以及课设奠定了基础。

7.实验七

7.1 实验名称

ucos-II移植实验

7.2 实验目的了解uCOS-II 内核的主要结构。掌握将uCOS-II 内核移植到ARM7 处理器上的基本方法。

7.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环

境、仿真器驱动程序、超级终端通讯程序。

7.4 实验内容及要求

了解µC/OS-II 内核的主要结构,掌握ARM的C语言和汇编语言的编程方法。了解ARM7处理器结构,掌握将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。将µC/OS-II 内核移植到ARM7 微处理器S3C44B0上。编写两个简单任务,在超级终端上观察两个任务的切换。

7.5 实验设计与实验步骤.该实验的文件分为两类,其一是 STARTUP目录下的系统初始化、配置等文件,其二是uCOS-II 的全部源码,arch 目录下的3 个文件是和处理器架构相关的。.设置os_cpu.h 中与处理器和编译器相关的代码。

1)根据处理器的字长修改相关数据类型的定义

2)修改OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()两个函数实现开关中断。

3)修改OS_STK_GROWTH设置堆栈的生长方式

3.用C 语言编写6 个操作系统相关的函数(OS_CPU_C.C)。

1)OSTaskStkInit 2)OSTaskCreateHook 3)OSTaskDelHook 4)OSTaskSwHook 5)OSTaskStatHook 6)OSTimeTickHook 4.用汇编语言编写4 个与处理器相关的函数(OS_CPU.ASM)。

1)OSStartHighRdy();运行优先级最高的就绪任务 2)OS_TASK_SW();任务级的任务切换函数 3)OSIntCtxSw();中断级的任务切换函数 4)OSTickISR();时钟节拍中断.编写一个简单的多任务程序来测试一下移植是否成功。.编译并下载移植后的uCOS-II。

7.6 实验过程与分析

按照实验步骤1-4进行修改操作系统。5.编写一个简单的多任务程序:

1)在程序开头定义任务堆栈,任务函数声明和任务优先级:

OS_STK TaskName_Stack[STACKSIZE]={0, };//任务堆栈 void TaskName(void *Id);//任务函数 #define TaskName_Prio N //任务优先级

2)在main()函数中调用OSStart()函数之前用下列语句创建任务:

OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1], TaskName_Prio);部分代码为:

OSTaskCreate(Main_Task,(void *)0,(OS_STK *)&task1_Stack[STACKSIZE*8-1], task1_Task_Prio);// 创建任务1 OSTaskCreate(Display_Task,(void *)0,(OS_STK *)&_task2_Stack[STACKSIZE-1], task2_Task_Prio);// 创建任务2 3)编写任务函数内容:

void task1(void *Id){ for(;;){ Uart_Printf(“nRun task1.”);OSTimeDly(SusPendTime);//挂起一定时间,以使其他任务可以占用CPU } } void task2(void *Id){ for(;;){ Uart_Printf(“nRun task2.”);OSTimeDly(SusPendTime);//挂起一定时间,以使其他任务可以占用CPU } }

将ucos进行移植,进行两个任务切换。

7.7 实验结果总结

两个任务在超级终端进行正常切换,成功实现了ucosII在Arm7上的移植。

7.8 心得体会

通过本次实验,对系统移植的原理有了初步了解,对ucosII的运行机理有了更近一步的了解。

8.实验八

8.1 实验名称

各接口模块相互衔接综合实验

8.2 实验目的回顾前几次试验所用到的知识并综合起来,完成包含至少五个模块具有一定功能的设计。

8.3 实验环境

硬件:ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:PC机操作系统win98、Win2000 或WinXP、ARM SDT 2.51或ADS1.2集成开发环 境、仿真器驱动程序、超级终端通讯程序。

8.4 实验内容及要求

回顾串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制等接口模块驱动设计及开发方法。综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个。尽量使综合应用系统具备合理的功能。

8.5 实验设计与实验步骤

本实验为一综合实验旨在设计一个计算器雏形,具有计算器的基本功能,能够用小键盘输入数据,用数码管显示数据,并且可以用显示屏显示,支持显示屏输入。本实验用了数码管,触摸屏,串口,小键盘等硬件。主要结合实验

三、实验五两个实验。1.触摸板的显示输入键模块,实现方法为用像素点点亮指定区域像素。

1)设计页眉页脚

2)纵向平分画出五条白条

3)横向平分画出四条白条

2.计算器主要模块,主要实现计算器的运算以及显示功能:

1)键盘映射表:

修改键盘映射表与小键盘上的值一致,键盘映射表在KeyBoard.c文件中。2)数码管显示子模块:

首先使zlg7289占有同步串口,延时,然后显示个位,之后判断显示的数字为几位,分别编码显示各个位,此部分可以用else语句实现。

3)计算器运算模块:

每当输入一个数字,数码管原先的数字就得向左移动新数字在最后一位显示,将原先所得数值*10再加上新值,最后显示。

8.6 实验过程与分析

1.触摸板显示模块:

1)设计页眉页脚

for(k=0;k

for(j=10;j

LCDBuffer[k][j]=jcolor;

for(k=235;k

for(j=10;j

LCDBuffer[k][j]=jcolor;

2)纵向平分画出五条白条

for(k=35;k

for(j=10;j

LCDBuffer[k][j]=jcolor;

......

for(k=233;k

for(j=10;j

LCDBuffer[k][j]=jcolor;

3)纵向平分画出四条白条

for(k=37;k

for(j=68;j

LCDBuffer[k][j]=jcolor;......

for(k=37;k

for(j=248;j

LCDBuffer[k][j]=jcolor;2.计算模块

1)键盘映射表:

键盘映射表修改为:

unsigned int KeyBoard_Map[]={ 7,4,1,0,10,0,0,0,8,5, 2,0,11,0,0,0,9,6,3,16, 12,13,0,0,14,0,15,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0

};//64,键值映射表

2)数码管显示子模块:

Zlg7289_Reset();

Delay(1);

ZLG7289_ENABLE();//使zlg7289占有同步串口

Delay(5);//延时

WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮

WriteSDIO(key%10);//显示个位

Delay(1);//延时

if(key>9999999)

{ WriteSDIO(ZLG7289_CMD_DATA0|7);

WriteSDIO((unsigned char)(key/10000000));

Delay(1);

„„„

WriteSDIO(ZLG7289_CMD_DATA0|1);//发送十位数据

WriteSDIO((unsigned char)(key/10%10));

Delay(1);

WriteSDIO(ZLG7289_CMD_HIDE);//使一、二两位数码管显示

WriteSDIO(255);

} ZLG7289_DISABLE();//zlg7289放弃同步串口控制权

3)计算器运算模块主要代码:

m=key;

LEDshow(key);

Delay(5000);„„

m=key+m*10;LEDshow(m);

if(globlekey==14){ //加法模块

//add();

Delay(5000);

num2 = GetNum();

num = num + num2;

LEDshow(num);}

„„„

else if(globlekey == 15){ //等于模块

//equal();Delay(5000);

LEDshow(num);

num2 = GetNum();} 8.7 实验结果总结

进入主程序可以通过按键进入不同的循环,计算器部分可以实现九位数以内整数的加减乘除运算,用数码管显示运算结果及数据。此实验只是一个雏形显示器模块的显示以及输入都未有实现,期待后续开发。

8.8 心得体会

通过本次试验将前几次实验的成果综合到一起,实现了计算器的一个雏形,为接下来的课程设计打下了基础。

9.实验总结与心得体会

通过前几次实验深入了解了串口,数码管,触摸屏,电动机,小键盘等各个硬件的使用方法,知道了arm嵌入式的主要设计方法,其中最感兴趣的是键盘实验那一块,我们当初的设想是设计一款计算器,可以使其读数发出声音,但是由于实验八时间紧迫,未能完成这部分功能,仅能实现基本的运算,不支持浮点运算,但是课程设计时间充分,我相信我和我的队友会做出一个比较好的作品。

下载李晓林(061121)嵌入式系统实验报告word格式文档
下载李晓林(061121)嵌入式系统实验报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文