找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3125|回復(fù): 4
收起左側(cè)

bascom avr tiny45驅(qū)動(dòng)74hc595

[復(fù)制鏈接]
ID:711254 發(fā)表于 2020-3-19 11:19 | 顯示全部樓層 |閱讀模式
本帖最后由 wsy7563 于 2020-3-22 21:20 編輯

如題,代碼如下:
$regfile = "attiny45.dat"                                   '指定單片機(jī)型號(hào)
$crystal = 8000000                                          '指定頻率
$hwstack = 2
$swstack = 8
$framesize = 24                                             
Config Portb = Output                                       '定義B口為輸出
Config Portb.4 = Input                                      '定義C.0口為輸入
Config Adc = Single , Prescaler = Auto , Reference = Avcc   '配置AD轉(zhuǎn)換器
Enable Adc                                                  '使能AC轉(zhuǎn)換器
Dim Leddig(10) As Byte
Dim I As Word , P As Integer , V As Word , B As Word , N As Word , M As Word
Dim K As Single , G As Byte , S As Long , A As Word , C As Byte
Latch Alias Portb.1
Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.0
Restore Leddata                                             '讀LED 顯示位碼(0-9)
For P = 1 To 10
   Read Leddig(p)
Next
Do
A = 0
C = 1
For C = 1 To 64                                             '取64次adc的平均值
Start Adc
I = Getadc(2)
Stop Adc
A = I + A
Next
A = A / 64
S = A * 5000
K = S / 1023
A = K
A = A / 2                                                   '設(shè)置最大量程為25V                                                   '
V = A / 1000                                                '千位
B = A / 100                                                 '百位
N = A / 10                                                  '十位
M = A Mod 10
Waitms 20

Spiinit                                                     '個(gè)位
   P = M
   Spiout Leddig(p + 1) , 1                                 '顯示個(gè)位

   P = N
     If N > 9 Then
       P = P Mod 10
     End If
   Spiout Leddig(p + 1) , 1
   P = B
      If B > 9 Then
        P = P Mod 10
      End If
   Spiout Leddig(p + 1) , 1                                 '顯示小數(shù)點(diǎn)
   P = V
     If V > 9 Then
       P = P Mod 10
     End If
   Spiout Leddig(p + 1) , 1

Latch = 0                                                   '使能顯示
Waitus 10
Latch = 1
Loop
Leddata:                                                    'LED數(shù)字碼 (0-9)
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110
Data &B01101101 , &B01111101 , &B00000111 , &B01111111 , &B01101111
注釋掉的恢復(fù)了,可以了

avrproteus.rar

16.5 KB, 下載次數(shù): 8, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:711254 發(fā)表于 2020-3-22 21:02 | 顯示全部樓層
Sorry,求平均的注釋掉了,取消注釋就好了
回復(fù)

使用道具 舉報(bào)

ID:711254 發(fā)表于 2020-3-22 21:00 | 顯示全部樓層

把求平均計(jì)算給注釋掉了
回復(fù)

使用道具 舉報(bào)

ID:711254 發(fā)表于 2020-3-22 20:59 | 顯示全部樓層
$regfile = "ATtiny45.DAT"                                   '指定單片機(jī)型號(hào)
$crystal = 8000000
$hwstack = 2
$swstack = 8
$framesize = 24                                             '指定頻率
Config Portb = Output                                       '定義B口為輸出
Config Portb.4 = Input                                      '定義C.0口為輸入
Config Adc=Single,Prescaler=Auto,Reference=Avcc   '配置AD轉(zhuǎn)換器
Enable Adc                                                  '使能AC轉(zhuǎn)換器
Dim Leddig(10) As Byte
Dim I As Word , P As Integer , V As Word , B As Word , N As Word , M As Word
Dim K As Single , G As Byte , S As Long , A As Word , C As Byte
Latch Alias Portb.1
Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.0
Restore Leddata                                             '讀LED 顯示位碼(0-9)
For P = 1 To 10
   Read Leddig(p)
Next
Do
A = 0
C = 1
For C = 1 To 64                                             '取64次adc的平均值
Start Adc
I = Getadc(2)
Stop Adc
A = I + A
Next
A = A / 64
S = A * 5000
K = S / 1023
A = K
A = A / 2                                                   '設(shè)置最大量程為25V                                                   '
V = A / 1000                                                '千位
B = A / 100                                                 '百位
N = A / 10                                                  '十位
M = A Mod 10
Waitms 20

Spiinit                                                     '個(gè)位
   P = M
   Spiout Leddig(p + 1) , 1                                 '顯示個(gè)位

   P = N
     If N > 9 Then
       P = P Mod 10
     End If
   Spiout Leddig(p + 1) , 1
   P = B
      If B > 9 Then
        P = P Mod 10
      End If
   Spiout Leddig(p + 1) , 1                                 '顯示小數(shù)點(diǎn)
   P = V
     If V > 9 Then
       P = P Mod 10
     End If
   Spiout Leddig(p + 1) , 1

Latch = 0                                                   '使能顯示
Waitus 10
Latch = 1
Loop
Leddata:                                                    'LED數(shù)字碼 (0-9)
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110
Data &B01101101 , &B01111101 , &B00000111 , &B01111111 , &B01101111
回復(fù)

使用道具 舉報(bào)

ID:342822 發(fā)表于 2020-3-22 16:44 | 顯示全部樓層
呵呵~~~行不通啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表