单片机问题

2025-03-05 12:45:33
推荐回答(5个)
回答1:

两个8421拨码开关,设定了按键次数和延时时间(分钟数);
按键输入、继电器输出。
很简单,楼主写的非常清楚。
楼主可以自己编写一些,大家再来帮忙。
----------------------------
读入8421拨码开关:

SETB P1.1 ;屏蔽一组
CLR P1.0 ;P1.0所连接的拨盘有效
MOV A, P1 ;读入,低有效
CPL A ;有效值变高
RR A
RR A
ANL A, #0FH ;留下低四位
MOV R7, A ;存好

SETB P1.0 ;屏蔽另一组
CLR P1.1 ;P1.1所连接的拨盘有效
MOV A, P1 ;读入,低有效
CPL A ;有效值变高
RR A
RR A
ANL A, #0FH ;留下低四位
MOV R6, A ;存好

这样,就将两组BCD码,存到了R6和R7。

回答2:

将P1口的个位和十位分开,也就是如何将读入的P1口值分开成两部分
和矩阵键盘原理是一样的 反转法就可以~

回答3:

ANL ORL这2指令

回答4:

这里的第六行和第七行首先要知道TF0的意思:
TF0是定时/计数器
控制寄存器
中的一个标志位
TF0=0:表示定时器0没有溢出,可以正常计时;
当定时器0计时时间到,产生溢出,就会使得TF0=1。
因此第六行用while(!TF0)即当TF0=0时执行循环,如果计时时间到,TF0就会置1,这时跳出循环,执行下面的语句,清除计时结束标志,以便进行下一次延时计数。

回答5:

atmel/intel的80c51系列的不能现场编程,需拆下芯片使用专门的脱机编程器。s系列的可以isp在线编程。stc的可串口在线编程。观察芯片的工作状态,只能通过软件设置运行指示或是按照一定的通讯协议对外发送数据,来解析机器工作状态。