一、准备工作

1、KEIL C51编译环境

2、CodeGen8 代码生成器

3、MC96F6332D 开发板

4、USB-OCD II仿真器

二、生成GPIO的代码

1、在CodeGen8 代码生成器的外设窗口中选择内部RC时钟作为时钟源,并设置时钟的频率为8MHz,配置情况如下图①所示;设置GPIO中P07为输出引脚,模式配置为推挽输出且不使能引脚的上拉电阻;配置情况如下图②所示:

在main.c的窗口中可以看到CodeGen8 已经根据选择自动生成设置的代码段。

2、点击CodeGen8 中的C 图标,自动打开KEIL C51软件;下一步进行代码的修改、编译和程序下载;

1)、在代码中删除LCD驱动代码,本实验暂时用不到LCD部分;

2)、添加可以直接操作P07端口的置位和复位代码段,如下所示:

//设置P07置位
void P0GPIO_SETBit7()
{P0 |= 0x80;}//设置P07复位
void POGPIO_RESETBit7()
{P0 &= 0x7F;}

针对端口P07初始化代码如下所示,P0GPIO_Bit7_Init();函数要放到代码生成器中port_init()函数之后;

//P07初始化操作
void P0GPIO_Bit7_Init()
{P0IO |= 0x80;     // direction            //Bit7 set output                                   //P0 方向寄存器               (0:输入  1:输出)P0PU |= 0x00;     // pullup                   //Bit7 set output                                   //P0 上拉电阻选择寄存器(0:禁止 1:使能)P0OD |= 0x00;     // open drain           //Bit7 set open drain                           //P0 漏极开路选择寄存器(0:推-拉输出  1:漏极开路输出)P0DB |= 0x00;     // bit7~6(debounce clock), bit5~0=P07~02 debounce      //P0 消抖使能寄存器         }

3)、增加延时函数,代码如下所示:

/*** @brief  Inserts a delay time.* @param  nCount: specifies the delay time length.* @retval None*/
void Delay(int nCount)
{/* Decrement nCount value */while (nCount != 0){nCount--;}
}

4)、编写主函数中while语句,代码如下:

 // TODO: add your main code here    while(1){/* Toggle LEDs LD1..LD4 */P0GPIO_SETBit7();Delay(0xFFFF);POGPIO_RESETBit7();Delay(0xFFFF);}

5、将仿真工具OCD II连接到电脑端的USB口,点击KEIL C51编译器中的魔术棒,在Debug选项卡中选择ABOV OCD-1/2 dongle,在Utilities选项卡的 Configure Flash Menu Command选项中同样选择ABOV OCD-1/2 dongle;最后点击OK。

6、编译工程,可以看到编译结果:无错误、无警告。

8、代码解析:通过MC96F6332D的user‘s Manual手册中 I/O Ports章节可以看出实验代码的含义:

针对 P0 方向寄存器和 P0PU 上拉电阻寄存器如下:

针对P0OD开漏寄存器和消抖寄存器P0OB的寄存器如下:

其中消抖寄存器P0OB是在GPIO引脚作为外部中断功能的时候才使能,如果引脚作为普通GPIO可以不需要开启。针对P0OB寄存器后面用到后再详细讲解。关于P0FSRH/L寄存器为P0端口的复用功能寄存器,同样在后面章节用到后再详细讲解,此处暂时忽略。

总结:此时可以看出,单片机的GPIO操作和功能都十分简单,根据自己的需求配置对应的寄存器即可。

9、点击编译器的下载按钮,将刚刚编译好的代码下载到MCU中进行调试仿真。

三、实验现象

1、本实验是通过操作P07引脚的GPIO的寄存器,实现LED灯的闪烁现象;

2、具体的参考代码可以访问链接:https://share.weiyun.com/500WLKu;进行免费下载。

备注:

1)、系统时钟切换为8MHz;

2)、针对数据寄存器Px(x取值为0,1,2,3,4,5)的操作:采用字节进行操作,避免采用位操作,即IF(P10) → IF(P1&0x01),左边的指令应该改成右边的指令形式。在数据手册同样有说明。

因为小编自己能力水平有限,文中难免有错误或表达不到的信息,还望广大阅读者留言批评指正,谢谢。

ABOV单片机端口引脚GPIO讲解及示例代码-[MC96F6332D]相关推荐

  1. ABOV单片机UART串口通讯实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口通讯代码 1.在CodeGen8 代码生成器 ...

  2. ABOV单片机内部中断优先级寄存器IP1x/IPx的设置代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.外部中断EINT示例代码-MC96F6332D 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.代码部分 1.现代单片机MC96F ...

  3. ABOV单片机外部引脚中断EINT实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成外部引脚中断的代码 1.在CodeGen8 代码 ...

  4. ABOV单片机UART串口通讯中Printf函数实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口代码 1.在CodeGen8 代码生成器的外 ...

  5. ABOV单片机内部定时器Timer1的定时器代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部定时器PWM代码生成 1.在CodeGen8 代 ...

  6. ABOV单片机内部看门狗WDT的代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部看门狗代码生成 1.在CodeGen8 代码生成 ...

  7. ABOV单片机时钟切换讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成系统时钟代码 1.在CodeGen8 代码生成器 ...

  8. ABOV单片机模数转换ADC部分代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.ADC的配置和代码生成 1.在CodeGen8 代码 ...

  9. ABOV单片机内部WT时钟RTC的代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部WT时钟代码生成 1.在CodeGen8 代码生 ...

最新文章

  1. 查看器_三款完美替代Windows10自带照片查看器的神器!
  2. Leetcode 92 反转链表 II (每日一题 20210726)
  3. 草履虫纳米机器人_Nature:看不见的外科医生——比头发丝还小的微型“机器人大军”正在走来...
  4. [云炬创业基础笔记]第五章创业机会评估测试4
  5. 谷歌浏览器首页被改hao123_百度浏览器停更?今日头条、微博谁将获利?
  6. SAP CRM WebClient UI html 格式的 Text 显示逻辑
  7. 批处理延迟sleep应用
  8. 认识服务器与web服务器
  9. asp.net获取ip地址的方法
  10. 搭建证书服务器(2003)学习笔记
  11. 遗传算法优化变分模态分解VMD包络熵和参数及MATLAB代码
  12. 电池SOC仿真系列-基于双卡尔曼滤波算法的电池SOC估算研究
  13. win8 查看和更换密钥方法
  14. 流媒体网络性能指标——抖动
  15. 债券价格和到期收益率的关系_债券价格与到期收益率之间的关系.PPT
  16. 19 「沉淀」,20「继续沉淀」
  17. 为什么都瞧不起培训班出来的程序员?
  18. CVBS-复合视频广播信号[转]
  19. html中计时器,计时器.html
  20. 涉密资质要求的保密室建设标准有哪些?

热门文章

  1. vivo软件开发工程师(Java方向)(2019年春招)
  2. 选对池塘钓大鱼([美]雷恩·吉尔森)第三章 钓鱼指南:寻找一幅职业地图
  3. 集创赛备赛:Robei八角板7020简介
  4. MeeGo编译步骤参考
  5. 正则表达式常用符号及python示例
  6. 微信小程序源码大集004---小程序实现大转盘 仿天猫抽奖 跑马灯效果(有图有源码)
  7. 信息采集的难点是什么?
  8. windows清理_一款适合于windows端的卸载神器 彻底清理残留软件
  9. linux rm - rf之后怎么恢复
  10. VNCViewer连接KVM虚机鼠标不同步问题