UHD使用教程2-IO

分享到:

无论哪种单片机和控制器,GPIO都是最基本的功能了。不同单片机控制IO的寄存器不同,甚至数量也不同。但无论是哪种芯片,IO都会有这样的基本功能:

  • 设置IO的输入输出方向
  • 设置IO的输出电平
  • 读取IO的输入单片机


有些单片机还会有一些特殊功能,如:

 

  • 设置IO的上拉电阻
  • 设置IO的数字/模拟输入方式

 


我们先从最简单的IO定义开始,在UHD中,使用下面方法定义一个IO:

#define NAME PORT, id


NAME是用户给IO设定的名称,PORT是IO所在的端口,通常是一个字母,id是IO在这个端口的序号。注意PORT和id之间是有一个逗号的。如:

#define LED B, 5

这个定义方法和一般程序不同,它看起来更复杂,但是更直观,容易使用。

在UHD中,使用下面函数来控制IO的方向和输出:

 

 

 

 

  • IO_dir(IO, dir),设置IO的输入输出方向
  • IO_set(IO),输出高电平
  • IO_clr(IO),输出低电平
  • IO_inv(IO),输出翻转

 


目前UHD在AVR上先针对Atmega48/88/168/328/648做了移植,所以我们以Arduino Nano 3开发板为例来做具体的演示,使用的MCU型号是Atmega328P,这也是目前最常见的型号。

一个简单的闪灯的例子,在proteus中创建新项目,可以直接复制一个Arduino的项目过来,这样速度比较快。




然后输入下面代码:

 

 

 

 

 

  1. #include "uhd.h"
  2.  
  3. // define LED pin
  4. #define LED     B, 5
  5.  
  6. int main()
  7. {
  8.     // set LED pin as output
  9.     IO_dir(LED, IO_OUTPUT);
  10.    
  11.     while(1)
  12.     {
  13.         // invert LED output
  14.         IO_inv(LED);
  15.         
  16.         // delay 500ms
  17.         delay_MS(500);
  18.     }
  19. }
复制代码

 

 


上面的程序使用了IO_dir设置IO的方向,IO_inv翻转LED的输出,delay_MS延时。

编译后,就可以在proteus8中仿真,看到LED闪烁了。甚至还可以通过proteus自带的avrdude这个软件下载程序到arduino开发板,观察实际的运行效果。

proteus8例程:https://atmel.eefocus.com/module/forum/thread-5096-1-1.html

 

 

更多Atmel及科技资讯请关注:  
Atmel中文官网:https://www.atmel.com/zh/cn/
Atmel技术论坛:https://atmel.eefocus.com/
Atmel中文博客:https://blog.sina.com.cn/u/2253031744
Atmel新浪微博:https://www.weibo.com/atmelcn

继续阅读
Microchip推出两大全新单片机系列

Microchip 8位MCU产品部副总裁Steve Drehobl表示:“新一代Arduino开发板选用ATmega4809器件,不仅加强了两家公司的合作关系,还为Arduino平台带来了CIP和智能模拟的优势”。

简述Microchip PIC16F87XA与PIC16F88X的五点不同之处

除了配备中文版数据手册以外,PIC16F88X系列单片机较之前的PIC16F87XA系列有了不少的改进,以PIC16F877A与PIC16F887粗略对比发现有以下几点不同

Microchip推出新款megaAVR单片机,结合特有耐辐射性能与低成本开发特性

为空间应用开发耐辐射系统不但需要很长的交期,而且成本非常高,因为系统必须具备极高的可靠性才能在恶劣的环境下长年工作。今天,NewSpace和其他重要的航空航天应用都要求加速开发,降低成本。为满足这些需求,Microchip Technology Inc.(美国微芯科技公司)推出了一种新型单片机(MCU),该器件结合了特有的耐辐射性能以及现有商用(COTS)器件的低成本开发特性。

如何用面包板搭建一个实验电路?

面包板是一种用于电路实验的器材,上面有很多孔,我们可以将元器件和导线插进去,组成我们需要的电路。如果发现电路有错,拔下元件和导线重新插接即可。电路做完后,所有元件还可以拔下来再次使用。

单片机控制板需要遵循哪些设计原则?

在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss