本帖最后由 wsy7563 于 2020-3-22 21:20 编辑
如题,代码如下:
$regfile = "attiny45.dat" '指定单片机型号
$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转换器
Enable Adc '使能AC转换器
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 '设置最大量程为25V '
V = A / 1000 '千位
B = A / 100 '百位
N = A / 10 '十位
M = A Mod 10
Waitms 20
Spiinit '个位
P = M
Spiout Leddig(p + 1) , 1 '显示个位
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 '显示小数点
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数字码 (0-9)
Data& B00111111 ,& B00000110 ,& B01011011 ,& B01001111 ,& B01100110
Data& B01101101 ,& B01111101 ,& B00000111 ,& B01111111 ,& B01101111
注释掉的恢复了,可以了
如题,代码如下:
$regfile = "attiny45.dat" '指定单片机型号
$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转换器
Enable Adc '使能AC转换器
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 '设置最大量程为25V '
V = A / 1000 '千位
B = A / 100 '百位
N = A / 10 '十位
M = A Mod 10
Waitms 20
Spiinit '个位
P = M
Spiout Leddig(p + 1) , 1 '显示个位
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 '显示小数点
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数字码 (0-9)
Data& B00111111 ,& B00000110 ,& B01011011 ,& B01001111 ,& B01100110
Data& B01101101 ,& B01111101 ,& B00000111 ,& B01111111 ,& B01101111
注释掉的恢复了,可以了
评分
$regfile = "ATtiny45.DAT" '指定单片机型号
$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转换器
Enable Adc '使能AC转换器
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 '设置最大量程为25V '
V = A / 1000 '千位
B = A / 100 '百位
N = A / 10 '十位
M = A Mod 10
Waitms 20
Spiinit '个位
P = M
Spiout Leddig(p + 1) , 1 '显示个位
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 '显示小数点
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数字码 (0-9)
Data& B00111111 ,& B00000110 ,& B01011011 ,& B01001111 ,& B01100110
Data& B01101101 ,& B01111101 ,& B00000111 ,& B01111111 ,& B01101111
$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转换器
Enable Adc '使能AC转换器
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 '设置最大量程为25V '
V = A / 1000 '千位
B = A / 100 '百位
N = A / 10 '十位
M = A Mod 10
Waitms 20
Spiinit '个位
P = M
Spiout Leddig(p + 1) , 1 '显示个位
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 '显示小数点
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数字码 (0-9)
Data& B00111111 ,& B00000110 ,& B01011011 ,& B01001111 ,& B01100110
Data& B01101101 ,& B01111101 ,& B00000111 ,& B01111111 ,& B01101111