要求:(1)硬件电路设计包括:时钟电路、复位电路、4*4矩阵按键电路、2个LED数码管显示电路等。4*4矩阵按键代表1—16数字每按下一个键显示对应的数字。(2)软件程序的设計这样...
要求:(1)硬件电路设计,包括:时钟电路、复位电路、4*4矩阵按键电路、2个LED数码管显示电路等4*4矩阵按键代表1—16数字,每按下一個键显示对应的数字(2)软件程序的设计。
仿真图没问题除了键盘没画完
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
LJMP DISP ;这个地方就一直循环,怎样实现定时器的作用?
使用中断就行了啊C语言也是这样的,编译器会把C语言转换成汇编语言然后再转换成HEX文件。下面是在你的程序上修改的没试过,你编译一下看看有没错誤
LJMP DISP ;这个地方就一直循环怎样实现定时器的作用?
你那个入栈和出栈的语句有什么作用?我去掉之后执行效果一样
那是保存ACC和PSW的内容,因为中断程序使用了ACC语句MOV A,R2会影响PSW的奇偶标志位
,而中断发生的时候主程序可能正在使用ACC寄存器或者判断PSW的奇偶标志位,所以需要保存当然你这个程序是没有用到奇偶标志位的,不过ACC是使用到的
MOV B,#10
DIV AB例如程序在这里产生中断,如果中断程序中没有保存ACC且正好R3减1为零
DJNZ R3,TIMER1_END
MOV R3,#100
MOV A,R2那麼这条语句在中断程序中将被执行,返回的时候ACC的值将会等于R2
那么主程序中的语句MOV P0,A ;就不会得到你想要的结果了
你去掉之后效果一样,是洇为程序没有正好在那两条语句中产生中断或者即使在那两条语句中产生中断,但R3-1不为零所以效果是一样的,但不保证每次都能这样所以要保证程序能长期正常运行,那几条语句是必不可少的至少ACC的压栈/出栈在你的程序中不能省略
单片机中,C语言和汇编语言是一样的都可以运行。
定时计数器1只要TR1=1,就开始计数或定时
程序在DISP和LJMP DISP之间不断循环但是如果开了中断,定时器溢絀的时候就会进入中断子程序
你主程序里少了对计数器的设置。
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头裏或许有别人想知道的答案。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。