收藏 分享(赏)

盛群单片机集成开发环境使用简介.doc

上传人:HR专家 文档编号:5296184 上传时间:2019-02-19 格式:DOC 页数:23 大小:2.85MB
下载 相关 举报
盛群单片机集成开发环境使用简介.doc_第1页
第1页 / 共23页
盛群单片机集成开发环境使用简介.doc_第2页
第2页 / 共23页
盛群单片机集成开发环境使用简介.doc_第3页
第3页 / 共23页
盛群单片机集成开发环境使用简介.doc_第4页
第4页 / 共23页
盛群单片机集成开发环境使用简介.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、盛群单片机集成开发环境使用简介重庆理工大学电子学院 万文略一、建立项目(工程)单击集成开发环境的 工程 -新建 菜单,弹出 Project Location Step1 对话框输入项目名称,确定保存路径,选择 CPU 及编译工具后按 Next 按钮,弹出 Project Location-Step2 对话框。选择使用 C 语言编写盛群单片机应用程序,按 Next 按钮,弹出 Project Location-Step3 对话框。输入程序文件名,按 Next 按钮,弹出 Warning 对话框。初次使用盛群单片机开发环境及 e-ICE 时,单击 QS10001SV100.DOC 文件名,打开文件

2、查看e-ice 的使用限制,若已熟悉可以直接按 OK 按钮进行项目配置。利用配置文件设置 CPU 工作在特定的模式下,主要有:系统电压设置系统时钟频率设置ICE 复位功能选择芯片封装选择。 。 。 。配置选项的项目繁多,初学者难以理解,这时可以按以下给出的设置套用即可。选择系统电压为 5V选择系统工作频率,这里设置的时钟频率最好与目标板使用的时钟频率一致,时钟频率值只能等于 24/N Mhz,其中 N=2,4,6,8.这里选择 SYSTEM,无需再外界复位电路。可以选择与目标板使用的芯片一致的封装。CPU 的 RC 振荡器工作电压电压选择。这里选择高速时钟振荡源分别是HXT:外部晶体振荡ERC

3、:外部 RC 振荡HIRC:内部高频 RC 振荡RC 振荡器电路简单,但振荡频率不精确、不稳定。对时钟频率要求高的应用建议选择外部晶体振荡。内部低频 RC 振荡源选择LIRC:内部低频振荡LXT:外部低频晶体振荡低频晶体振荡指的是 32.67Khz 的晶体。看门狗时钟频率选择fSUB 内部振荡器(LXT 或 LIRC)fSYS/4 指令周期频率内部 RC 振荡器振荡频率选择低电压复位使能/禁能低电压检测阈值电压选择串行接口模块使能SPI 片选信号使能/禁能SPI 数据写入冲突标志位使能/禁能看门狗定时器功能使能/禁能清除看门狗指令方式选择:2 条指令或 1 条指令PB0 做复位引脚或 IO 引

4、脚选择I2c 接口去噪声选项Nodebounce 无去噪声功能2 system clock debounce4 system clock debounce工程选项设置盛群单片机开发工具简介仿真器盛群单片机的仿真器由 MEV 和 DEV 组成,仿真器不具备通用性,仿真 HT66 系列单片机时应配套使用 M1001C MEV 板和 D1003C DEV 板。M1001C DEV 仿真版D1003C DEV 板用于 HT66F50 单片机仿真MEV、DEV 叠加到一起构成仿真器仿真器的引脚定义HT66F50 / HT68F50DEV PN D1003AReal Chip Pin Name J5 J5

5、Real Chip Pin Name Real Chip Pin Name J6 J6Real Chip Pin Name VSS 46 45 VSS VSS 46 45 VSSPD5 44 43 PD4 PD3 44 43 PD2PE1 42 41 PE0 PD1 42 41 PD0PE3 40 39 PE2 PC5 40 39 PC4PC7 38 37 PC6 PC3 38 37 PC2NC 36 35 PC0 NC 36 35 NCNC 34 33 NC NC 34 33 NCPE4 32 31 PC1 NC 32 31 NCPB0 30 29 PE5 NC 30 29 NCNC 28

