小弟一名单片机白痴,想问问,atmega16单片机如何写入程程呢?有程序可是不会烧入程序呢…

小弟一名单片机白痴,想问问,atmega16单片机如何写入程程呢?有程序可是不会烧入程序呢…,第1张

atmega16单片机片内ISP Flash 允许程序存储器通过ISP 串行接口,或埋猜者通用编程器进行编程,段轿也可以通过运行弯燃型于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。

/*******************************************

文件:sld.C

环境:编译为ICC AVR6.25A,仿真为AVR Studio4.14

硬件:ATMEGA16芯片逗州

日期:2008年12月10日

功能:驱动孙友开发板上的LED。流水灯

备注:

/******************************************/

#include <D:\开发板\OK100E\程序\avr程序\OK100E.H>

/*******************************************

函数名称: One_led

功能: 点亮或者熄灭指定的LED

参数: number--指定的LED

light--为TRUE的时候为点亮LED,为FALSE的时候为熄灭LED

返回值 : 无

/********************************************/

void One_led(uchar number,uchar light)

{

uchar i

if(light==TRUE) //点亮 *** 作

{

PORTB&=~BIT(number) //输出数据

PORTC|=BIT(LEDLK) //更新数据

Delayms(5) //调整时序

PORTC&=~BIT(LEDLK) //锁存数据

}

else

{

PORTB|=BIT(number) //输出数据

PORTC|=BIT(LEDLK) //更新数据

Delayms(5) //调整时序

PORTC&=~BIT(LEDLK) //锁存数据

}

}

/*******************************************

函数名称: All_led

功能: 点亮或者熄灭全部LED

参数: light--为TRUE的时候为点亮全部LED,为FALSE的时候为熄灭全部LED

返回值 : 无

/********************************************/

void All_led(uchar light)

{

if(light)

{

PORTB&=~ALLLED//ALLLED=0xFF,使全部LED都亮

PORTC|=BIT(LEDLK) //输出数据

Delayms(5) //调整时序

PORTC&=~BIT(LEDLK) //锁存数据

}

else

{

PORTB|=ALLLED //ALLLED=0xFF,使则指槐全部LED都灭

PORTC|=BIT(LEDLK) //输出数据

Delayms(5) //调整时序

PORTC&=~BIT(LEDLK) //锁存数据

}

}

/*******************************************

函数名称: main

功能: 流水灯

参数: MS--点亮相邻LED的时间间隔,单位是毫秒

返回值 : 无

/********************************************/

void main()

{

Board_init()

PORTC|=BIT(BEEP)

while(1)

{

uchar i

for(i=0i<8i++) //循环8次,8个LED依次点亮

{

All_led(FALSE)//全部熄灭

One_led(i,TRUE)//点亮指定的LED

Delayms(200) //延时指定的时间

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12523334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存