我在Bascom
上写了这段代码,但当我在Proteus
上运行并点击键盘时,我看到了这个错误:
Invalid opcode 0x000D at PC=0x0118
这是我在Bascom
上的代码
$regfile = "m16def.dat"
$crystal = 1000000
Config Kbd = Portd , Debounce = 30
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.3 , E = Portb.2
Dim Adad As Byte
Dim Andis As Byte
Dim Lable As Byte
Scan1:
Waitms 200
Adad = 0
Andis = Getkbd()
If Andis > 15 Then Goto Scan1
Lable = Lookup(andis , Dta)
If Lable < 10 Then
Adad = Adad * 10
Adad = Adad + Lable
Lcd Adad
End If
Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
这是我对simple calculation
的proteus
模拟:
当我点击键盘时,我看到了这个:
我不知道那里发生了什么。任何帮助都将不胜感激。
发布于 2019-06-14 17:33:11
这是因为PIC的版本或其类型。例如,在arduino中使用它时,您必须指定类型(UNO、NANO、MEGA)。
发布于 2020-10-31 18:13:50
当我在使用atmega328p的同一个程序(proteus)上用汇编avr编程时,可能是.include首先遇到了这个问题。我忘记将inculde放在第一位,并且我有一个proteus的演示版本(每次您再次启动应用程序时,它都需要以管理员身份运行)。试试这个,让我知道它起作用了。
https://stackoverflow.com/questions/53453428
复制相似问题