![]() |
發(fā)布時間: 2020-7-22 20:27
正文摘要:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' $regfile = "m16def.dat" &nb ... |
我這個是0才是點亮,所有的燈的輸出都是0是亮1是滅,我也覺得這樣很別扭 |
紅日888 發(fā)表于 2021-6-21 00:06 那說明你的板上數(shù)碼管是共陽極的,位選硬是高電平時點亮相應(yīng)位段碼。位選應(yīng)從低位向高位逐次點亮。即: 0001 0010 0100 1000. 調(diào)節(jié)延時使數(shù)碼管穩(wěn)定顯示。 |
本帖最后由 紅日888 于 2021-6-21 00:41 編輯 我手里的板子就是樓主給我的 |
我又試了一下,我手里的這個板子和你的正好相反 |
我手里的這個是0點亮,是不是就差這里 |
![]() |
共陽極: 位選為高電平(即1)選中數(shù)碼管, 各段選為低電平(即0接地時)選中各數(shù)碼段。 0xc0,//0 0xf9,//1 0xa4,//2 0xb0,//3 0x99,//4 0x92,//5 0x82,//6 0xf8,//7 0x80,//8 0x90,//9 那么實現(xiàn)累加應(yīng)該是; Do Waitms 15 '刷新延遲 L = L + 1 '計算累加 I = L \ 5 '降低數(shù)據(jù)變化頻率 I = I Mod 10000 '數(shù)值到10000后清0 Qw = I \ 1000 '計算千位 Bw = I Mod 1000 '計算百位 Bw = Bw \ 100 Sw = I Mod 100 '計算十位 Sw = Sw \ 10 Gw = I Mod 10 '計算個位 '只點亮個位數(shù)碼管PA3 Porta = &B0001 Portb = Value(gw + 10) '設(shè)置個位數(shù)值 Waitms 5 '只點亮十位數(shù)碼管PA2 Porta = &B0010 Portb = Value(sw + 10) '設(shè)置十位數(shù)值 Waitms 5 '只點亮百位數(shù)碼管PA1 Porta = &B0100 Portb = Value(bw + 10) '設(shè)置百位數(shù)值 Waitms 5 '只點亮千位數(shù)碼管PA0 Porta = &B1000 Portb = Value(qw + 10) '設(shè)置千位數(shù)值 Waitms 15 Loop |
taotie 發(fā)表于 2021-6-20 20:26 我還沒用過仿真,手里有一個現(xiàn)成的板子 |
我這是用實體機跑出來的 |
紅日888 發(fā)表于 2021-6-20 18:14 用仿真跑一邊你會發(fā)現(xiàn)一些問題 ![]() |
'我也來了 $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 '數(shù)組中存的是0-9數(shù)字對應(yīng)亮燈的值 Value(10) = &HC0 '數(shù)字"0"對應(yīng)的數(shù)碼管設(shè)置值 Value(11) = &HF9 '數(shù)字"1"對應(yīng)的數(shù)碼管設(shè)置值 Value(12) = &HA4 '數(shù)字"2"對應(yīng)的數(shù)碼管設(shè)置值 Value(13) = &HB0 '數(shù)字"3"對應(yīng)的數(shù)碼管設(shè)置值 Value(14) = &H99 '數(shù)字"4"對應(yīng)的數(shù)碼管設(shè)置值 Value(15) = &H92 '數(shù)字"5"對應(yīng)的數(shù)碼管設(shè)置值 Value(16) = &H82 '數(shù)字"6"對應(yīng)的數(shù)碼管設(shè)置值 Value(17) = &HF8 '數(shù)字"7"對應(yīng)的數(shù)碼管設(shè)置值 Value(18) = &H80 '數(shù)字"8"對應(yīng)的數(shù)碼管設(shè)置值 Value(19) = &H90 '數(shù)字"9"對應(yīng)的數(shù)碼管設(shè)置值 Do Waitms 10 '刷新延遲 L = L + 1 '計算累加 I = L \ 5 '降低數(shù)據(jù)變化頻率 I = I Mod 10000 '數(shù)值到10000后清0 Qw = I \ 1000 '計算千位 Bw = I Mod 1000 '計算百位 Bw = Bw \ 100 Sw = I Mod 100 '計算十位 Sw = Sw \ 10 Gw = I Mod 10 '計算個位 '只點亮個位數(shù)碼管PA3 Porta = &B0111 Portb = Value(gw + 10) '設(shè)置個位數(shù)值 Waitms 1 '只點亮十位數(shù)碼管PA2 Porta = &B1011 Portb = Value(sw + 10) '設(shè)置十位數(shù)值 Waitms 1 '只點亮百位數(shù)碼管PA1 Porta = &B1101 Portb = Value(bw + 10) '設(shè)置百位數(shù)值 Waitms 1 '只點亮千位數(shù)碼管PA0 Porta = &B1110 Portb = Value(qw + 10) '設(shè)置千位數(shù)值 Waitms 1 Loop End |
各位大師好,BASCOM-AVR2.0.8.1軟件通過什么渠道能夠買到? |
100個也可以同時顯示![]() ![]() ![]() ![]() |
與ARDUINO類似,模塊化,更簡潔好用。![]() |
如果與Proteus 8 仿真軟件結(jié)合將更加順手~ |
如果與Proteus 8 仿真軟件結(jié)合將更加順手~~ |
Bascom avr 節(jié)省腦細胞的軟件![]() ![]() ![]() |
Powered by 單片機教程網(wǎng)