本帖最后由 紅日888 于 2021-6-21 00:42 編輯
'這程序0是高電平
$regfile = "m16def.dat" 'ATMega16 單片機
$crystal = 8000000 '8兆赫晶振
Dim I As Long , L As Long
Dim Gw As Integer , Sw As Integer , Bw As Integer , Qw As Integer '個位十位百位千位
'PortB 端口的8個引腳連接這個8個LED,
Config Porta = Output
Config Portb = Output
'=======================================================
Dim Value(19) As Byte '數組中存的是0-9數字對應亮燈的值
Value(10) = &HC0 '數字"0"對應的數碼管設置值
Value(11) = &HF9 '數字"1"對應的數碼管設置值
Value(12) = &HA4 '數字"2"對應的數碼管設置值
Value(13) = &HB0 '數字"3"對應的數碼管設置值
Value(14) = &H99 '數字"4"對應的數碼管設置值
Value(15) = &H92 '數字"5"對應的數碼管設置值
Value(16) = &H82 '數字"6"對應的數碼管設置值
Value(17) = &HF8 '數字"7"對應的數碼管設置值
Value(18) = &H80 '數字"8"對應的數碼管設置值
Value(19) = &H90 '數字"9"對應的數碼管設置值
Do
Waitms 10 '刷新延遲
L = L + 1 '計算累加
I = L \ 5 '降低數據變化頻率
I = I Mod 10000 '數值到10000后清0
Qw = I \ 1000 '計算千位
Bw = I Mod 1000 '計算百位
Bw = Bw \ 100
Sw = I Mod 100 '計算十位
Sw = Sw \ 10
Gw = I Mod 10 '計算個位
'只點亮個位數碼管PA3
Porta = &B0111
Portb = Value(gw + 10) '設置個位數值
Waitms 1
'只點亮十位數碼管PA2
Porta = &B1011
Portb = Value(sw + 10) '設置十位數值
Waitms 1
'只點亮百位數碼管PA1
Porta = &B1101
Portb = Value(bw + 10) '設置百位數值
Waitms 1
'只點亮千位數碼管PA0
Porta = &B1110
Portb = Value(qw + 10) '設置千位數值
Waitms 1
Loop
End
|