標題: BASCOM-AVR 4個數(shù)碼管同時顯示數(shù)字0-9 代碼+實物圖片+測試視頻 [打印本頁]

作者: 富貴竹    時間: 2020-7-22 20:27
標題: BASCOM-AVR 4個數(shù)碼管同時顯示數(shù)字0-9 代碼+實物圖片+測試視頻
  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. $regfile = "m16def.dat"                                     'ATMega16 單片機
  3. $crystal = 8000000                                          '8兆赫晶振

  4. Dim I As Byte

  5. 'PORTB 8個引腳PB0-PB7連接了數(shù)碼管 A B C D E F G H
  6. Config Porta = Output
  7. Config Portb = Output

  8. Porta.0 = 0                                                 '第1位數(shù)碼管亮
  9. Porta.1 = 0
  10. Porta.2 = 0
  11. Porta.3 = 0                                                 '第4個數(shù)碼管亮
  12. '====================
  13. '數(shù)碼管顯示0-9,1秒鐘切換1次
  14. Do
  15.    Wait 1
  16.    I = I + 1
  17.    If I >= 10 Then I = 0

  18.    If I = 0 Then Portb = &HC0
  19.    If I = 1 Then Portb = &HF9
  20.    If I = 2 Then Portb = &HA4
  21.    If I = 3 Then Portb = &HB0
  22.    If I = 4 Then Portb = &H99
  23.    If I = 5 Then Portb = &H92
  24.    If I = 6 Then Portb = &H82
  25.    If I = 7 Then Portb = &HF8
  26.    If I = 8 Then Portb = &H80
  27.    If I = 9 Then Portb = &H90
  28. Loop
  29. End
復制代碼

4個數(shù)碼管同時顯示0-9.png (386.94 KB, 下載次數(shù): 219)

4個數(shù)碼管同時顯示0-9.png

作者: taotie    時間: 2020-7-23 11:15
Bascom avr 節(jié)省腦細胞的軟件
作者: taotie    時間: 2020-7-23 11:37
如果與Proteus 8 仿真軟件結(jié)合將更加順手~~
作者: 杏花寒    時間: 2020-7-27 19:36
如果與Proteus 8 仿真軟件結(jié)合將更加順手~
作者: 243412038    時間: 2020-11-28 14:15
與ARDUINO類似,模塊化,更簡潔好用。
作者: taotie    時間: 2020-11-28 15:41
100個也可以同時顯示
作者: dpj0123456    時間: 2021-2-6 22:09
各位大師好,BASCOM-AVR2.0.8.1軟件通過什么渠道能夠買到?
作者: 紅日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                                       '數(shù)組中存的是0-9數(shù)字對應亮燈的值
Value(10) = &HC0                                            '數(shù)字"0"對應的數(shù)碼管設(shè)置值
Value(11) = &HF9                                            '數(shù)字"1"對應的數(shù)碼管設(shè)置值
Value(12) = &HA4                                            '數(shù)字"2"對應的數(shù)碼管設(shè)置值
Value(13) = &HB0                                            '數(shù)字"3"對應的數(shù)碼管設(shè)置值
Value(14) = &H99                                            '數(shù)字"4"對應的數(shù)碼管設(shè)置值
Value(15) = &H92                                            '數(shù)字"5"對應的數(shù)碼管設(shè)置值
Value(16) = &H82                                            '數(shù)字"6"對應的數(shù)碼管設(shè)置值
Value(17) = &HF8                                            '數(shù)字"7"對應的數(shù)碼管設(shè)置值
Value(18) = &H80                                            '數(shù)字"8"對應的數(shù)碼管設(shè)置值
Value(19) = &H90                                            '數(shù)字"9"對應的數(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
作者: taotie    時間: 2021-6-20 20:26
紅日888 發(fā)表于 2021-6-20 18:14
'我也來了
$regfile = "m16def.dat"                                     'ATMega16 單片機
$crystal =  ...

用仿真跑一邊你會發(fā)現(xiàn)一些問題
作者: 紅日888    時間: 2021-6-20 20:31
我這是用實體機跑出來的
作者: 紅日888    時間: 2021-6-20 20:40
taotie 發(fā)表于 2021-6-20 20:26
用仿真跑一邊你會發(fā)現(xiàn)一些問題

我還沒用過仿真,手里有一個現(xiàn)成的板子
作者: taotie    時間: 2021-6-20 22:10
共陽極:

位選為高電平(即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)累加應該是;
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    時間: 2021-6-20 22:15


作者: 紅日888    時間: 2021-6-20 23:56
taotie 發(fā)表于 2021-6-20 22:15

我手里的這個是0點亮,是不是就差這里
作者: 紅日888    時間: 2021-6-21 00:06
我又試了一下,我手里的這個板子和你的正好相反
作者: 紅日888    時間: 2021-6-21 00:07
本帖最后由 紅日888 于 2021-6-21 00:41 編輯

我手里的板子就是樓主給我的
作者: taotie    時間: 2021-6-21 09:53
紅日888 發(fā)表于 2021-6-21 00:06
我又試了一下,我手里的這個板子和你的正好相反

那說明你的板上數(shù)碼管是共陽極的,位選硬是高電平時點亮相應位段碼。位選應從低位向高位逐次點亮。即:
0001 0010 0100 1000.
調(diào)節(jié)延時使數(shù)碼管穩(wěn)定顯示。
作者: 紅日888    時間: 2021-6-21 21:59
我這個是0才是點亮,所有的燈的輸出都是0是亮1是滅,我也覺得這樣很別扭




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1