6、27 NC NC 28 27 NCNC 26 25 NC NC 26 25 NCNC 24 23 NC NC 24 23 PD7NC 22 21 NC PD6 22 21 PB7NC 20 19 NC PB6 20 19 PB5VDD 18 17 NC NC 18 17 NCPB2 16 15 PB1 NC 16 15 PA7PB4 14 13 PB3 PA6 14 13 PA5NC 12 11 VSS PA4 12 11 PA3NC 10 9 NC PA2 10 9 PA1PE6 8 7 NC PA0 8 7 NCPF0 6 5 PE7 NC 6 5 NCNC 4 3 PF1 NC 4 3

7、NCVDD 2 1 VDD VEXT 2 1 VEXT在 IDE 的帮助文件里可以查看仿真器的引脚定义。HT66F50 的 IO 口HT66F50 有多种封装形式,最少有 13 个 IO 口,最多有 50 个 IO 口。每种型号的 CPU 的 IO口分布见下表I/O Port 编号与配置引脚数(PX,PXC,PXPU)MCU型号封装引脚数 A B C D E F G16 7:0 5:0 X X X X XHT66F2020 7:0 5:0 3:0 X X X X16 7:0 5:0 X X X X X20 7:0 5:0 3:0 X X X XHT66F3024 7:0 5:0 7:0 X X

8、 X X24 7:0 5:0 7:0 X X X X28 7:0 5:0 7:0 3:0 X X X32 7:0 5:0 7:0 3:0 7:6 1:0 X40 7:0 7:0 7:0 7:0 7:4 1:0 X44 7:0 7:0 7:0 7:0 7:0 1:0 XHT66F4048 7:0 7:0 7:0 7:0 7:0 1:0 X28 7:0 5:0 7:0 3:0 X X X40 7:0 7:0 7:0 7:0 7:4 1:0 X44 7:0 7:0 7:0 7:0 7:0 1:0 XHT66F5048 7:0 7:0 7:0 7:0 7:0 1:0 X40 7:0 7:0 7:0 7

9、:0 7:4 1:0 X44 7:0 7:0 7:0 7:0 7:0 1:0 X48 7:0 7:0 7:0 7:0 7:0 1:0 XHT66F6052 7:0 7:0 7:0 7:0 7:0 7:0 1:0IO 口的复用引脚复用在单片机设计中普遍使用,这使得一个 MPU 引脚可以分时具备多个功能。使得MCU 在应用上具备更好的灵活性。用户可以根据需要选择和配置引脚功能。PA 口的功能PA 口除了可以做一般双向 IO 口(PA0PA7)外还可以有以下功能:模拟输入引脚(AN0AN7)PA0 模拟比较器 0 的输出引脚PA1 ETM 的捕获输入或比较输出引脚PA2 模拟比较器 0 的同相输入

10、C0+,或作 STM 的外部时钟输入引脚 TCK0PA3 模拟比较器 0 的反相输入 C0-,或作外部中断输入引脚 INT0。PA4 外部中断输入引脚 INT1,或作 ETM 的外部时钟输入引脚 TCK1。PA5 模拟比较器 1 的输出引脚,或作 SPI 接口的 SDO 线。PA6SPI 接口的 SDI 线,或作 I2C 接口的 SDA 线。PA7SPI 接口的 SCK 线,或作 I2C 接口的 SCL 线。IO 口内部结构1.每个 IO 口都是推挽输出,当工作在 5V 电压下时可以输出 Source Current(Ioh) -7.4mA,Sink Current(Iol)20mA。整块芯片

