搜档网
当前位置:搜档网 › 基于NEC单片机78F0512的IAR FOR NEC_K0_开发教程

基于NEC单片机78F0512的IAR FOR NEC_K0_开发教程

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

编者序:

2009年5月初,一些学生朋友为准备9月的NEC电子设计大赛,委托我为他们设计一款NEC开发板,由于时间紧而且他们平时也只玩过51,STC之类单片机,希望我设计的板子易于学学开发最好能和STC一样具有简易的下载功能,因为市面上的NEC调试器动辄上千元,这是学生朋友们很难接受的。一番努力过后原理图终于出来了,为了让他们快速上手还写了一份简易的NEC开发教程。教程是基于IAR的因为我个人觉得PM+那个开发环境不是很好使用也不是很稳定。

后来对该电路进行了优化改良,采用主副板模式能兼容多款MUC。并重新编写了这份教程。此教程本来打算与开发板配送的,现在将其公开希望能对初学者有一点点的帮助。本人的写作水平相当的差文章写的比较粗糙希望大家见谅。按照规划教程内容比较多的而自己又是用业余时间编写,不能一次写完需要持续更新。文章中难免会有很多错误的地方希望看过的朋友能指出来改正。谢谢!!

欢迎加入QQ群:12580452一起交流学习。

持续更新中QQ群:125804521

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

第一章 EasyMUC2000开发板硬件结构

EasyMUC2000开发板是一款功能强大的能同时支持多种MUC的单片机开发板。它采用主副板模式和独特的总线结构。只要更换核心板注①就能变成STC,NEC(K0S,K0系列),A VR,ARM7,STM32开发板。不论是那种MUC它都支持USB下载功能,而且还具有在线调试接口支持NEC,STM32,ARM7的在线调试功能。板上不仅提供了一些键盘,蜂鸣器,LED,数码管等常用功能部件,而且同时提供了丰富的通信接口支持两个串口工作,RS485通信,红外串口通信与红外解码。带有3类常用液晶接口。并且带有36个IO 外扩接口,极大地方便了用户在各个领域的设计开发实验。

1.1功能特点

● 至少支持5种单片机,STC(51),NEC(K0S,K0系列),AVR,AM7,STM32让您花

一块开发板的钱买5种单片机开发板。此板在总线设计上不仅考虑了这几款MUC还为其他单片机预留了空间将来有可能支持更多MUC。

● 采用镀金圆孔接插件,虽然增加了成本,但是保证了主副板之间的连接紧密与长久

耐用,稳定可靠。

● 3类电源系统5V,3.3V与2.4V注②(电池电源),支持USB接口供电和变压器供

电。方便用户结合不同产品在不同的电源电压下开发实验。

● 过流和短路保护,电压反向保护功能。USB供电回路中安装有500mA自恢复保险丝,

防止因过流或短路烧坏您的爱机,反向保护二极管防止电源反接损坏元器件。

● 针对所支持的MUC具有USB接口下载功能,特别是NEC单片机,开发板不断自行

的检测下载信号,接收到下载信号后自行快速下载,下载完成后自行产生复位信号,单片机重头执行新的程序。整个下载过程开发板自行完成无需任何硬件设置。下载速度也非常的高是AF/SP-1无法比较的。

● 具有MINICUBE2和JLINK调试接口,在线仿真轻松自在。

● 外扩36个IO口,可以与外部电路连接使得此板不仅仅是一块学习板更是一块开发

板,突破了板子上各写功能部件的限制无限扩展您的开发才能。

● 提供详细的使用教程和实例程序教您一步一步高效率的学习单片机。

注1:更换核心板是必须对角线平衡用力缓慢取出,以免损伤镀金插件。

注2:2.4V电源仅对MUC和EEPROM(24c02)供电,可作低电压维持MUC工作和低功耗等实验

持续更新中QQ群:125804522

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

● 每个插针旁边有其详细的功能注解。

● 3种常见液晶接口(背光与对比度可控),1602液晶,KS0108控制器液晶,ST7920

控制器液晶,使得用户无需转接方便使用。

● 4位独立键盘与2 X 4行列式键盘,帮助用户同时掌握两种键盘扫描技术。

● 两个RS232接口(一公一母),支持带有多串口的单片能两个串口同时工作。

