#include
void Delay(unsigned int T)
{
unsigned int i,j;
for (i=0;i for (j=0;j<100;j++)
asmvolatile ("nop"); //汇编指令,让单片机运行空指令
}
void main()
{
DDRA=0XFF;
//DDRA=0B11111111; //定义PA端口全为输出
DDRE = 0x04;
PORTE= 0X04;//开发板控制LED时需要PE2使能端置1
while (1)
{
PORTA=0X00;
Delay(1000);
PORTA=0XFF;
Delay(1000);
}
}
流水灯(IO 作输入口使用)
#include
void delay(unsigned int t)
{
unsigned int i,j;
for (i=1;i for (j=1;j<10;j++)
asm volatile ("nop");
}
int main()
{
DDRE=0X04;
PORTE=0X04;
DDRA=0XFF;
delay(100);
PORTA=0XFF;
delay(100);
DDRD=0X00;
while(1)
{
unsigned char a;
a=PIND;
delay(1000);
if (0xff-a==0b10010001)
{
delay(100);
PORTA=0X00;
delay(100);
}
if (0xff-a==0b10010010)
{
delay(100);
PORTA=0XFF;
delay(100);
}
}
return 0;
}
关键字:ATmega128
引用地址:
ATmega128 IO 学习
推荐阅读最新更新时间:2024-03-16 15:46
stm8 io口重映射
STM8S003F3端口可以设置重映射,如pin16的PC6管脚,默认复用功能是SPI_MOSI功能,可以重映射为TIM1_CH1,也就是timer1的1通道。映射方式并不像STM32那样有个AFR寄存器来配置,而是配置Option bytes字节,如下图 也就是OPT2寄存器,注意是STM8S003F3系列的,其它的芯片配置字节是不一样的。 比如要配置PC6引脚为定时器1PWM输出比较通道TIM_CH1, 配置方法如下: OPT2是个8位的寄存器,配置的方式比较特别,类似FLASH操作,有两种方法配置,一种是通过STVP进行配置,也就是通过ST的烧录软件界面那里配置(或者IAR软件里选项字节配置); 另一
[单片机]
MC9S12G128模块化分层化软件架构之二——IO驱动
源码地址://download.csdn.net/download/Sure_gengjia/1253037 PDF文档://download.csdn.net/download/Sure_gengjia/12530929 MC9S12G128数据手册://download.csdn.net/download/Sure_gengjia/12530918 1. overview 目的 本文档用于起点开发板的PORT模块软件编写说明。 2. 软件分层架构 软件分为底层驱动层——driver层,中间件层(本软件中称之为modules)和应用层——application。 2.1 driver层 与MC
[单片机]
【STM32H7教程】第41章 STM32H7的BDMA应用之控制任意IO做PWM和脉冲数控制
41.1 初学者重要提示 学习本章节前,务必优先学习第39章和40章,需要对DMAMUX,BDMA的基础知识和HAL库的几个常用API有个认识。 使用半传输完成中断和传输完成中断实现的双缓冲效果跟BDMA本身支持的双缓冲模式实现的效果是一样的。只是最大传输个数只能达到32767次。 相比定时器本身支持的PWM,这种方式更加灵活,可以让任意IO都可以输出PWM,而且方便运行中动态修改输出状态。 41.2 定时器触发BDMA驱动设计 定时器触发DMAMUX,控制BDMA让GPIO输出PWM的实现思路框图如下: 下面将程序设计中的相关问题逐一为大家做个说明。 41.2.1 定时器选择 使用BDMA的话,请求信号都是
[单片机]
2.0 MSP430的IO配置
MSP430单片机一般有多组IO口,P1、P2、P3、P4、P5和P6等。在单片机所有的端口都有控制输入输出方向和进行输入、输出的能力。其中P1、P2组端口具有中断寄存器,能够响应外部中断,大部分端口拥有第二功能。每一个端口都有PxDIR(信号方向)、PxIN(输入)、PxOUT(输出)和PxSEL(功能选择)4个寄存器。P1、P2 可以配置为输入信号上升沿或者下降沿触发中断,但固定的电平不会引起中断,中断所使用的寄存器为:PxIE(中断使能)、PxIES(中断触发沿)、PxIFG(中断标志)。还有一个寄存器PxREN,这个寄存器主要是配置单片机内部的上下拉电阻,注意,早期的单片机并没有内部上下拉电阻。 PxDIR:信号方向控制
[单片机]
[单片机框架] [onewire] 利用单线协议来点亮WS2812X 模拟IO 兼容带OS
ws2812x数据传输时间 T0H 0 码,高电平时间 220ns~380ns T0L 0 码,低电平时间 580ns~1.6µs T1H 1 码,高电平时间 580ns~1.6µs T1L 1 码,低电平时间 220ns~420µs RES 帧单位,低电平时间 280µs 以上 对于ARM_M平台 @24M 1个NOP:(1/24000000)100010001000==41.67ns __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); 5个NOP 41.675 = 208.35ns (加上代码执行时间,勉强达到ws2812x标准) 对于n76e003平台 @16M 1个nop 占用
[单片机]
一个单片机IO口与74HC573及数码管显示应用
这两天总有人问数码管与74HC573的事,现在将数码管与74HC573正确连接图发给大家,并附上代码。代码是阿迪用其他软件编写的,我用ICCV7稍改了一下.发这个代码的另一个意义是他这个代码写的很精练,有很好的启发作用. 单片机源码: #include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int uchar du ={0x3f,0x06,0x5b,0x4f,0x66,0x6d}; void delay(uint S) { uint i,j; for( i=0;i S;i
[单片机]
PIC单片机以及51和AVR单片机的IO口操作方法解析
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。 一.51单片机IO口的操作 51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。 #i nclude sbit bv=P2^0;//定义位变量
[单片机]