一、说在前面:

前面我们讲解了合泰单片机 HT66F23x0 的开发环境,也举例了 LED 流水灯的是工程编写。那么今天我们就来说说,如何亲自根据芯片手册清晰的编写第一个程序呢。如果你是第一次接触合泰的单片机,你也许会感觉很差异,同为 8 bit 的单片机为什么编程不一样的。这对于学过了解 51 的新手初始 HT66F23x0 还是有点反应不过来,至少一开始我是这样的。好的,我们进入今天的重点。

2、开发环境:

1、HT-IDE3000 (编辑器)

2、HOPE3000 For e-Link (烧录器)

如果你还没有安装以上2个工具可以点击连接查看 合泰杯 | 合泰单片机入门 环境搭建安装(一),这里就不再复述。

3、流水灯编程实验 

为了更直观的对比51 编程,直接贴图一步步的分析。

对比51的编程,我们发现,工程文件多了 【 启动代码 、头文件、外部文件 】

步骤分析:

1、创建完整的工程后,我们可以看到工程名,以及你使用的单片机型号。工程名称一般都要大写,并且命名清楚,英文的可读性要强。

2、源文件里面包含的是,主函数的 ( .C ) 文件,我们编写的代码都放这边,和 51 里的 main 主函数一样。

3、启动代码,这个文件是汇编写的,启动代码是非常关键的,所有的CPU都有启动代码。同样的 51 单片机也有,这里完成了最基本的初始化功能,尤其是中断向量表,程序员每一个中断函数的名字都要与启动代码中的向量表对应,否则中断是无法进入的。

4、头文件就是存放 ( .H ) 文件的,外部文件就是存放你在外部文件夹编写的代码导入到工程时显示的文件。

现在我们就是进入编程的区域。里面的代码定义和我们接触51的代码定义有些不同,头文件的引用这是每个工程里面都必须有点的。其中  < >  和  "  " 的区别就是前者是优先在库里面寻找头文件,后者是优先在你的工程文件夹里面寻找头文件。

5、_pg (_pa pb _pc _pd _pe_pf _ph)是指合泰单片机的 gpio 引脚定义,类似51的 P0,P1,P2, P3 gpio引脚一样,

注意:合泰单片机都是以 ( _ xxxx )开始命名 

6、_pxgc 表示的是 gpio 口的输入 / 输出模式,使能 0 为输出模式,使能 1 为输入模式。

具体配置如下:

6.1、输入 / 输出端口控制寄存器
每一个输入 / 输出口都具有各自的控制寄存器,用来控制输入 / 输出状态。从而每个 I/O 引脚都可以通过软件控制,动态的设置为 CMOS 输出或输入。所有的I/O 端口的引脚都各自对应于 I/O 端口控制的某一位。若 I/O 引脚要实现输入功能,则对应的控制寄存器的位需要设置为“1”。这时程序指令可以直接读取输入脚的逻辑状态。若控制寄存器相应的位被设定为“0”,则此引脚被设置为CMOS 输出。当引脚设置为输出状态时,程序指令读取的是输出端口寄存器的内容。注意,如果对输出口做读取动作时,程序读取到的是内部输出数据锁存器中的状态,而不是输出引脚上实际的逻辑状态。

注意,如果对输出口做读取动作时,程序读取到的是内部输出数据锁存器中的状态,而不是输出引脚上实际的逻辑状态。

6.2、上拉电阻

许多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功能。为了免去外部上拉电阻,当引脚规划为输入时,可由内部连接到一个上拉电阻。这些上拉电阻可通过相关上拉控制寄存器来设置,它用一个 PMOS 晶体管来实现上拉电阻功能。应注意只有在引脚共用功能用脚配置为输入或 NMOS输出时,可通过相关上拉控制寄存器控制上拉电阻,否则,上拉电阻无法被使能。

6.3、PA 口唤醒
当使用“HALT”指令迫使单片机进入休眠或空闲模式,单片机的系统时钟将会停止以降低功耗,此功能对于电池及低功耗应用很重要。唤醒单片机有很多种方法,其中之一就是使 PA 口的其中一个引脚从高电平转为低电平。这个功能特别适合于通过外部开关来唤醒的应用。 PA 口的每个引脚可以通过设置 PAWU寄存器来单独选择是否具有唤醒功能。应注意只有在引脚共用功能选择为通用输入 / 输出口且单片机进入暂停模式时,此功能可由唤醒控制寄存器控制。


6.4、输入 / 输出端口电源控制
此系列单片机为 PE3~PE0 输入 / 输出端口提供了不同的端口电源选择。通过设定 PMPS 寄存器中的 PMPS1~PMPS0 位段可确定端口电源是来自电源引脚 VDD或是 VDDIO 引脚。若来自 VDDIO 引脚则该引脚功能必须通过相应的引脚共用功能选择位预先设定。必须注意的是若 VDDIO 引脚被选作端口电源引脚,则该引脚上的输入电源电压应等于或小于单片机供电电压。

以上这几点是摘要芯片手册的 I/O 引脚的配置,具体配置还需具体分析。具体的详细内可以参考帮助手册,资料我已上传到个人博客首页 。

7、_wdtc = 0b10101111 配置看门,具体的配置如下:

