|
阅读本教程前,请先阅读: (教程1). LGT开发环境的建立(AVR Studio 4.19 + AVRGCC 20100110)
本实验需要使用的工具:
1. LGT 专用 JTAG ICE 仿真下载器(不能使用AVR JTAG ICE)
2. LGT演示板
3. 外接电源(5V), 也可不接,因为JTAG的USB接口也能为演示板提供电力
4. 自行焊接8个LED指示器
LGT头文件可以在这里下载: (教程4) LGT的头文件(原AVR代码,仅需要修改头文件就改成LGT)
一、LGT编程,新建工程项目
AVR STUDIO 4.19里, Project --> New Project 建立新工程
项目类型选择 AVR GCC, 项目名称 test_01 放在 c:\amoLGT目录下
开发工具选择 JTAG ICE, 芯片随便选择,无论 ATMELGA16 或 162 ,128 等均可。
(由于ATMEGA8没有JTAG ICE接口,故无法选择它)
点击“Finish”
将以下的代码COPY 到项目的 test_01.c 里。
熟悉AVR的人应该会狂喜: 下面的代码除了 #include <iolgt8f0xa.h> 这句头文件指向LGT外, 其它的所有语句,100%是与AVR相同的。
也就是说,AVR的代码,只需要修改一句头文件,就能立即应用于LGT上。
- #include <io.h> // GCC的标准io.h
- #include <iolgt8f0xa.h> // LGT的头文件
- void delay_ms(int ms){ //纯粹是用死循环来实现延时, 仅用于测试目的
- int i;
- for( ; ms >=1 ; --ms){
- for(i = 0; i<250;++i){
- asm("nop"); //引用汇编指令 "nop"
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- }
- }
- }
- int main(){ //入口地址
- int i=0; //用来做移动标志
- DDRA = 0XFF; //设置A为输出模式
- PORTA = 0XFF; //A端口全部输出为高电平.
-
- delay_ms(250); //延时一会
-
- PORTA = 0X00;
-
- delay_ms(250);
- while(1){ //超级循环
-
- PORTA = 0X01; //开始右移.端口输出为OB0000 0001开始
- for(i=0;i<8;++i){ //循环8次
- delay_ms(250);
- delay_ms(250);
- PORTA = PORTA<<1; //端口右移一位
- }
- delay_ms(250);
- delay_ms(250);
-
- PORTA = 0X80; //开始左移.端口输出为OB1000 0000开始
- for(i=0;i<8;++i){
- delay_ms(250);
- delay_ms(250);
- PORTA = PORTA>>1; //端口右移一位
- }
- delay_ms(250);
- delay_ms(250);
- PORTA = 0XFF; //端口A输出为OB1111 1111
- delay_ms(250);
- delay_ms(250);
- PORTA = 0XF0; //端口A输出为OB1111 0000
- delay_ms(250);
- delay_ms(250);
- PORTA = 0X0F; //端口A输出为OB0000 1111
- delay_ms(250);
- delay_ms(250);
- PORTA = 0XFF; //端口A输出为OB1111 1111
- delay_ms(250);
- delay_ms(250);
- }
- }
复制代码
二、编译,生成仿真与烧录文件
进入菜单 Project ---> Configuration Options
General 选项中,唯一需要芯片的是芯片选 ATmega164P, 这点非常重要,不要选错,因为这一款LGT芯片(LGT8F08A)的寄存器位置是与 ATMEGA164P 相同的。
顺便检查一下(教程1)中描述的 Include Direcories 是否配置好
也顺便检查一下是否已经取消了 AVR STUDIO 4.19 的 AVR ToolChain, 并且已经重新指定了 avr-gcc.exe, make.exe 的位置:
Build --> Build All 编译
振奋人心的结果出来了! 编译通过,生成了 test_01.elf 仿真文件,及 test_01.hex 烧录文件。
三、烧录(下载)
点击工具栏里的 CON(连接)按钮。
选择JTAG ICE 工具,我的电脑是影射到COM2端口(你可以选择 AUTO, 或自行到电脑硬件资料里查看映射的端口,或修改端口编号)
我们准备进行烧录,芯片型号随便选一个就行,不会影响烧录的结果。
烧录的文件指向刚才生成的地方:C:\amoLGT\test_01\default\test_01.hex
点击“Program” 出现烧录成功的信息:
关闭这个窗口, 然后按演示板上的 RESET 按钮, 就能看到流水灯的效果。
四、仿真
点击工具栏上的仿真开始按钮
其它仿真的按钮生效, 可以进行仿真操作!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|