avr单片机流水灯汇编程序及电路图


这是电路图
 

本程序使用的avr单片机型号是m16 实现流水灯效果
下面是汇编程序源码:
 

/*
 * LEDlight.asm
 *运行环境  atmelage164M晶振流水灯共阳极
 *由于引脚输出电流20mA  输入电流最大能达到40mA
 *  Created: 2014/3/13 13:08:20
 *   Author: Wujie
 */ 
 .include "m16def.inc";包含atmelage16定义文件
 .def     temp1=r16;定义标识符temp1表示寄存器r16
 .def     count=r17;定义标识符count表示寄存器r17
.org$0000;上单复位后第一条执行语句地址
rjmpreset;第一条语句跳转到程序入口,跳过中断向量区
.org$002A;主程序入口地址
reset:;主程序标识符
ldir20,high(RAMEND);high获取RAMEND高字节的立即数,将立即数装入r20
outsph,r20;将获取到的堆栈高字节立即数送堆栈寄存器SP高字节中
ldir20,low(RAMEND);low获取RAMEND低位立即数,将立即数装入r20
outspl,r20;将获取到的堆栈低字节立即数送堆栈寄存器SP低字节中
sertemp1;将temp1置位,等于是将temp1设置为0b11111111
sec;将C标志位设置为1,下面将带进位位移
outddrc,temp1;将端口C全部设置为输出模式
outportc,temp1;将引脚C全部设置为高电平,即全部熄灭
ldir20,197;设置1秒延时
ldicount,0b01111111;将最左边LED点亮
loop:;循环闪烁
outportc,count;通过count来判断
rcalldelay                                        ;调用延时函数
rolcount                                        ;带进位循环左移            前面sec将标志位C设置为了1,即移位后填充为1
rjmploop                                          ;集训循环闪烁
delay:pushr20
del3:         pushr20
del2:         pushr20
del1:         decr20
brne    del1
popr20
decr20
brne    del2
popr20
decr20
brne    del3
popr20
ret
以上是avr单片机流水灯汇编程序及电路图的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>