以上就是编程合泰单片机的第一个流水灯程序步骤,其实单片机的功能都是大同小异的,当我们拥有了 51 的基础后,我们在拿到一款新的单片机,首先要找的就是官网里的芯片开发手册,你遇见的问题官网都可以解决。好了理解完基本的编程后,我们接下来就是学习不同的单片机外设开发。

=======================(更新中····)=====================

注:一个热爱开源技术,记录分享51单片机,STM32,C语言,数据结构和算法,嵌入式Linux技术的公众号,学习的道路是宽广的,人海之中若有缘相见,那就关注一波吧,让我们一起共同成长,记录生活记录你!

合泰杯 | 合泰单片机入门 编程详解(二)相关推荐

  1. 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)

    一.说在前面: 前面我们讲解了合泰单片机 HT66F23x0 的开发环境,也举例了 LED 流水灯的是工程编写.那么今天我们就来说说,如何亲自根据芯片手册清晰的编写第一个程序呢.如果你是第一次接触合泰 ...

  2. 合泰杯 | 合泰单片机入门 定时器详解(三)

    说在前面: 好久没有更新是因为一直在忙,想必关注这个系列博文的都是参加合泰公司比赛的小伙伴,后台有好些小伙伴给我私我什么时候更新,这里先道个歉,不好意思久等了.人啊,知道的越多就越迷茫,所以做一个&q ...

  3. Linux 网络编程详解二(socket创建流程、多进程版)

    netstat -na | grep "8080" --查看TCP/IP协议连接状态 //socket编程提高版--服务器 #include <stdio.h> #in ...

  4. Java高并发编程详解系列-Java线程入门

    根据自己学的知识加上从各个网站上收集的资料分享一下关于java高并发编程的知识点.对于代码示例会以Maven工程的形式分享到个人的GitHub上面.   首先介绍一下这个系列的东西是什么,这个系列自己 ...

  5. python编程入门与案例详解-Pythony运维入门之Socket网络编程详解

    Socket是什么? Socket 是电脑网络中进程间数据流的端点Socket 是操作系统的通信机制应用程序通过Socket进行网络数据的传输 首先,简单了解一下TCP通信过程: TCP三次握手(面试 ...

  6. 合泰杯——合泰单片机工程7之PWM输出

    合泰杯--合泰单片机工程7之PWM输出 前言 一.合泰系列的PWM实现方式? 二.PTM输出PWM波 二.具体实现过程 2.1配置PTM3C0和PTM3C1 2.3PWM的输出引脚功能选择 2.4呼吸 ...

  7. 合泰杯——合泰单片机工程6之定时器中断

    合泰杯--合泰单片机工程6之定时器中断 前言 一.定时器功能配置? 1.定时器初始化函数time2_Init(void) 2.中断函数配置DEFINE_ISR(time2,0x38) 二.主函数mai ...

  8. 合泰杯——合泰单片机工程5之串口通信

    合泰杯--合泰单片机工程5之串口通信 前言 一.usat例程分析? 二.编写程序 总结 前言 这一章更新的是关于合泰单片机串口通信的内容,用的是HT66F2390的芯片和板子,使用e-link下载程序 ...

  9. 合泰杯——合泰单片机工程之点亮LED

    合泰杯--合泰单片机工程1之点亮LED 前言 一.安装HT-3000IDE 二.新建一个工程 二.编写代码 总结 前言 因为团队中很多成员参加了下个学期合泰杯的比赛,所以想利用寒假的时间来整理一套例程 ...

最新文章

  1. Linux中查看所有正在运行的进程
  2. 前端学习(2766):生命周期函数
  3. JupyterHub on Kubernetes-Helm安装
  4. PearProject 安装指南
  5. Linux CentOS如何汉化系统
  6. java list类_java_List集合及其实现类
  7. 常用工具——Rsync
  8. Atitit.  Js 冒泡事件阻止 事件捕获   事件传递  事件代理
  9. Github上Stars最多的53个深度学习项目,TensorFlow遥遥领先(转)
  10. SfM(Structure from motion,运动恢复结构,从motion中实现3D重建。也就是从时间系列的2D图像中推算3D信息
  11. ubuntu清理磁盘空间的几个技巧
  12. 拥塞控制算法(Congestion Control)对比
  13. 鼓捣中兴的TCM SSX44B
  14. java spring 中 每小时一次_spring 定时任务的 执行时间设置规则
  15. Ecma 118th GA会议手记
  16. js日期格式转换Wed Mar 22 13:38:37 CST 2017 转换 为yyyy-mm-dd
  17. ProPresenter 6 for Mac破解版永久激活方法
  18. Yolov5—实现目标检测(win10)
  19. android数学公式编辑,数学公式编辑器下载-数学方程式编辑器APP 2.122 安卓版-我游网...
  20. js递归返回想要的值

热门文章

  1. mac本如何在文件夹中打开终端
  2. 安装CentOS7虚拟机(超详细)
  3. 游戏蓝牙耳机怎么选?游戏大神推荐四款好用的游戏蓝牙耳机
  4. 组态王弹出服务器正在运行中,组态王常见问题集锦(二)
  5. 互联网行业薪资现状,月薪2万属于低收入? 6千外派包吃住
  6. 大学想报计算机专业,暑假想要自学,有哪些建议?
  7. Windows——文件共享
  8. comsol图形无法即时显示问题
  9. 车载音频总线A2B介绍
  10. 私人网盘搭建之centos下安装cloudreve