● 红外通信接口,支持红外232通信与红外解码两种工作模式

● 单总线协议DS18B20温度测量功能。此板赠送DS18B20传感器。

● 双总线IIC协议EEPROM(24C02)读写实验

● 片内ADC模数转化实验,板上自带可调高精度电位器,可通过单片机片内ADC

模块测试电压。

● 计数器PWM实验。预留RC整流电路,PWM接口,可将PWM波形转化成直流

电平(数控电源原理实验)。

● 8位LED可作状态指示灯和流水灯实验。

● 6位共阳数码管,可作静态显示和动态显示实验。自带PNP三级管驱动工作稳定,

显示柔和清晰保证了数码管的使用寿命。

● 可执行GPIO控制实验,蜂鸣器实验

● WDT与低功耗实验

● 可执行(STM32 ,NEC等)内部实时时钟实验

1.2硬件资源介绍(EasyMUC2000 for NEC)

选用NEC—KC2系列单片机uPD78F0512芯片为核心板的EasyMUC2000 for NEC 其硬件资源如表1.1所示。

项目数 量功 能 描 述

1 USB接口下载程序、供电、

2 5.5mm电源接口脱机电源输入(7.5-12V/500mA)

3 有源蜂鸣器蜂鸣音输出—GPIO口控制试验

4 8位LED红色发光管单字节数据电平指示与流水等试验

5 4位独立按键对地键盘,最简单稳定的键盘形式

6 2x4矩阵键盘掌握行列式键盘扫描技术

持续更新中QQ群:125804523

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

项目数 量功 能 描 述

7 6位8段共阳LED数码管实现静态显示与动态扫描显示

8 1602液晶插口1602液晶显示试验

9 ST7920控制器液晶接口带字库12864液晶以及其他带7920控制器的LCD

10 KS0108控制器液晶接口不带字库的12864液晶以及其他带0108控制器的图形LCD

11 DS18B20温度传感器单总线协议温度采集试验

12 EEPROM—24C02 IIC总线EEPROM存储器的读写操作

13 RS232通信接口一公一母双串口——RS232串口通信实验

14 CSI三线串口通信一根脉冲线两根信号线发送和接收可同时进行

15 RS485 485通信试验

16 红外接收与发送红外232通信与红外解码

17 备份电池EEPROM与MUC供电,低电压低功耗试验

18 USB转串口实现单片机通过USB接口与PC机串口通信

19 32.768KHZ时钟晶振片内RTCC模块实时时钟试验与单片机副时钟

20 20M高速石英晶振支持内部8M高速震荡器与X1震荡(20M)

21 8通道10位分辨率ADC 高精度可调电位器实现内部10位ADC采样

22 PWM 16位计数器PWM信号输出可将PWM滤波成直流电平

23 36个IO口外扩40针牛角座外扩IO口可与外部电路连接

24 3.3V,5V电源引出方便外部取电

25 MINICUB2接口(支持在线调试的NEC)单片机仿真接口

26 JLINK接口Stm32,ARM7在线调试仿真接口

27 16位定时器/计数器定时,计数,脉冲宽度测量,方波输出,PPG(PWM)输出等

28 4组8位计数器间隔定时,计数,方波输出,PWM输出等试验

29 低电压检测支持掉电检测和低电压监测试验

30 上电清零电路片内自带上电清零电路

31 待机功能HALT模式和STOP模式减小系统工作电流

32 看门狗定时器看门狗打开窗口和益处时间可自由设置

表1.1EasyMUC2000 for NEC其硬件资源

持续更新中QQ群:125804524

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

5

1.3电路原理图

选用NEC —KC2系列单片机uPD78F0512芯片为核心板的EasyMUC2000 for NEC 的电路原理图如图1.1所示,该电路仅作为编程参考。

H eader 3

GN DD

BE E P

E D

G V DS18b20

10K

Q9Q 10

eader 20X M 2_JT AG INI CUBE 2M H DR1X2

GN GN 此图仅作编程参考

232

通信选择接口

数码管及LED

图1.1EasyMUC2000 for NEC 的电路原理图

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

6

1.4 EasyMUC2000 原件布局图

●EasyMUC2000主板原件布局图如图1.2所示。

图1.2EasyMUC2000主板原件布局图

●EasyMUC2000部分核心板原件布局图如图1.3所示。

