基于AVR单片机I/O演示C语言程序

发布者:炉火旁的Yye最新更新时间:2015-05-14 来源: 51hei关键字:AVR单片机  IO演示  C语言程序 手机看文章 扫描二维码
随时随地手机看文章
 //程序流程:全亮->全灭->PD隔一步进->全亮->全灭->PD隔二步进->全亮->全灭->PB全亮->pb0置位->pb0清零->PB0反转->全灭->(循环)   
   
// Target : M8   
// Crystal: 11.059Mhz   
   
#include    
#include    
   
//起始全亮   
void port_init(void)   
{   
 PORTB = 0x00;   
 DDRB  = 0xFF;   
 PORTC = 0x00;    
 DDRC  = 0x7F;   
 PORTD = 0x00;   
 DDRD  = 0xFF;   
}   
   
//延时函数,大约1ms;   
void delay(char tim)   
{   
 unsigned int i,j;   
 for(i=0;i     for(j=0;j<10000;j++);   
}   
   
//led全亮   
void led_on(void)   
{   
 PORTB = 0x00;   
 PORTC = 0x00;   
 PORTD = 0x00;   
    
 delay(5000);   
}   
//led全灭   
void led_off(void)   
{   
 PORTB = 0xFF;   
 PORTC = 0xFF;   
 PORTD = 0xFF;   
    
 delay(5000);   
}   
//PB隔1步进   
void pd_1(void)   
{   
 char i;   
 for (i = 0; i < 8; i++)   
 {   
     PORTB = ~(1 << (i));//位操作结合移位操作   
     delay(5000);   
 }   
}   
//PB隔2步进   
void pd_2(void)   
{   
 char i;   
 for (i = 0; i < 8; i+=2)   
 {   
     PORTB = ~(1 << (i));//位操作结合移位操作   
     delay(5000);   
 }   
}   
   
//call this routine to initialise all peripherals   
void init_devices(void)   
{   
 //stop errant interrupts until set up   
 CLI(); //disable all interrupts   
 port_init();   
   
 MCUCR = 0x00;   
 GICR  = 0x00;   
 TIMSK = 0x00; //timer interrupt sources   
 SEI(); //re-enable interrupts   
 //all peripherals are now initialised   
}   
   
//   
void main(void)   
{   
 init_devices();   
    
 while(1)   
 {   
  led_on();   
  led_off();   
     
  led_on();   
  led_off();   
     
     
  pd_1();   
     
  led_on();   
  led_off();   
     
     
  pd_2();   
     
  led_on();   
  led_off();   
     
     
  //赋值(会给所有的位以特定值),使pb0为0,led亮;   
  PORTB = 0xFE;   
  delay(5000);   
  //置位(不影响其他位),使pb0为1,led灭;   
  PORTB |= 0x01;   
  delay(5000);   
  //清零(不影响其他位),使pb0为0,led亮;    
  PORTB &= ~0x01;   
  delay(5000);   
  //反转(不影响其他位),使pb0为1,led灭;   
  PORTB ^= 0x01;   
  delay(5000);   
 }   
}  
关键字:AVR单片机  IO演示  C语言程序 引用地址:基于AVR单片机I/O演示C语言程序

上一篇:avr单片机驱动max7219的程序
下一篇:AVR单片机i/o(输入/输出)端口详解

推荐阅读最新更新时间:2024-03-16 14:02

基于AVR单片机的U盘MP3设计与实现
  随着电子技术的发展,MP3播放器向着大容量,小型化发展。但播放器与存储器一体化的设计使得MP3难以扩充容量以容纳更多的歌曲。将播放器与存储器分离是MP3目前发展的另一方向。本文介绍了一种利用AVR控制以HOST USB方式读取U盘的音乐文件并将其解码的播放的解决方案。本方案同时具备读取音乐标签,U盘电子书,贪吃蛇游戏等功能,具有商业价值。   1 系统功能简介   本设计主要完成对存储在U盘中的音乐及文本等信息的读取操作,能够完成U盘内MP3音乐数据的播放及标签信息的显示,实现播放器与存储器分离,并在此基础上完成电子书,贪吃蛇游戏等功能。   2 系统芯片选择   本设计MCU选择ATMEL公司的ATmega64作为主控芯
[单片机]
基于<font color='red'>AVR单片机</font>的U盘MP3设计与实现
AVR单片机的优越性
什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机? AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源
[单片机]
基于MSP430单片机驱动NRF24L01无线模块接收C语言程序
NRF24L01无线模块在此程序中可以直接与MSP430单片机直接相连,单片机的电压和无线模块的电压都是3.3V, 无需加阻流电阻。通信接口为单片机模拟的SP口,LC12864液晶屏主要是用作把接收到数据通过其显示出来。 程序测试通过,可用! //p4口为液晶屏 //p1口中断 //nRF24L01无线通信 //p5.0 csn //p5.1 mosi //p5.3 sck //p5.2 miso //p1.2 irq //p5.7 ce //ST7920串行控制128*64液晶 //rst p4.3 复位 //rs p4.0 片选 //rw p4.1 数据 //E p4.2 时钟 #include msp430
[单片机]
任务7:74HC595的使用方法
本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。 参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版 本文介绍74HC595的使用方法。 一、认知74HC595内部工作原理 74HC595时一款漏极开路输出的CMOS移位寄存器,输出端为可控的三态输出,亦能串行输出控制下一级级联芯片,其移位时钟频率高达25MHz。 二、74HC595引脚的简要说明 三、74HC595内部原理形象理解图 四、认知24路LED模块电路控制原理
[单片机]
任务7:74HC595的使用方法
AVR单片机入门一:单片机嵌入式系统的结构
一、单片嵌入式系统的结构 单片嵌入式系统一般包含硬件与软件两个部分,而硬件部分又分为单片为控制芯片(即单片机)和外围电路,外围电路又分为基本系统电路与接口电路,接口电路又分为前向通道接口电路、后向通道接口电路、交互通道接口电路与数据通信接口电路。 1、基本系统电路 基本系统电路是指满足单片机系统运行所需的基本电路。比如时钟电路、复位电路、系统供电电路、驱动电路、扩展的存储器等。 2、前向通道接口电路主要是输入接口 前向通道接口电路主要是输入接口,通常是指各种物理量的测量传感器、变换器输入通道。常见的有传感器、信号调理器、模/数转换器ADC、开关输入、频率测量接口等。 3、后向通道接口电路主要是输出接口
[单片机]
51单片机电子时钟C语言程序
以 电子时钟 为结尾篇,附上代码。代码有些不怎么完美。但终究是差不多写出来了。结合了IIC通信,中断定时器的使用,键盘使用,还有液晶的显示。 #include reg52.h sbit RS = P2^7; sbit RW = P2^6; sbit E = P2^5; sbit Sda = P2^0; sbit Scl = P2^1; sbit keyleft = P1^0; sbit keyup = P1^1; sbit keydown = P1^2; sbit keyright = P1^3; unsigned char sec=0,min=0,hour=0; unsigned char Year = 2012
[单片机]
AVR单片机实现智能插座节能的设计
0 引言 计算机外部设备(如打印机、扫描仪、音响等)的待机能耗不但增加了消费者的日常电费开支,也使电力资源浪费极大。该设计的计算机智能节能插座利用主机的开机和关机来带动其他设备的开或关,使其接口设备待机能耗为零,能够减少计算机及其外设所产生的辐射,以此达到节能和环保功效;同时还具备有分段定时开关的功能。该智能插座也可以通过功能转换作为普通插座使用,不影响其他设备的使用。 1 智能插座的设计 1.1 智能插座的硬件结构 计算机智能节能插座的硬件结构图如图1所示。该控制器以AVRmega 48为控制核心,外围电路主要由电流采样电路、模/数转换参考电压电路、状态显示电路、键盘输入电路和实时时钟构成。电流采样电路用于检测计算机的运行状
[单片机]
<font color='red'>AVR单片机</font>实现智能插座节能的设计
51单片机的走马灯C语言程序
#include REG52.H unsigned char RunMode; void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i count;i++) for(j=0;j 120;j++); } unsigned char code LEDDisplayCode = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //0~7 0x80,0x90,0x88,0x8
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved