锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2024-05-04 07:37:09


这是电路图

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

/* * LEDlight.asm * 运行环境 atmelage16 4M晶振 流水灯共阳极 * 由于引脚输出电流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 ;上单复位后第一条执行语句地址 rjmp reset ;第一条语句跳转到程序入口,跳过中断向量区 .org $002A ;主程序入口地址 reset: ;主程序标识符 ldi r20,high(R ND) ;high获取RAMEND高字节的立即数,将立即数装入r20 out sph,r20 ;将获取到的堆栈高字节立即数送堆栈寄存器 高字节中 ldi r20,low(RAMEND) ;low获取RAMEND低位立即数,将立即数装入r20 out spl,r20 ;将获取到的堆栈低字节立即数送堆栈寄存器SP低字节中 ser temp1 ;将temp1置位,等于是将temp1设置为0b11111111 sec ;将C标志位设置为1,下面将带进位位移 out ddrc,temp1 ;将端口C全部设置为输出模式 out portc,temp1 ;将引脚C全部设置为高电平,即全部熄灭 ldi r20,197 ;设置1秒延时 ldi count,0b01111111 ;将最左边LED点亮
loop: ;循环闪烁 out portc,count ;通过count来判断 rcall delay ;调用延时函数 rol count ;带进位循环左移 前面sec将标志位C设置为了1,即移位后填充为1 rjmp loop ;集训循环闪烁

delay: push r20 del3: push r20 del2: push r20 del1: dec r20 brnedel1 pop r20 dec r20 brnedel2 pop r20 dec r20 brnedel3 pop r20 ret
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章