当前位置:
搜档网 › NIOS教程2---点亮你的LED灯
NIOS教程2---点亮你的LED灯
NIOS教程(2) --------点亮你的LED灯在此实验中我们将建立一个NIOS工程,实验点亮LED的演示1.先打开QuartusII 9.0SP2软件
点击菜单栏File? New Project Wizard,弹出如下对话框
点击Next>按钮继续,
在此步中,
What is the working directory for this project? 是询问你的这个项目工程打算放在哪里?
我们改为d:\ask2cb_nios\nios2 (表示整个工程建立在D盘的ask2cb_nios目录下面的nios2目录中)
What is the name of this project? 是询问你这个工程项目名是什么?
我们改为nios2(表示这是第二个nios示例工程)
What is the name of the top-level design entity for this project? 是询问这个工程项目的顶层设计入门名
我们改为nios2,表示顶层模块名为nios2
改成如下图所示:
点击Next>继续
提示D盘ask2cb_nios目录下面没有nios2这个目录,询问是否要创建它,选择是(y),让QuartusII创建这个目录。
向导开始询问是否有现成的文件需要加到当前新建的工程中?这步不用管它,点击Next>继续,
在此步中,向导询问你使用的是何种器件,我们在Device family组合框中,Family下拉列表中选择CycloneII,在Available devices:下面的列表框中选择EP2C5Q208C8,这是我们ASK2CB-5开发板所使用的FPGA主芯片(EP2C5Q208C8),如果您购买的是ASK2CB-8开发板,请选择EP2C8Q208C8。
在本教程中,默认采用的是EP2C5Q208C8,如果你的开发板上的FPGA主芯片为EP2C8Q208,请修改相应的器件为EP2C8Q208C8
点击Next按钮继续
在此步中询问你要使用何种综合工具,仿真工作,时序分析工具,不用管它,点Next>继续,
最后显示一个整个新建的Project的摘要。点击Finish完成新建项目。如后新建的Project如下图
工程虽然建完了,但这只是一个空的工程,接下来我们需要在工程中添加文件
2.向工程中添加文件,先建立一个Block Diagram / Schematic File,点击菜单栏中的File->New… 打开新建文件对话框,
我们选中Block Diagram / Schematic File,然后点击OK按钮
在QuartusII工程中出现了一个Block1.bdf文件
3.接下来我们该启动SOPC Buider 来创建NIOSII软核了,点击Tools-> SOPC Builder…
会出现如下对话框
在最上层的Create New System对话框中的System Name:中输入软核的名字,在本示例
中,输入kernel做为软件核的名字
下面的target HDL,可以选择Verilog
点击OK按钮确认。
此时看窗口左上角的Clock Settings 显示clk_0为外部时钟,频率为50Mhz,这是我们当前所用到的软核时钟。
4.接下来要建立CPU,用鼠标双击窗口左侧框中的NIOS II Processor
弹出如下窗口
先选择软核的类型,Quartus一共提供了三种类型可供选择,Nios II/e占用资源最少
600-800LEs,功能也最简单,速度最慢。Nios II/s占资源比前者多一些,功能也多了,速度也快一些Nios II/f占资源最多,功能也最多,速度就快。选择的时候要根据你的需求和你的芯片资源来决定。
在本示例中,我们选择Nios II /s,能够满足需要,
在窗口下半部分的这些选项可以先不用管
Reset Vector是复位后启动时的Memory类型和偏移量
Exception Vector是异常情况时的Memory类型和偏移量。
现在还不能配置,需要RAM设置好以后才能修改这里
接下来点击Next,
在此步中不用做修改,点击Next>
在此步中不用做修改,点击Next>
在此步中不用做修改,点击Next>
在此步中需要设置JTAG Debug Module ,即JTAG调试时所要用到的功能模块,我们选择Level1,只使用最简单的功能。
点击Next> 继续
最后点击Finish。完成
5.现在回到了SOPC Builder的主界面,
我们可以看到在右边的窗口中多了一个cpu_0,这就是刚才添加的cpu
接下面我们要添加片内RAM
选择左边目录树下的
Memories and Memory Controllers ->
->
On-Chip
On-Chip Memory (RAM or ROM)
双击On-Chip Memory (RAM or ROM),会弹出如下对话框
点亮LED灯
实验一点亮你的LED灯 一、实验目的 1.学会使用51单片机开发的两大软件:编程软件Keil μVision4(简称Keil C51)和 下载软件STC-ISP。 2.理解单片机最小系统、单片机外围电路、Flash、RAM和SFR概念。 3.了解普通发光二级管的参数,掌握限流电阻的计算方法。 二、实验内容 通过对单片机编程来实现LED小灯的亮和灭。 三、实验参考原理 3.1 单片机内部资源 1)Flash 程序存储空间 2)RAM 数据存储空间 3)SFR 特殊功能寄存器 3.2 单片机最小系统 单片机最小系统的三要素是电源、晶振、和复位电路。 1)电源 目前主流单片机分为5V和3.3V这两个标准,本实验中的STC89C52为5V供电系统,开发板是使用USB口输出的5v直流直接供电的。从上图可以看到,供电 电路在40引脚和20引脚,40引脚接的是+5V,通常也成为VCC或VDD,代表的 是电源正极,20引脚接的GND,代表的是电源负极。 2)晶振 晶振,又叫晶体振荡器,它起到的作用是为单片机提供基准时钟信号,单片机
内部所有的工作都是以这个时钟信号为步调基准来进行工作的。SRC89C52单片机的18号引脚和19号引脚是晶振引脚,接了一个11.0592MHZ的晶振(每秒振荡11059200次),外加两个20pf的电容,电容的作用是帮助晶振起振,并维持震荡信号的稳定。 3)复位电路 复位电路接到了单片机的9号引脚RST复位引脚上。单片机复位一般分为3种情况:上电复位、手动复位和程序自动复位。 总之,一个单片机具备这三个条件就可以运行下载的程序,开发板上其它的比如LED小灯、数码管、液晶等设备都是属于单片机的外设设备,最终用户想要的功能,就是通过对单片机编程来控制各种各样的外设实现的。 3.3 LED小灯 LED,即发光二极管,俗称LED小灯。种类很多,KST使用的是普通的贴片发光二极管。这种发光二极管的正向导通电压是1.8~2.2V之间,工作电流一般在1~20mA之间。 上图是开发板上的USB接口电路,通过USB线,计算机给开发板供电和下载程序以及实现计算机和开发板之间的通信。从图可以看出USB 有6个接口,其中2,3引脚是数据通信引脚,1,4是电源引脚,1是VCC正电源,4是GND即地线。5,6是外壳,直接接到了GND上。 现在主要来讲1,4引脚,1引脚通过F1(自恢复保险丝,作用是当后级电路发生短路时,八年四自动切断电路,保护开发板及计算机的USB口,当电路正常后,保险丝会恢复畅通,正常工作)接到右侧,在正常情况下保险丝可看为导线,因此左右两边都是USB电源+5V。 右侧有两条支路,第一条是在+5V和GND接了一个100μF的电容,电容是隔离直流的,所以这条支路是没有电流的;第二条支路,发光二极管,和普通二级管一样,这个二极管也有阴极和阳极,也称负极和正极,正向导通,方向接对了才会有电流通过,让LED发光,LED1自身的压降大概是2V,那么下方的R34这个电阻上承受的电压就是3V,如果要求电流范围为1~20mA,根据欧姆定律,就可以算出R34的取值范围是150~3kΩ。这个电阻大小的变化,直接限制这条电路上电流的大小,因为这个电阻通常称为“限流电阻”。图中的R34为1KΩ,这条电路的电流大小就可以轻松算出来,3V/1000Ω=3 mA,这个发光二级管的作用只是电源指示灯,使用USB线将开发板和计算机连起来,这个灯就亮了。
嵌入式点亮一个LED灯的程序
飞凌OK6410开发板(裸板)第一个点亮LED灯程序,主要的C程序,完整程序请下载附件。 #define rGPMCON (*(volatile unsigned *)(0x7F008820)) #define rGPMDAT (*(volatile unsigned *)(0x7F008824)) #define rGPMPUD (*(volatile unsigned *)(0x7F008828)) void msDelay(int time) { volatile unsigned int i,j; for(i = 0; i < 2000000; i++) for(j=0; j