基于SOPC的LED循环流水灯控制设计

上传人:飞****9 文档编号:143930050 上传时间:2020-09-03 格式:DOC 页数:10 大小:247KB
返回 下载 相关 举报
基于SOPC的LED循环流水灯控制设计_第1页
第1页 / 共10页
基于SOPC的LED循环流水灯控制设计_第2页
第2页 / 共10页
基于SOPC的LED循环流水灯控制设计_第3页
第3页 / 共10页
基于SOPC的LED循环流水灯控制设计_第4页
第4页 / 共10页
基于SOPC的LED循环流水灯控制设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于SOPC的LED循环流水灯控制设计》由会员分享,可在线阅读,更多相关《基于SOPC的LED循环流水灯控制设计(10页珍藏版)》请在金锄头文库上搜索。

1、课程报告设计课题: 基于SOPC 的LED 循环流水灯控制设计姓 名: XXX 专 业: 集成电路设计与集成系统 学 号: 1115103004 日 期 2014 年 11月 18 日 指导教师: XXX 华侨大学信息科学与工程学院电子工程系基于SOPC的LED循环流水灯控制设计1. 设计的任务与要求1. 将8 只LED 灯编号,奇数号亮1 秒,灭2 秒,偶数号亮3 秒,灭3 秒。2. 用数码管显示每个灯的亮灭时间。3. 循环点亮。2 系统设计整体硬件电路框图 整体电路设计由一个锁相环,SOPC搭建的CPU模块组成,由DE2内部时钟50MHZ输入控制,输出接LED7.08个LED灯,HEX0-

2、HEX7 8个数码管,用程序编程控制,来实现LED循环流水灯数码管计时功能的实现。三.单元电路设计 锁相环设计模块(PLL)SOPC设计模块在DE2 平台上建立SOPC系统的硬件,这个系统包括一个NIos II/s 嵌入式处理器、存储器、一个JTAG UART 及一个定时器,一个ID 模块和IO模块。另外,我们将加入一个自定义组件,实现对DE2 平台上七段数码管的控制。SOPC模块硬件电路图四:仿真结果5 软件设计 程序详见附录六系统测试: 实验仪器用DE2板验证,芯片型号为EP2C35F672C6,将计算机软件与DE2板相连。用8只LED灯实现循环点亮,并在8只数码管显示每只LED灯的亮灭时

3、间。七结论:从DE2板实验结果可以看出,该实验现象满足设计的任务与要求,即:1. 将8 只LED 灯编号,奇数号亮1 秒,灭2 秒,偶数号亮3 秒,灭3 秒。2. 用数码管显示每个灯的亮灭时间。3. 循环点亮。满足了该设计的1,2,3点要求,唯一不足的地方是在用数码管显示每个灯的亮灭时间时,我是用usleep()函数来延迟的,时间精度方面可能比不上用定时计数器来的准确,可以做进一步改进。附录:软件程序:#include system.h#include alt_types.h#include unistd.h#include io.hint main (void) alt_u8 led=0x0

4、1; alt_u32 count; volatile int i; /i用来控制循环的次数 volatile int j; /j用来控制每次循环时间为1S while(1) led=0x01; *(unsigned int *)PIO_LED_BASE = led; /点亮第一个LED灯 for(i=1,j=1000000,count=0x00000001;i0;i-) /用数码管控制亮的时间1S IOWR(SEG7_LUT_8_0_BASE,0,count); /第一个数码管显示count值1 usleep(j); /j=1000000,延时1秒 count=count-0x00000001

5、; /count值减1 IOWR(SEG7_LUT_8_0_BASE,0,count); /第一个数码管显示count值0 led=0x00; *(unsigned int *)PIO_LED_BASE = led; /熄灭第一个LED灯 for(i=2,j=1000000,count=0x00000002;i0;i-) /用数码管控制熄灭的时间2S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00000001; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x02; *(unsigned i

6、nt *)PIO_LED_BASE = led;/点亮第二个LED灯 for(i=3,j=1000000,count=0x00000030;i0;i-) /用数码管控制亮的时间3S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00000010; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x00; *(unsigned int *)PIO_LED_BASE = led;/熄灭第二个LED灯 for(i=3,j=1000000,count=0x00000030;i0;i-)/用数码管控制熄灭的

7、时间3S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00000010; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x04; *(unsigned int *)PIO_LED_BASE = led;/点亮第三个LED灯 for(i=1,j=1000000,count=0x00000100;i0;i-) /用数码管控制亮的时间1S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00000100; IOWR(SEG7_LUT

8、_8_0_BASE,0,count); led=0x00; *(unsigned int *)PIO_LED_BASE = led;/熄灭第三个LED灯 for(i=2,j=1000000,count=0x00000200;i0;i-)/用数码管控制熄灭的时间2S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00000100; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x08; *(unsigned int *)PIO_LED_BASE = led;/点亮第四个LED灯 for(i=3,j

9、=1000000,count=0x00003000;i0;i-)/用数码管控制亮的时间3S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00001000; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x00; *(unsigned int *)PIO_LED_BASE = led;/熄灭第四个LED灯 for(i=3,j=1000000,count=0x00003000;i0;i-)/用数码管控制熄灭的时间3S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(

10、j); count=count-0x00001000; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x10; *(unsigned int *)PIO_LED_BASE = led;/点亮第五个LED灯 for(i=1,j=1000000,count=0x00010000;i0;i-)/用数码管控制亮的时间1S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00010000; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x00; *(unsigned int *

11、)PIO_LED_BASE = led;/熄灭第五个LED灯 for(i=2,j=1000000,count=0x00020000;i0;i-)/用数码管控制熄灭的时间2S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00010000; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x20; *(unsigned int *)PIO_LED_BASE = led;/点亮第六个LED灯 for(i=3,j=1000000,count=0x00300000;i0;i-)/用数码管控制亮的时间3S IOWR(SEG7_LUT_8_0_BASE,0,count); usleep(j); count=count-0x00100000; IOWR(SEG7_LUT_8_0_BASE,0,count); led=0x00; *(unsigned int *)PIO_LED_BASE = led;/熄灭第六个LED

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号