AVR单片机-- I/O口的使用

发布者:缘到泉最新更新时间:2020-02-28 来源: eefocus关键字:AVR  单片机  I  O口 手机看文章 扫描二维码
随时随地手机看文章

简介:本文章主要通过程序控制实现按键控制LED 灯的亮灭,按一下亮,再按一下灭,如此循环往复,并学习AVR 单片机的I/O口如何配置为输入和输出。

//文件名:delay_rest.c


//文件描述:实现按键控制LED 灯的亮灭,按一下亮,再按一


//下灭,如此循环往复。


//实验目的:学习AVR 单片机的I/O口如何配置为输入和输出


//当前版本号:V1.0


//---------------------------------------------------------------------


//----------------------------start------------------------------------


#include"iom88v.h"


#define uint16 unsigned int


#define uchar unsigned char


void delay (uint16 i);


void key_scnf(void);


uchar count_key=0;


void main(void)


{


// DDRC &= 0XFE; //PC0 input


DDRC |= 0x02; //PC1 output


while(1)


{


key_scnf( );


if(count_key)


{


PORTC |= 0x02; //PC1 = 1;


}


else


{


PORTC &= 0xfd; //PC1 = 0;


}


}


}


//-------------------------------------------------------------------


//函数原型:void delay (uint16 i);


//入口参数:uint16 i:延时变量


//出口参数:无


//功能:实现延时功能


//-------------------------------------------------------------------


void delay (uint16 i)


