先把定时器和外部中断在main一开始就初始化,EA置1写在SJMP $前,使程序易读 |
WriteIR程序没出现,正常进入后显示内容怎么给出看不来,也有可能你正常进入后给值逻辑有问题吧。你配个电路连接图可能更容易让人看明白 |
自己开发底板和用汇编写程序,至少要有一颗LED做指示,因为只要一个代码。SETB或CLR就能看到程序是否运行到那边,或者死在那里,LCD是个复杂设备,就算MCU不去理他,字符还在那,连光标都会闪呢!所以不能作为除错之用。 |
sfes1314 发表于 2022-1-30 11:38 Work: JNB KEY, No_work ;0-执行下一行,1-跳转不工作 CALL Display_1602 JMP Work No_work: JNB KEY,Work ;检测是否为0 提供你思路 |
zmc419 发表于 2022-1-30 20:37 我不会C啊,尴尬。。。 |
用C写吧,简单明了,易于理解 |
dalaoshi 发表于 2022-1-30 13:28 已经明确的说了。1602LCD,为什么还要LED呢? |
看别人写的汇编有如看天书,不知道我的理解是否有误:第一次看到纯粹靠中断来运行的程序,开机后什么都没有设定进入待机,按键后进入MAIN,运行到末端就在那空转等中断,没有中断就没有运作,也没有LED会闪来指示“我还活着”,所以才有“不知道是否死机”的疑问,中断程序里还有“LCALL DELAY”,不知道去了那会被打转多少次,回来时已是天上人间,这期间是否有其他中断发生未及处理或处理不当,副程式里还有AJMP到FS44,FS44是干什么的看不到,去了也不懂有没有回来,如果没有回来底下那个RET就永远无法执行,每多一次中断就积压一组回归地址在STACK没有出来,直到超过极限而崩溃,大概是这样吧?这里的作者名字全部变成代号了,无名无姓,认不出,不产生情感。![]() |
请各位老师帮忙检查一下指点一下。谢谢。 |