本帖最后由 taotie 于 2021-1-19 13:31 编辑
rem Main.bas file generated by New Project wizard
rem
rem Created: 周一 1月 18 2021
rem Processor: ATmega8
rem Compiler: BASCOM-AVR
rem Write your code here
$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 32
'-------------------------------------------------------------点亮彩带长度:
const N_LED =64 '阵列中LED的数量(自定义)
dim n as word '计数器
'颜色
dim g(N_LED) as word '绿色部分
dim r(N_LED) as word '红色部分
dim b(N_LED) as word '蓝色部分
'-----------------------------------------------------------------配置:
Config PinB.2 = Output '新像素:数据输入
'------------------------------------------------------生成LED阵列RESET:
reset portB.2 'T_RST = Lo = RESET = 10000 ns
waitus 10
'--------------------------------------------------------------------起始值:
'颜色的起始值可能对效果起决定性作用(可以根据需要更改)
for n = 1 to N_LED
g(n) = 2*n
b(n) = 255- G(n)
r(n) = 3 * G(n)
next n
'-----------------------------------------------------------------主循环:
do
'############################################################################
' 这是使用任何算法来执行
' 更改LED的颜色并更改速度:
waitms 25
'改变速度
for n = 1 to N_LED '更改所有LED的颜色
g(n) = g(n) +1
r(n) = r(n)+ 3
b(n) = b(n)+ 5
next n
'############################################################################
'---------------------------------------------------创建LED阵列重置:
reset portB.2 'T_RST = Lo = RESET = 10000 ns
waitus 10
'-----------------------用新颜色描述整个LED阵列:
For n = 1 to N_LED
$include "../ws28_4.BAS" '将每个LED的绿色、红色和蓝色字节分离并输出到24位数据流中:
next n
'----------------------------------------------------------------------------
Loop
End
工程文件用Proteus 8 .9打开
ws2812.zip
(23.69 KB, 下载次数: 22)
|