{


uchar j;


while(i--)


{


for(j=125;j>0;--j)


{


;


}


}


//-------------------------------------------------------------------


//函数原型:void key_scnf(void);


//入口参数:无


//出口参数:无


//功能:实现读键值功能


//-------------------------------------------------------------------


void key_scnf(void)


{


uchar c_pinb;


DDRB |= 0x20; //RB5设置为输出


PORTB |= 0x20; //RB5输出1


//delay(1); //延时一段时间


DDRB &= 0xdf; //RB5 设置位输入 =0


c_pinb = PINB;


if((c_pinb&0x20)!=0x20) //判断portb5的键有无按下


{


delay(1);//延时消抖


//DDRB |= 0x20; //RB5设置为输出//注释掉的部分,不必须


//PORTB |= 0x20; //RB5输出1


//delay(1); //延时一段时间


// DDRB &= 0xdf; //RB5 设置位输入 =0


c_pinb = PINB;


if((c_pinb&0x20)!=0x20) //真的按下


{


//DDRB |= 0x20; //RB5设置为输出


//PORTB |= 0x20; //RB5输出1


//delay(1); //延时一段时间


// DDRB &= 0xdf; //RB5 设置位输入 =0


//c_pinb = PINB;


while((c_pinb&0x20)!=0x20) //按键没弹起,等键释放;关键,开始时写成!=0出错


{


//DDRB |= 0x20; //RB5设置为输出


//PORTB |= 0x20; //RB5输出1


//delay(1); //延时一段时间


// DDRB &= 0xdf; //RB5 设置位输入 =0


c_pinb = PINB;


}


count_key += 1;


if(count_key==2)


count_key = 0;


}


}


}


关键字:AVR  单片机  I  O口 引用地址:AVR单片机-- I/O口的使用

上一篇:AVR单片机用于车载空调控制器的实用电路
下一篇:基于时间触发嵌入式系统的设计与应用(3)

推荐阅读最新更新时间:2024-11-18 16:08

CEVA扩展传感器融合产品线,推出高精度运动跟踪和方向检测的全新传感器中枢 MCU
CEVA扩展传感器融合产品线,推出用于高精度运动跟踪和方向检测的全新传感器中枢 MCU FSP201提供出色的定向和航向精度,为机器人、3D 音频、元宇宙硬件和通用 6 轴运动应用提供高质量、低成本并且不限制传感器的解决方案 无线连接技术、智能传感技术和集成 IP 解决方案的市场先驱者CEVA公司(纳斯达克股票代码: CEVA) 宣布扩展传感器融合产品系列,推出一款高性能、低功耗的传感器中枢 MCU产品FSP201,可为运动跟踪、航向和方向检测提供精准的传感器融合功能。FSP201非常适合使用传感器融合技术的消费类机器人和其他新兴智能设备,包括 XR 眼镜、3D 音频耳机以及物联网和元宇宙中广泛的 6 轴运动
[传感器]
CEVA扩展传感器融合产品线,推出高精度运动跟踪和方向检测的全新传感器中枢 <font color='red'>MCU</font>
恩智浦推出i.MX 8M系列高性能多媒体处理器
恩智浦半导体NXP Semiconductors N.V.(纳斯达克代码:NXPI)今日宣布推出i.MX 8M系列应用处理器,专为满足日益增长的音频和视频系统需求而设计,适用于智能家居和智能移动应用,例如OTT机顶盒、数字媒体适配器、环绕声、音箱、影音接收器、语音控制、语音助理、数字标牌,以及通用人机界面(HMI)解决方案。 智能家居的概念正迅速传播,不仅提高了消费者对音频和视频娱乐的期望,也改变了他们对消费电子设备的要求。恩智浦的i.MX 8M系列顺应了流媒体的主要转变趋势:在音频方面支持语音识别和联网扬声器;视频方面则采用4K高动态范围(HDR)技术,让设备外形更加小巧紧凑。 恩智浦的i.MX 8M系列处理器最多有四个1.5
[嵌入式]
IAR 与先楫半导体达成战略合作,全面支持先楫半导体高性能RISC-V MCU开发
(中国|上海)2023年6月14日 - 在Embedded World China首届展会举办期间,嵌入式开发软件和服务的全球领导者 IAR 与国产领先高性能MCU厂商先楫半导体(HPMicro)共同宣布达成战略合作协议: IAR 最新的 Embedded Workbench for RISC-V 版本将全面支持先楫HPM6000高性能RISC-V MCU系列,这是IAR 首次支持高性能通用RISC-V MCU产品系列。 IAR为先楫半导体的创新产品提供全面的开发工具支持,包括代码编辑、编译、调试等功能,帮助开发人员充分利用先楫半导体高性能RISC-V MCU的潜力。 先楫半导体是一家致力于高性能嵌入式解决方案的半导体公
[嵌入式]
IAR 与先楫半导体达成战略合作,全面支持先楫半导体高性能RISC-V <font color='red'>MCU</font>开发
MCS-51单片机外中断软件编程简介
简介:MCS-51单片机有多个中断源,以8051为例,有5个中断源,两个外中断、两个定时中断和一个串行中断,这一节我们讨论外中断软件编程。 外中断是由外部原因引起的中断,有两个中断源。即外中断0(INT0)和外中断1(INT1),中断请求信号由引脚P3.2(INT0)和P3.3(INT1)输入。 外中断请求信号有两种方式,一是电平方式,二是脉冲方式。可通过有关控制位的定义进行规定。 电平方式为低电平有效,只需在单片机的(INT0)和(INT1)中断请求输入端采样到有效的低电平时,就会激活外部中断。 脉冲方式则在脉冲的后负跳沿有效,即在相邻两个机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低即为有效中断请求。
[单片机]
MCS-51<font color='red'>单片机</font>外中断软件编程简介
16位单片机对AD9854控制的探讨
  AD9854优势和特点   300 MHz内部时钟速率   FSK、BPSK、PSK、线性调频、AM操作   两个集成式12位数模转换器(DAC)   超高速比较器,均方根抖动:3 ps   出色的动态性能:80 dB SFDR (100 MHz ± 1 MHz AOUT)   4×至20×可编程基准时钟乘法器   两个48位可编程频率寄存器   两个14位可编程相位偏移寄存器   12位可编程振幅调制和开关输出形键控功能   单引脚FSK和BPSK数据接口   通过输入/输出接口提供PSK功能   线性或非线性FM线性调频功能,具有单引脚频率保持功能   AD9854电路图   下面给出一种用AD9854开发高精度频率信号发
[单片机]
16位<font color='red'>单片机</font>对AD9854控制的探讨
PIC单片机滚动码解码C程序
//-------------------------------------------------------------------- // Interrupt based receive routine // // Compiled using HiTech PIC C compiler v.7.93 //******************************************************************** #define CLOCK 4 // MHz #define TE 400 // us #define OVERSAMPLING 3 #defi
[单片机]
MSP430单片机硬件知识-中断
中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。MSP430的几乎每个外围模块都能够产生中断,为MSP430针对事件(即外围模块产生的中断)进行的编程打下基础。MSP430在没有事件发生时进入低功耗模式,事件发生时,通过中断唤醒CPU,事件处理完毕后,CPU再次进入低功耗状态。由于CPU的运算速度和退出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态。 MSP430的中断分为3种:系统复位、不可屏蔽中断、可屏蔽中断。 (1)系统复位的中断向量为0xFFFE。 (2)不可屏蔽中断的中断向量为0xFFFC。响应不可屏蔽中断时,硬件自动将OFIE、NMIE、ACCVIE复位。软
[单片机]
意法半导体(ST)新的32位系列Cortex-M3内核微控制器重塑MCU市场
STM32 MCU系列大幅度提高了嵌入式系统的性价比和功耗水准 中国,2007年6月11日 — 世界领先的半导体制造厂商意法半导体(纽约证券交易所:STM)今天推出一个新的32位微控制器系列产品,新产品所用微处理器是ARM公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。ST是Cortex-M3内核开发项目的一个主要合作方,现在是第一个
[新品]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved