⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13跑马灯渐亮渐暗.asm

📁 这是2008年stc程序个人设计汇总
💻 ASM
字号:
;这个程序的重要意义在于,大家可以学习到以下知识;通过程序来控制LED或者数码管的亮度,来达到协调视觉\节能省电等目的.
org 00h
mov r0,#255;开始时让点亮的时间最长
mov r1,#00;开始时让熄灭的时间最短

jmp main





main:
setb p1.0
setb p1.1
setb p1.2
setb p1.3
setb p1.4
setb p1.5
setb p1.6
setb p1.7
inc r1
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定
call ys100    ;调用熄灭延时,每次延时的长短为r1中的数值大小绝定

clr p1.0
clr p1.1
clr p1.2
clr p1.3
clr p1.4
clr p1.5
clr p1.6
clr p1.7

dec r0
call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定
call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定
call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定

call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定
call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定
call ys200    ;调用点亮延时,每次延时的长短为r1中的数值大小绝定






jmp main

ys100:
mov 30h,r1
djnz 30h,$      ;这句话的意思是30h中的数减1不等于0就跳到当前行,即原地踏步,记住:这名话要值300元,如果你将来因为不懂这个美元,而问我,我会向你收300元学费的
ret


ys200:
mov 30h,r0
djnz 30h,$     ;这句话的意思是30h中的数减1不等于0就跳到当前行,即原地踏步,记住:这名话要值300元,如果你将来因为不懂这个美元,而问我,我会向你收300元学费的
ret



end

说明:灯长亮为最亮,灯长灭为最暗,利用人的视觉暂留特性,让灯快速的亮灭交替,通过改变亮灭的时间就可以改变灯的明暗


关于收学费,的确,很多事情都是很简单的,你不懂的话并且自学也不会的话,就只有交钱跟别人学,五一电子因为$而收学费是来者不拒,这不能怪我们贪财
这只能怪很多单片机教材并不向大家讲这个$符号的意思,或者虽然有讲,但是大家不去认真看,不去试,不去想,这才被本站捡了个便宜.


以上延时程序我随便复制了几下,大家可以自己写一个循环程序,让程序短小


 以上程序不能算是渐亮渐暗,实际是突亮,如果要实行渐亮,需要在数值加1到255后,再变成减1,减1到0后再变成加1,这个程序就请大家自己去写吧,
  如果请本站写的话,是要收钱的,不便处请大家谅解哟.


  还有,人眼的亮度感觉并不是和亮暗的时间完全成比例的,这有存在一个非线性的关系,大家可以实践.
  如要要制作一个亮度调节功能的话,也就是要修改寄存器的数值为某一固守数值

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -