搜档网
当前位置:搜档网 › NIOS教程2---点亮你的LED灯

NIOS教程2---点亮你的LED灯

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

1.设计要求 EM-STM3210E开发板上有一个LED灯D1,编写程序点亮该灯。 2.硬件电路连接 在开发板上,D1与STM32F103ZE芯片上的引脚PF6相连,如下图所示。 3.软件程序设计

根据任务要求,程序内容主要包括: 1、配置Reset and clock control (RCC)以使能GPIOF端口模块的时钟 2、配置GPIOF端口的PF6引脚(50MHz,推挽输出) 3、调用STM32标准固件库函数GPIO_WriteBit以令PF6引脚输出高电平,从而点亮LED灯D1。 整个工程用户只需要实现源代码文件:main.c,其他工程文件由MDK和STM32标准固件库提供。 main.c文件的内容如下: [cpp] /** ********************************************************** ******************** * @file main.c * @author Max Liao * @version * @date 02-Novenber-2012 * @brief Main program body ********************************************************** ******************** */ /* Includes ------------------------------------------------------------------*/ #include "stm32f10x.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/

教你用STM32一步一步点亮led灯

STM32之一步一步点亮led (2011-05-09 19:40) 标签: stm32led MDK 入门分类:stm32 入手stm32以来,一直想快速上手,所以在各大论坛闲逛,各个达人的blog 上学习,正所谓欲速则不达,心急是吃不了热豆腐的!有木有 最终决定使用st官网的库开发,据大侠们写道使用库可以快速上手,貌似的确如此,一个个教程写的那么好,直接拿过来用就是了。可是那么多个库,聪明的你请告诉到底选择哪一个啊My God!实话实说,我被这些库折腾了个够!好吧,我最后还是承认最后用的是的库,是很方便! 切入正题,点亮LED。 硬件:红牛开发板,STM32F103ZET6(144封装). 软件:RealView MDK stm32固件库:附上自己整理后的库: 根据官网库自己整理了下,新建了工程模板如下图:(主要参考文章《在 Keil MDK+环境下使用STM32 库.pdf》)在KeilMDK+环境下使用 库.pdf

入图所示:新建一个目录01_ProLed,建议放在英文路径下,避免不必要的麻烦。将上面的库解压到此目录,再新建一个project目录,存放工程。 说明: CMSIS:最底层接口。StartUp:系统启动文件。StdPeriph_Lib:stm32外围设备驱动文件。Project:工程文件。User:用户文件。新建工程步骤:此处略去300字。

简单说明: 该文件是内核访问层的源文件和头文件,查看其中的代码多半是使用汇编语言编写的。在线不甚了解。--摘自《在Keil MDK+环境下使用STM32 库》

