×
单片机 > 单片机程序设计 > 详情

AVR单片机闪烁灯程序-第一个程序

发布时间:2020-06-04 发布时间:
|

自从无线通信完成后我没做什么,而是把AVR的学习列上日程,AVR的学习我是纯手工打造,所有的实验板全部自己焊接,因为用51习惯了,他是那么的方便,到AVR这却是一件很简单的事情显得如此复杂,那下载来说吧,51的ISP是通过串口直接写到FLASH,而AVR的还要设置熔丝位,如果搞不好芯片锁死就完蛋了,至少我的水平是够呛解决的。遇到的第一个问题是价格,AVR的价格比51的贵将近2-5倍,我选的是16L,因为他的FLASH足够我这种菜鸟用的,16KB,另一个是他的宽电压,以前51就没有这个优势,最重要的其实学哪种都无所谓,编程吗,其实就是一个中心思想的问题,只要你有好的算法,用什么语言描述就无关紧要了,关键AVR有个架构是不同于51的,那就是哈佛结构,这种结构要比51 速度快几倍,我花了大约一个星期的时间看了内部的架构,至于汇编我大体略了下,因为以后的程序我主要基于C语言的,学单片机最重要的明白他的内部架构,硬件配置,然后开发流程,我用的USBASP,光驱动换了4次,重装了3次,哎!曲折啊。好不容易搞好了,又有一个口PC口不正常。原因是JTAGE开了,关了就正常了,现在我只迈了一小步----对他的开发流程大体了解、板子焊完了、下载调通了,熔丝设置完毕,下一步就要熟悉软件,抽象到编程和移植程序,还有很多问题要解决,困难也肯定肯定很多!但是还是那句话,不积跬步,无以至千里,不积小流,无以成江海,九层之台,起于垒土;千里之行,始于足下。坐而言,不如起而行,路虽远,行则将至;事虽难,做则必成。

/*    AVR闪烁灯!!0412 第四项目部宿舍*/
#include
#include
#define uchar unsigned char 
#define uint  unsigned int
/*下面是位操作的宏定义*/
#define set_bit(a,b)   a|=(1<#define clr_bit(a,b)   a&=~(1<void delay(void)//延时函数
{
      uint i,j;
   for(i=240;i;i--)
  
   for(j=240;j;j--);
      

}
void main (void)//主函数
{
uchar b;
DDRA=0xff;//初始化端口A
PORTA=0x00;//初值设定为00H
while(1)
{
set_bit(PORTA,0);//将PA口得第0位置1;
delay();
clr_bit(PORTA,0);//将PA口的第0位置0;
delay();

}

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向