图1.3EasyMUC2000核心板原件布局图

●EasyMUC2000跳线旁详细的注释如图1.4所示

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

7

图1.4 EasyMUC2000跳线注释

图1.5 镀金插件

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

8

第二章:IAR 开发环境的安装与基本设置

2.1 IAR 环境安装 2.1.1. 获取IAR 安装包。

可以到IAR 官网或其他网站下载,在我们随开发板赠送的光盘中配有4.60版本的IAR EW78K 以及最新的4.62版本的破解版。本章就以IAR EW78K--4.60破解版为例讲解安装过程。

2.1.2. 生成Licnse 和Istallserial 备用

1)双击运行IARID.EXE 得到你的计算机的ID 号(注意大小写)。

2)用记事本打开input.bat 将0x238EF 用你的计算机ID 代替,保存后关闭

3)双击运行input.bat 得到serials.txt 文件,打开serials.txt 文件,会看到很多Installserial:和Key:(后面的信息填到安装时需要的Istallserial 和Key 就可以了)。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

9

找到"EW78K-EV"所在的Key 和Installserial ,执行下一步

2.1.

3.安装IAR

1)运行IAR EW78K-EV-460A.exe 点击next 直到出现以下界面,Name 和Company

两项可以随便输入,License 项输入上一步得到的License (Installserial )号如图,点击Next 。

2)输入Licnse Key 和安装路径

在Licnse Key 项输入上一步得到的Licnse Key 是一串字符串注意#后面的信息不

要复制,不包括”#”,如图:

2.1.4.步安装完成后:

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

点击Next直到完成安装。第一次运行时提示选择英文还是日文,千万别选英文注①,(除非你懂日文)因为选择英文后打开时操作界面是日文。万一不小心选

错了,也没关系,点击倒数第三个菜单选择第一个菜单项,打开对话框,点击言语,在右边的对话框中选择日语,在点击下方的确定按钮,退出开发环境后重

新启动,就是英文操作界面了,恭喜你成功安装IAR FOR NEC 4.60版本!

注1:最新的4.62版本安装方法一样在最后的语言选择上避免了选择英语是日语的现象。

2.2在IAR中新建一个新项目

要为某个目标系统开发一个新应用程序,必须先新建一个新项目。新建项目具体步骤下面将作详细介绍。

2.2.1建立一个项目文件目录

首先应该为新项目创建一个目录,用来存放与项目有关的各种文件。项目开发过程中生成的一系列文件,如:工作区文件,开发环境的配置,编译、连接和调试选项配置,各种列表文件和输出文件等都将被存放在这个目录下。用户也可以选择把各种源文件也放在这个目录下。在下面的例子中我们新建一个 D:\EasyMUC2000开发板例程\IAR新建项目目录。(IAR支持中文路径,但是有的编译器并不支持。

养成良好的编程习惯尽量在文件路径中不要出现中文名字,这里以及示例程序中使用了中文路径是为了让读者或用户更加清晰明白。)与此同时我们在 D:\EasyMUC2000开发板例程\IAR新建项目\ 目录下还创建INC和SRC两个文件夹用于存放项目的头文件(.h文件)和程序文件(如.c文件)。

在一个较大项目中各类文件较多将文件分类存放时非常重要的,便于对工程的管理维护。

2.2.2 新建工作区

I AR虽然是按项目进行管理, 但是要求把所有的项目都放在工作区内(Workspace)。用户

如果是第一次使用IAR开发一个新项目,必须先创建一个新工作区,然后才能在工作区中创建新项目。一个工作区中允许存放一个或多个项目。如果用户过去已经建立了一个工作区并且希望把目前要建的新项目放在老工作区内,则可以直接打开老工作区并执行第三步生成新项目。

创建新工作区方法如下:

持续更新中QQ群:1258045210

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

11

1)运行IAR Embedded Workbench

2)选择主菜单的 File > New > Workspace 命令,然后开启一个空白工作区窗口,如图 2.2所示。

图 2.2 空白工作区窗口

2.2.3 生成新项目

下一步就是在工作区中创建新项目,方法如下:

1. 选择主菜单 Project > Create New Project ,弹出生成新项目窗口。IAR 提供几种应用程序 和库程序的项目模板。如果选择Empty project ,表示采用默认的项目选项设置,为一个空工程。在本例中我们选择Empty project ,如图

