![]() |
發布時間: 2020-7-22 20:27
正文摘要:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' $regfile = "m16def.dat" &nb ... |
我這個是0才是點亮,所有的燈的輸出都是0是亮1是滅,我也覺得這樣很別扭 |
紅日888 發表于 2021-6-21 00:06 那說明你的板上數碼管是共陽極的,位選硬是高電平時點亮相應位段碼。位選應從低位向高位逐次點亮。即: 0001 0010 0100 1000. 調節延時使數碼管穩定顯示。 |
本帖最后由 紅日888 于 2021-6-21 00:41 編輯 我手里的板子就是樓主給我的 |
我又試了一下,我手里的這個板子和你的正好相反 |
我手里的這個是0點亮,是不是就差這里 |
![]() |
共陽極: 位選為高電平(即1)選中數碼管, 各段選為低電平(即0接地時)選中各數碼段。 0xc0,//0 0xf9,//1 0xa4,//2 0xb0,//3 0x99,//4 0x92,//5 0x82,//6 0xf8,//7 0x80,//8 0x90,//9 那么實現累加應該是; Do Waitms 15 '刷新延遲 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 = &B0001 Portb = Value(gw + 10) '設置個位數值 Waitms 5 '只點亮十位數碼管PA2 Porta = &B0010 Portb = Value(sw + 10) '設置十位數值 Waitms 5 '只點亮百位數碼管PA1 Porta = &B0100 Portb = Value(bw + 10) '設置百位數值 Waitms 5 '只點亮千位數碼管PA0 Porta = &B1000 Portb = Value(qw + 10) '設置千位數值 Waitms 15 Loop |
taotie 發表于 2021-6-20 20:26 我還沒用過仿真,手里有一個現成的板子 |
我這是用實體機跑出來的 |
紅日888 發表于 2021-6-20 18:14 用仿真跑一邊你會發現一些問題 ![]() |
'我也來了 $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 |
各位大師好,BASCOM-AVR2.0.8.1軟件通過什么渠道能夠買到? |
100個也可以同時顯示![]() ![]() ![]() ![]() |
與ARDUINO類似,模塊化,更簡潔好用。![]() |
如果與Proteus 8 仿真軟件結合將更加順手~ |
如果與Proteus 8 仿真軟件結合將更加順手~~ |
Bascom avr 節省腦細胞的軟件![]() ![]() ![]() |