1、嵌入式课程设计电梯实验报告西 安 邮 电 学 院嵌入式硬件课程设计报告嵌入式系统硬件课程设计题目电梯控制系统系部名称:计 算 机 系专业名称:计算机科学与技术班 级:计科0703班学号:学生姓名 :指导教师:时间: 20010年 12月6日12月17日1. 实验目的1) 熟悉ARM(LPC2131)&ADS V1.2 的环境。2) 了解LPC2131 Demo Board 资源、环境;掌握ADS工具使用。3) 熟练掌握ADS工具的使用,掌握ARM C程序设计、调试技术。4) 理解ARM 芯片引脚功能选择,理解GPIO的使用设置、输入驱动方法。5) 理解UART串行通信原理,学习ARM UART
2、资源的驱动编程。2. 实验仪器及设备1) EasyARM2131开发实验板。2) TKStudio IDE集成开发环境。3. 实验内容 基础实验内容1:ARM(LPC2131)&ADS V1.2环境熟悉 LPC2131 硬件环境介绍; ADS 工具简介;要求:了解LPC2131 Demo Board 资源、环境;掌握ADS工具使用。内容2:ADS 模板工具& ARM C语言程序设计 ADS环境中编程模板的理解与使用; 使用ADS工具,基于LPC2131进行简单的C程序设计;要求:熟练掌握ADS工具的使用,掌握ARM C程序设计、调试技术;内容3:GPIO Output(LED、Beep)实验
3、理解ARM 芯片引脚功能选择; 理解GPIO的使用设置、输出驱动方法; 熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和蜂鸣。内容4:GPIO Input(Key Input)实验 理解ARM 芯片引脚功能选择; 理解GPIO的使用设置、输入驱动方法; 熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和可按键控制的蜂鸣器。内容5:Eint VIC实验 理解ARM 芯片引脚功能选择; 理解外中断的含义与应用; 熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和可按键控制的蜂鸣器(用外中断
4、方式实现)。内容6:定时器 理解ARM 芯片引脚功能选择; 理解GPIO的使用设置、输入/输出驱动方法; 熟练掌握AD定S工具,基于LPC2131进行简单的C程序设计;要求:基于ucosII的GPIO、时器、RTC、串口等综合实验。内容7:异步串行口UART 理解ARM 芯片引脚功能选择; 理解GPIO的使用设置、输入/输出驱动方法; 理解UART串行通信原理,学习ARM UART资源的驱动编程; 熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:结合前边内容,实现LPC2131和PC端串行传输数据信息。 课程设计任务要求课题名称:电梯控制系统。要求该控制器应具备如下功能: 通
5、过键盘输入楼层,输入之后数码管从当前位置向上或向下运行。 运行到对应楼层,显示楼层号。 灯表示运行楼层。 数码管数字大小增减表示向上、向下。4. 设计过程1) 设计方案 用LED灯显示当前电梯的起始楼层和目标楼层 用数码管显示电梯当前所在的楼层 当电梯到达目标楼层时,用蜂鸣器发出蜂鸣,提示已经到达 通过UART来控制输入楼层,中断控制2) 流程图3) 电路图按键输入检测电路图8路LED控制电路图UART0 数码管4) 程序模块说明a.定义模块:#include config.h#define BEEP 1 7 / P0.7控制蜂鸣器,低电平蜂鸣/* LED8LED1 8个LED分别由P1.25
6、P1.18控制 */const uint32 LEDS8 = (0xFF 18); / P125:18控制LED8LED1,低电平点亮 #define HC595_CS (1 floor= U0RBR; / 读取FIFO的数据,并清除中断 if (p-floor-48)0&(p-floor-48)next=L-next; L-next=p; VICVectAddr = 0x00; / 中断处理结束 else rcv_new = 0; / 设置接收到新的数据标志 VICVectAddr = 0x00; / 中断处理结束 * 函数名称 :UART0_SendByte()* 函数功能 :向串口0发送
7、1字节数据* 入口参数 :dat 要发送的数据* 出口参数 :无void UART0_SendByte (uint8 dat) U0THR = dat; / 要发送的数据* 函数名称 :UART0_SendBuf()* 函数功能 :向串口发送8字节数据* 入口参数 :无* 出口参数 :无void UART0_SendBuf (void) uint8 i; /for (i=0; inext-floor); while (U0LSR & 0x20) = 0); / 等待数据发送完毕c.主程序模块:* 函数名称 :main()* 函数功能 :从串口UART0接收字符串ABCDEFGH,并发送回上位机
8、显示。* 调试说明 :需要PC串口显示终端软件如EasyARM.exe。uint8 rcv_data; int main (void) Node *p; uint8 start,end; uint8 i,j, sum = 0,k; uint32 temp; L=(LinkList)malloc(sizeof(Node); L-next=NULL; UARTMODE set; start = 1; set.datab = 8; set.stopb = 1; set.parity = 0; rcv_new = 0; loop:PINSEL0 = 0x00005505; / 设置I/O连接到UART
9、0 PINSEL1 = 0x00000000; IODIR = HC595_CS; PINSEL2 = PINSEL2 & (0x08);/ P125:16连接GPIO IO1DIR = LEDS8; / 设置LED1控制口为输出 MSPI_Init(); / 初始化SPI接口 UART0_Init(115200, set); / 串口初始化 U0FCR = 0x01; / 使能FIFO,并设置触发点为8字节 U0IER = 0x01; / 允许RBR中断,即接收中断 IRQEnable(); / 使能IRQ中断 /* 使能UART0中断 */ VICIntSelect = 0x0000000
10、0; / 设置所有的通道为IRQ中断 VICVectCntl0 = 0x20 | 0x06; / UART0分配到IRQ slot0,即最高优先级 VICVectAddr0 = (uint32)IRQ_UART0; / 设置UART0向量地址 VICIntEnable = 1 next; while (1) if (rcv_new = 1) rcv_new =0; end = rcv_buf0-48; UART0_SendByte(p-floor); /UART0_SendBuf(); if(start end) for(i=start; i=end; i+) for(j=start; j=e
11、nd; j+) sum += LED_TBLj; IO1SET = (sum) 18); DelayNS(20); IO1CLR = (sum) =end; i-) for(j=start; j=end; j-) sum += LED_TBLj; IO1SET = (sum) 18); DelayNS(20); IO1CLR = (sum) 18); DelayNS(20); rcv_data = MSPI_SendData(DISP_TABi); / 发送显示数据 /DelayNS(20); / 延时 sum =0; for(k=0;k4;k+) PINSEL0 = 0x00000000;
12、/ 设置管脚连接GPIO IO0DIR = BEEP; / 设置BEEP控制口为输出 IO0SET = BEEP; / BEEP停止蜂鸣 DelayNS(20); IO0CLR = BEEP; / BEEP 蜂鸣 DelayNS(20); IO0SET = BEEP; start = end; goto loop; / rcv_data = MSPI_SendData(DISP_TABend-48); / 发送显示数据 / DelayNS(40); / 延时 return 0;5. 实验过程: 实验步骤:首先熟悉开发环境,以及开发板的应用。熟悉板子上的各个接口的功能。其次,做基础实验,对GPI
13、O,定时,中断,UART做进一步的熟悉。然后,对电梯的原理做进一步的了解,设计出基本要求,以及需要的模块和部件。最后,对各个功能做组合,并进行融合,修改,并做进一步的优化 遇到的问题遇到的问题1:当输入的楼层有多个时,因为缓存数组只有八个,所以会有丢失数据的现象。解决办法:缓存用链表来存数据,这样既可以避免数据丢失,而且在用完一个数据后可以及时释放,避免了空间的浪费。遇到的问题2:电梯只能按照输入的顺序来运作,不能够判断最优路径。解决办法:在电梯运作之前,对缓存的数据进行优化排序,选出最优路径再运作。实验结果:实现了基本的简单电梯功能。6. 实验总结和实验心得通过这次课程设计,我学到了很多东西,原先我对嵌入式系统并没有很深刻的了解,在做完课程设计后,我对,数码管,蜂鸣器,流水灯等一些期间应用有了更深刻的了解,知道了他们的结构和功能,以及相关的函数的功能与运用,真正的把所学的东西运用到了实际中,更好的把课本知识与实际相结合,对我以后的学习有很大帮助。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1