2.3

所示。

图2.3 生成新项目窗口

2. 在 Tool chain 栏中仅有78K 选择项,点击OK 按钮,弹出“另存为”窗口。如图 2.4

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

12

所示。

图 2.4 “另存为”窗口

3. 在“另存为”窗口中浏览和选择新建的 D:\EasyMUC2000开发板例程\IAR 新建项目\ 目录,输入新项目的文件名为pro, 然后保存。这时在屏幕左边的Workspace 窗口中将显示新建的项目名和输出代码模式,如图 2.5 所示

图2.5 新建的项目名

项目名后面的 Debug 表示输出含调试信息的代码文件。IAR 能为项目提供两种输出代码模式:Debug 和Release 。Debug 模式生成含调试信息的程序代码,用户利用它可以在IAR 环境下调试应用程序。而Release 模式生成不含调试信息的发行版本的程序代码,其代码比较紧凑。用户可以从Workspace 窗口顶部的下拉菜单中选择两种项目配置之一,本例我们选择Debug 。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

13

注意:demo-Debug 后的﹡号表示当前的工作区和项目经修改后还没有被保存。

4. 保存工作区

新生成的工作区需保存才有效,所以在添加项目后IAR 要求执行保存工作区操作。选择主菜单 File > Save Workspace ,浏览并选择 D:\EasyMUC2000开发板例程\IAR 新建项

目\ 目录。然将工作区取名为pro 输进File name 输入框,按保存按钮退出,如图 2.6 所示。

这时在 D:\EasyMUC2000开发板例程\IAR 新建项\ 目录下生成一个 pro.eww 文件和其他相关文件。同时在该目录下还生成一个settings 子目录,这个目录下存放保存窗口

设置和断点设置等与当前操作有关信息的其他文件。

图 2.6 保存工作区

注意:保存操作完成后项目名后的﹡号已经消失。

2.2.4 添加新建文件

保存工作区后,下一步就是在项目中新建文件或添加已有文件。项目中的文件允许分组,用户可以根据项目的需要和自己的习惯来组织源文件。

1. 新建.c文件

新建一个C程序文件,选择主菜单的 File > New > file 命令或使用快捷键

,然后打开一个空

白文件Untit1,如图 2.7所示。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

14

图2.7 新建文件

2. 保存文件

将新建的文件保存到项目文件夹种,选择主菜单 File > Save 或使用快捷键

。浏

览并选择D:\EasyMUC2000开发板例程\IAR 新建项目\SRC\ 目录。然将文件取名为pro_main.c 输进“文件名“ 输入框,按保存按钮退出,如图 2.8 所示。如果有已建好的C

文件也可直接拷贝到该目录下。

图2.8 保存文件

3 创建.h 文件

采用以上两个步骤再创建一个pro_main.h 文件保存到D:\EasyMUC2000开发板例程\IAR 新建项目\INC\ 目录下。

4.创建工作组

右击“demo-Debug ”然后选择 Add > Add Group…,如图 2.9 所示。输入组名INC。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

15

图 2.9建立文件组

用以上同样的方式再创建一个名为SRC 的文件组如图2.10所示

图2.10 新建两个文件组

5.添加文件到相应的工作组中

添加pro_main.h 头文件到INC 工作组中,右击“INC ”然后选择Add > Add File ,

浏览至 D:\EasyMUC2000开发板例程\IAR 新建项目\INC\ 目录,在文件名输入框中

输入需要添加的文件名然后选择打开(也可以双击该文件打开)。如图2.11.

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

16

图2.11 添加.h 头文件到工程中

以同样的方法将pro_main.c 文件添加到SRC 文件组中,如图2.12 。

图2.12添加.C 文件

此时,便可以在该main.c 文件中编辑需要的程序。

注意:往项目中添加文件时必须添加汇编语言和 C 语言的源程序,可以不需要添加头文件(即.h 头文件)。在配置项目的编译器、连接器选项时指明包含头文件的路径和目录。但是在一个较大工程中文件较多,为了方便对项目,文件管理,随时修改查看头文件,建议将头文件添加到工程中。即使将头文件添加到了工程中在项目配置是仍然需要指明包含头文件的路径和目录。关于项目配置选项的设定我们会在下面详细介绍。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

