我在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
我不知道那里发生了什么。 任何帮助将不胜感激。
答案 0 :(得分:0)
这是因为PIC的版本或类型。例如,将其与arduino一起使用时,必须指定类型(UNO,NANO,MEGA)。
答案 1 :(得分:0)
可能是第一个.include 在使用atmega328p在同一程序(proteus)上的汇编avr中编程时,我遇到了这个问题。我忘了将注入器放在第一位,并且我有一个变形版的演示版(每次再次启动该应用程序时,都必须以管理员身份运行)。试试这个,让我知道它有效。