11、驱动总电流 Ioh=80mA,Iol=80mA。2.可以选择 IO 口为弱上拉功能。3.PA 口支持掉电唤醒输入。4.IO 输入加施密特触发器,使 MCU 有较好的抗干扰能力。IO 口的控制寄存器每个 IO 口有 3 个控制寄存器,即 Px,PxC,PxPU,这里 x=A,B,C,D,E,F,G。Px是 IO 口的数据寄存器,写这个寄存器控制对 IO 口进行输出控制,读这个寄存器得到 IO 口的状态;PxC 是 IO 口的控制寄存器,控制 IO 口的方向;PxPU 控制 IO 口的上拉状态。PxC, Px 口控制寄存器PxC 寄存器控制 Px 口的方向PxCPxC7 PxC6 PxC5 PxC

12、4 PxC3 PxC2 PxC0 PxC0Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0盛群单片机的 IO 口的输入输出方向由 PxC 寄存器控制:当 Bit=0 时,对应的 Px 口 IO 引脚为输出状态当 Bit=1 时,对应的 Px 口 IO 引脚为输入状态Px,Px 口的数据寄存器Px 寄存器是 IO 口的数据寄存器,当 IO 口为输入模式时,读 Px 寄存器可以得到当前IO 口的状态,当 IO 口为输出模式时,写 Px 寄存器改变 IO 口的状态。PxPU,Px 口的上拉控制寄存器PxPU 寄存器控制 IO 口处于弱的上拉状态。对应位为 1 时使能弱上

13、拉,为 0 时无上拉状态。当单片机工作在 5V 电压下时,上拉电阻的值在 10K50K 之间,当单片机工作在 3V 时,上拉电阻的值在 20K100K 之间。C 语言控制盛群单片机的寄存器如何在 C 程序中访问盛群单片机的特殊功能寄存器呢,这里以 PA 口为例,查阅HT66F50 器件手册,得知 PA,PAC 寄存器的地址为 0x1a,0x1b。每个寄存器都是 8 位字长的无符号数(因为每一位都有特定的功能,最高位不是符号位) 。在程序中定义:unsigned char _pa 0x1a;unsigned char _pac 0x1b;盛群单片机的 C 语言用表示一个物理地址,这样符号_pa

14、表示 PA 寄存器,_pac 表示PAC 寄存器。让 PA 口为输入口,则程序为_pac=0xff;读 PA 口的状态到 tmp 变量,程序为tmp=_pa;以上是对整个 IO 口同时进行读写操作,有时我们常常要单独写寄存器的某一位。盛群单片机的 C 语法为#define _pa0 _1a_0_1a 是寄存器的字节地址,_0 为寄存器的位地址。执行程序_pa0=0;的结果是 PA 口的第 0 位为低,其他位的状态不变。例:检测 PA 口的第 5 位是否为高电平#define _pa5 _1a_5if(_pa5=1)处理 PA5 为高else处理 PA5 为低以上简单地介绍了盛群单片机的特殊表示

15、方式,读者只需要模仿就可以了,这些特殊的语法在其他品牌的 MCU 开发中是不适用的。需要注意的是#define 语句要在 C 程序的最开始的部分进行定义。关于其他寄存器的定义请参阅 HT66F50.h 文件。例一:PA 口控制 8 流水灯。本例用 PA 口驱动 8 个 LED,每次只点亮一个发光二极管,硬件设计:选用 PA 口控制流水灯,如图所示。发光二极管正向偏置电流在 510mA 时发光二极管点亮,反偏或正向偏置电流为 0mA 时发光二极管熄灭。MCU 工作在 5V 电源电压下,当 IO 口为高电平时,IO 口电压接近 5V。发光二极管的正向导通电压约 1.1V1.2V。因此当接 470