该文件是外设访问层的头文件,该文件是最重要的头文件之一。就像51里面的一样。例如定义了 CPU是哪种容量的 CPU,中断向量等等。除了这些该头文件还定义了和外设寄存器相关的结构体,例如: 1.typedef struct 2.{ 3.__IO uint32_t CR; 4.__IO uint32_t CFGR; 5.__IO uint32_t CIR; 6.__IO uint32_t APB2RSTR; 7.__IO uint32_t APB1RSTR; 8.__IO uint32_t AHBENR; 9.__IO uint32_t APB2ENR; 10.__IO uint32_t APB1ENR; 11.__IO uint32_t BDCR; 12.__IO uint32_t CSR; 13. 14.#ifdef STM32F10X_CL 15.__IO uint32_t AHBRSTR; 16.__IO uint32_t CFGR2; 17.#endif /* STM32F10X_CL */ 18. 19.#if defined (STM32F10X_LD_VL)|| defined (STM32F10X_MD_VL)|| defined (STM32F10X_HD_VL) 20.uint32_t RESERVED0; 21.__IO uint32_t CFGR2; 22.#endif /*STM32F10X_LD_VL ||STM32F10X_MD_VL ||STM32F10X_HD_VL */ 23.} RCC_TypeDef;

单片机C语言LED灯点亮程序完全版

1例子1第二个灯亮 #include void main() { P1=0xfd; } #include Sbit D1=P1^0; V oid main() { D1=0 } 注意:稍微改程序时需重新hex化 例子2第一个灯亮 #include //52单片机头文件 sbit led1=P1^0; //单片机管脚位声明 void main() //主函数 { led1=0; //将单片机P1.0口清零 while(1); //程序停止在这里,在后面会讲到为什么这样写。} 例子3第一个灯亮 #include //52单片机头文件 void main() //主函数 { P1=0xfe; //将单片机P1口的8个口由高到低分别赋值为11111110 while(1); //程序停止在这里,在后面会讲到为什么这样写。} 2例子1第三个灯闪烁fir循环 #include sbit D2=P1^2; unsigned int a; void main() { D2=0; for(a=0;a<=10000;a++){}; D2=1; for(a=0;a<=10000;a++){}; } 例子2第三个闪烁while循环 #include sbit D2=P1^2; unsigned int a; void main()

{ a=5000; D2=0; while(a--); a=5000; D2=1; while(a--); } 2.#include //52单片机头文件 sbit led1=P1^0; //单片机管脚位声明 void main() //主函数 { unsigned int i; //定义一个int型变量 while(1) { i=50000; //变量赋初值为50000 led1=0; //点亮灯 while(i--); //延时 i=50000; led1=1; //熄灭灯 while(i--); } } 3例子1 3 5 7灯同时亮 #include //52单片机头文件 sbit led1=P1^0; //单片机管脚位声明 sbit led3=P1^2; //单片机管脚位声明 sbit led5=P1^4; //单片机管脚位声明 sbit led7=P1^6; //单片机管脚位声明 void main() //主函数 { led1=0; //将单片机P1.0口清零 led3=0; //将单片机P1.2口清零 led5=0; //将单片机P1.4口清零 led7=0; //将单片机P1.6口清零 while(1); //程序停止在这里,在后面会讲到为什么这样写。} 例子2 1 3 5 7同时亮 #include //52单片机头文件 void main() //主函数 { P1=0xaa; //将单片机P1口的8个口由高到低分别赋值为10101010

实验一:点亮第一个LED灯

电气与自动化工程学院 单片机实训课程研究型学习 技术报告 项目名称:点亮第一个LED灯 学生姓名:张倩如学号:160512239 项目序号: 1 专业:自动化 提交时间:指导老师:卢振利

一、项目概述 (1) 二、硬件设计 (2) 三、程序设计 (3) 四、程序代码 (3) 五、运行结果 (4) 六、讨论 (5) 七、参考文献 (5) 一、项目概述 通过一简单的实验掌握: 1. 掌握PL2303驱动的安装,掌握Keil3开发环境的安装、设置和基本使用; 2. 掌握项目、文件的建立方法、程序的下载以及寄存器、存储器内容的查看方法; 3. 掌握程序的执行及断点设置方法。 实验内容:通过了解P1口的开关控制电路和P0的LED电路,编写基本输入输出实验程序。实验内容为设置P1为输入口,P0口为输出口,将P1口的开关状态发送到P0口,让灯亮灭,将P1的电平状态通过P0口的LED的亮灭表示出来。 本实验由自己独立一人完成所有上述项目。

二、硬件设计 图1-1 LED接口电路 电路图说明:该图为LED接口电路,P0口连接八个LED灯,每个LED灯要接300欧的上拉电阻作为保护电路。八个灯为共阳极,低电平点亮LED灯。

图1-2 拨码开关电路图 该图为拨码开关电路图,每个开关拨上连接到地,P1口为低电平,拨下连接到VCC ,P1口为高电平。 三、程序设计 程序说明:从主程序开始不断执行将P1口赋值给P0口。 四、程序代码 #include void main(void) // 程序主函数 { 开 始 P0=P1

while(1) // 循环用于实时扫描IO状态 { P0=P1; // 将P1口的数据发送给P0口 } } 五、运行结果

3-1-点亮一个LED灯

章节目录 第一章百度AI智能识别技术 第二章人脸识别技术 第三章Arduino基础学习 第四章Arduino进阶学习 第五章IOT物联网 第六章WIFI与Arduino的结合 第七章阿里云IOT服务 第八章百度天工物联网 第九章APPInventor制作手机APP 第十章自己做的七七八八 第十一章制作APPInventor自定义插件 第十二章手机实现局域网连接 第十三章项目应用——小学生百度天工 第十四章项目应用——ESP32-cam摄像头模块第十五章项目应用——ESP32-cam摄像头模块二第十六章项目应用——WIFI模块手动配网 第十七章项目应用——红纳里斯的跨阵M1 第十八章项目应用——OLED液晶屏插件

3-1-点亮一个LED灯 从今天开始,我们要动手学习Arduino开发板了。我 们之前学的Scratch程序都是在电脑中运行的,离开 电脑我们就什么也做不了;现在有了Arduino开发板, 我们可以根据我们的愿望,编写程序,设计出很好玩 的东西,把程序写入Arduino开发板后,离开了电脑, 我们也能照样能让程序运行起来。 我从网上随意地下载几个被人用Arduino设计 制作的作品,这些酷炫的东西,都可以自己动手制作 出来的。 当然,在学习之前,你还是需要购买一块 Arduino开发板的,现在的国产仿制的Arduino开发 板已经非常便宜了,低的在20几块就可以买到。当 然我还是建议大家开始学习的时候,最好买套装,买一些品牌比较大的,这样我们会有技术支持,有不懂的地方,商家也会帮我们解决。不用买那些豪华版的套装,大概200元左右的就可以。 准备好了吗,让我们一起开始Arduino开发板的漫长而富有挑战的学习之旅吧。 一. 认识Arduino开发板 Arduino开发板是一款便捷灵活、方便上手的开源电子原型平台。有一个欧洲开发团队于2005年开发,之后很快就风靡全球,成为最流行、应用最广的开源学习平台。

单片机课程设计 8个LED灯来回点亮

目录 第一章绪论--------------------------------------------------------3 第二章设计目的及要求-----------------------------------------5 1.1 设计目的--------------------------------------------------------5 1.2 设计要求--------------------------------------------------------5 第三章设计电路原理----------- -------------------------------7 3.1 控制部分的设计与选择-------------------------------------7 3.2 LED显示方案-----------------------------------------------8 第四章硬件系统------------------------------------------------9 4.1 原件清单-------------------------------------------------------9 4.2 单片机AT89C51---------------------------------------------9 4.3 单片机时钟电路--------------------------------------------10

4.4 单片机复位电路---------------------------------------------11 4.5 工作电路------------------------------------------------------12 第五章软件设计------------------------------------------------13 5.1 程序流程图--------------------------------------------------13 5.2 编辑源程序--------------------------------------------------14 第六章系统调试与仿真结果--------------------------------16 6.1系统调试-----------------------------------------------------16 6.2仿真结果----------------------------------------------------16 总结------------------------------------------------------------- 19 参考文献--------------------------------------------------------20

点亮一个发光二极管方式

一、点亮一个发光二极管方式 #include //调用51单片机的头文件void main(void) //主函数,单片机开机后就是从这个函数开始运行 { P0_0=1; //按位方式写PO.0=1 P0_1=0; //按位方式写PO.1=0 P0_2=0; //按位方式写PO.2=0 P0_3=0; //按位方式写PO.3=0 P0_4=0; //按位方式写PO.4=0 P0_5=0; //按位方式写PO.5=0 P0_6=0; //按位方式写PO.6=0 P0_7=0; //按位方式写PO.7=0 while(1) //死循环,单片机初始化后,将一直运行这个死循环 { } }

二、发光二极管流水显示 #include //调用51单片机的头文件 //--------------------------------------- void main(void) //主函数,单片机开机后就是从这个函数开始运行 { unsigned int a; //定义一个int型变量,做延时用P0=0; while(1) //死循环,单片机初始化后,将一直运行这个死循环 { for(a=0;a<20000;a++); //延时若干时间,具体时长暂不理会 if(P0==0) P0=0x80; else P0=P0>>1; //将PO右移 } }

三、8独立按键一位数码管显示 #include //调用51单片机的头文件 //--------------------------------------- //定义一个数据表格 unsigned char code TAB[10]= { //定义表格一定要使用code,这样会做到程序存储区中 0x3F, //表格第1步数据0b00111111 0x06, //表格第2步数据0b00000110 0x5B, //表格第3步数据0b01011011 0x4F, //表格第4步数据0b01001111 0x66, //表格第5步数据0b01100110 0x6D, //表格第6步数据0b01101101 0x7D, //表格第7步数据0b01111101 0x07, //表格第8步数据0b00000111 0x7F, //表格第9步数据0b01111111 0x6F, //表格第10步数据0b01101111 }; //--------------------------------------- //8独立按键相关I/O设置 sbit P1key=P1^0; //按键P1接在P0.0口上

单片机C语言LED灯点亮程序完全版

1例子1第二个灯亮 #include<> voidmain() { P1=0xfd; } #include<> SbitD1=P1^0; Voidmain() { D1=0 } 注意:稍微改程序时需重新hex化 例子2第一个灯亮 #include<>include<>//52单片机头文件sbitled1=P1^0;//单片机管脚位声明voidmain() //主函数 { unsignedinti;//定义一个int型变量while(1) {

i=50000;//变量赋初值为50000 led1=0; //点亮灯 while(i--);//延时 i=50000; led1=1;//熄灭灯 while(i--); } } 3例子1357灯同时亮 #include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 sbitled3=P1^2;//单片机管脚位声明 sbitled5=P1^4;//单片机管脚位声明 sbitled7=P1^6;//单片机管脚位声明 voidmain() //主函数 { led1=0; //将单片机口清零 led3=0; //将单片机口清零 led5=0; //将单片机口清零 led7=0; //将单片机口清零 while(1);//程序停止在这里,在后面会讲到为什么这样写。}

例子21357同时亮 #include<>//52单片机头文件 voidmain() //主函数 { P1=0xaa; while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子3流水灯一个一个接着亮不循环 #include<>//52单片机头文件 voidmain() //主函数 { unsignedinti;//定义一个int型变量 while(1) { i=50000; //变量赋初值为50000 P1=0xfe; //点亮第一个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfd; //点亮第二个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfb; //点亮第三个灯

单片机点亮LED灯程序集合

#include sbit led0=P0^0; void main() { led0=0; } #include sbit D1=P0^0; sbit D2=P2^4; void main() { D1=0; D2=0; } #include #include //库函数#define uchar unsigned char #define uint unsigned int sbit d0=P2^4; void delay(void) { uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void main() { uchar k; d0=0; k=0xfe; while(1) { P0=k; delay(); k=_crol_(k,1);//k移1位} } #include #define uint unsigned int #define uchar unsigned char sbit D1=P0^0;

sbit D2=P0^1; sbit D3=P0^2; sbit D4=P0^3; sbit D5=P0^4; sbit D6=P0^5; sbit D7=P0^6; sbit D8=P0^7; sbit D0=P2^4; sbit cs0=P2^0; sbit cs1=P2^1; sbit cs2=P2^2; sbit cs3=P2^3; void delay(uint z); uint a; void main() { D0=0; while(1) { a=10000; D1=0;D2=D3=D4=D5=D6=D7=D8=1; //cs0=cs1=cs2=cs3=0; while(a--); delay(1000); D2=0;D1=D3=D4=D5=D6=D7=D8=1; //cs0=cs1=cs2=cs3=0; a=10000; while(a--); delay(1000); D3=0;D1=D2=D4=D5=D6=D7=D8=1; //cs0=cs1=cs2=cs3=0; a=10000; while(a--); delay(1000); D4=0;D1=D2=D3=D5=D6=D7=D8=1; //cs0=cs1=cs2=cs3=0; a=10000; while(a--); delay(1000); D5=0;D2=D3=D4=D1=D6=D7=D8=1; //cs0=cs1=cs2=cs3=0; a=10000; while(a--); delay(1000);

相关主题