您的位置 首页 资料

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

这是电路图本程序使用的avr单片机型号是m16实现流水灯效果下面是汇编程序源码:**LEDlightasm*运行环境atmelage164M晶振流水

这是电路图

本程序运用的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(RAMEND) ;high获取RAMEND高字节的当即数,将当即数装入r20
out sph,r20 ;将获取到的仓库高字节当即数送仓库寄存器SP高字节中
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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/253966.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部