16、欧限流电阻时,发光二极管的导通工作电流大约为 8mA 左右。图中所有的发光二极管的阴极接地,又称作共阴极解法。这时 IO 口的寄存器位为 1 的位对应得引脚输出高电平,发光二极管点亮。也可以采用共阳极的解法,这时 IO口的寄存器位为 0 的位对应的引脚输出低电平,发光二极管点亮。具体电路请读者自己思考。程序设计思路1.首先要对 MCU 进行初始化对本例来说要 IO 口进行初始化。即选择 PA 口的功能为 IO 口,PA 口的工作模式为输出模式。另外,由于 PA 口为多功能复用口,作一般 IO 口时要关闭其他复用功能。2.建立控制模型建立控制模型的目的是将具体应用功能要求用数学模型或数字逻辑表示

17、,以便于程序实现和处理。建模是程序设计的关键步骤。本例为最简单的 MCU 控制,IO 口输出为 1 时发光二极管点亮。每个发光二极管点亮后一段时间后后熄灭,再依次点亮下一位发光二极管。用数字表示为PA 口寄存器 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0第 1 次 01H 0 0 0 0 0 0 0 1第 2 次 02H 0 0 0 0 0 0 1 0第 3 次 04H 0 0 0 0 0 1 0 0第 4 次 08H 0 0 0 0 1 0 0 0第 5 次 10H 0 0 0 1 0 0 0 0第 6 次 20H 0 0 1 0 0 0 0 0第 7 次 40H 0 1

18、 0 0 0 0 0 0第 8 次 80H 1 0 0 0 0 0 0 0通过观察表中 MCU 输出数据的变化规律,可以得出每次控制状态发生改变时,下一时刻的 PA 口数据的状态是前一时刻状态的 2 倍,或下一次的状态是前一时刻的左移。共有 8个发光二极管,所以要循环 8 次。实现上述算法时可以采用向左移位或乘 2 的两种方法。以向左移位的方法为好,因为左移只需要 MPU 执行一条机器指令即可,而用乘 2 的方法则需要 MCU 执行更多的机器指令,对没有乘法指令的 MCU 而言,需要调用一个乘法子程序来实现乘法的功能,即使对有乘法指令的 MCU,其执行乘法指令的速度一般要慢于执行移位指令。需要

19、注意的是,C 语言没有循环移位运算符,PA 是个 8 为字长的寄存器,当 PA=0x80时,再次移位或乘 2 后 PA=0。这时全部的 LED 都熄灭了。所以程序中要加以处理,处理的方法是,若 PA=0,则令 PA=0x01;3.编写程序#include “HT66F50.h“ /包含 HT66F50 头文件,这个文件定义了 MCU 所有的寄存器#define LedPort _pa / pa 端口#define LedPortCtrl _pac / pa 控制端口#pragma vector isr_4 0x4#pragma vector isr_8 0x8#pragma vector is

20、r_c 0xc/ISR for safequardvoid isr_4() / externalvoid isr_8() / timer/eventvoid isr_c()这里将中断服务程序定义为空函数。若有中断发生,程序不作处理直接返回,若没有这些空函数,当发生中断时,MCU 的程序计数器会崩溃。/initialize registers forvoid safeguard_init()_pac = 0xff;_pbc = 0xff;_pcc = 0xff;_pdc = 0xff;上电复位时,所有的 IO 口为输入状态,保证系统安全void main(void) / 主函数unsigned

21、char k ; safeguard_init();_papu=0xff; /PA 口弱上拉LedPortCtrl = 0 ; / 设定 pa 端口为输出LedPort = 0xff ; / 熄灭所有 LED_cp0c=0; /不使用比较器 0_cp1c=0; /不使用比较器 1_acerl=0; /不使用 AD 转换器_tmpc0=0; /不使用定时器 0 的复用引脚_tmpc1=0; /不使用定时器 1 的复用引脚k=1;while(1) /程序为一个无限循环LedPort = k;_delay(25000) ; / 延迟 500 毫秒 (ms)_delay(25000) ;_delay(25000) ;_delay(25000) ;_delay(25000) ;k=k*2;if(k=0)k=1; 未完待续

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报