17

2.2.5 项目选项设置

生成新项目和添加文件后的下一步是为项目设置选项。设置项目选项是非常重要的一步,如果设置不当,编译、连接就会出错,就无法生成正确的代码文件。大家记得,在创建新项目时我们选择了Empty project 模板,表示采用默认的项目选项设置。但是这些默认的设置还要根据具体项目的需要进行修改。IAR 提供的项目选项内容繁多,初学者可能会感觉到摸不着头脑、无从下手。实际上关键的选项并不多,只要把它们设置正确了,其它的采用默认设置就不会出错。下面我们把这些关键选项设置逐条介绍。

1.通用选项设置

IAR 允许为工作区中的任何一级目录和文件单独设置选项,但是用户必须首先为整个项目设置通用的选项General Option 。设置方法是:选中工作区中的项目名pro – Debug ,按鼠标右键在弹出菜单中选择Options…或选择主菜单 Project > Options…。在弹出的Options 窗口左边的目录(Category )中选择第一项General Options 。然后分别设置:

● “Taget”选择芯片型号,本例我们选择NEC 78k0_KX2系列44脚的uPD78F0512

芯片。单击

然后选择 78K0 > 78KX2 > 78K0-uPD78F0512-44.如图 2.13.

图 2.13 芯片信号选择

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

18

● “Stack/Heap ”堆栈设置,IAR 默认堆栈长度为0X80可根据具体情况修改。

如图2.14。

图2.14 堆栈设置

●其他选项采用默认设置。

2.C/C++编译器选项设置

在Options 窗口的目录Category 中选择第二项C/C++ Compiler 。C/C++编译器的选项设置如下:

● “Preprocessor ”头文件地址 设置

Preprocessor 页面中,列有标准的include 文件的目录。如果用户的include 文件不在标准目录下时,必须在Additional include directories 输入包含该项目include 文件的目录。一个目录用一行描述,有多个目录时允许用多行。在 Preprocessor 框中的Additional include directories(one per line) 项目中输入“D:\EasyMUC2000开发板例程\IAR 新建项目\INC ”或使用相对地址 “$PROJ_DIR$\INC \”他表示头文件在工程目录的INC文件夹下,前面创建的pro_main.h头文件的就在此。如图 2.15

所示。

图2.5 头文件地址

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

19

● 其他选项采用默认设置。

3. Linker 选项设置

在 Options 窗口的目录Category 中选择第六项Linker 。连接器的选项中的设置最重要的一点就是设置编译器输出.hex文件,设置方法有多种下面介绍笔者常用的一种方法,该方法可以,免去仿真与下载时重复设置的麻烦。

● 选择 “Extra Options ”然后选中 Use command line options 在空白框中输入

-Ointel-extended,(CODE)=.hex 如图 2.16 所示。生成的hex文件在工程Debug\Exe下,如本例在 D:\EasyMUC2000开发板例程\IAR新建项目

\Debug\Exe\ 文件夹下。

● 其他选项采用默认设置。

图 2.16 hex 输出

4. Debugger 选项设置

在 Options 窗口的目录Category 中选择第七项Debugger 。该选项主要选择调

试器。

选择 Setup 在 Driver 下拉列表中选择你使用的调试器,(Simulator 是软件仿真)如图2.17所示。

淘宝:https://www.sodocs.net/doc/16177965.html,/auction/item_detail-0db1-691d8c5aec9a6ea494e94c2755a894e2.htm?cm_cat=0&pm1=1

持续更新中 QQ 群:12580452

20

图2.17 选择调试器

5. 完成设置:

单击“Ok”,到此为止工程已经建好,各项设置也完成了。 2.3

IAR环境的常用个性化设置设置

IAR的安装好后,第一次使用时有的默认设置不符合个人喜好,就需要对这些默认项进行重新设置。下面简单介绍几种常用设置。 ● 语言设置 ,IAR支持英语和日语两种语言。

选择主菜单 Tools > Options …打开 IDE Options 选择左边第三行“Language ”在右边 Language 下拉列表中选择语言。如图2.18所示。语言设置后 需要重新启动IAR 才能生效。

图2.18 语言设置

● 编程时显示行号,

选择主菜单 Tools > Options …打开 IDE Options 选择(单击)左边第4

相关主题