单片机问题
是应该不确定是否执行的,1与0的确为0,但是如果P0_0如果是低电平的话,P0_0 == 0为真,flag为1的话,flag==1,为真,则与结果为真,还有不知道你的程序上下联系,基本上没办法回答你的问题
MOV A, Rn MOV A,#data对标志位P都有影响,只要累加器A里面数据1的个数发生改变,标志位P都会改变。
MOV A, Rn对标志位P没影响是不成立的 望你再好好看看
满意就选满意回答吧
MINUTE EQU 031H ;分钟缓存
SECOND EQU 032H ;秒缓存
DHOUR EQU 040H ;定时小时缓存
DMINUTE EQU 041H ;定时分钟缓存
AJBZ EQU 042H ;按键次数标志
DSBZ EQU 022H ;定时开关标志
COUNT1 EQU 033H ;总计数到4000:拆分成40*100 总计数1
COUNT2 EQU 034H
SPL EQU 020H ;闪烁判断的依据
SET_BTN EQU 021H ;按键标志位
ORG 0000H
AJMP MAIN
ORG 001BH ;定时计数器T1中断入口地址
AJMP IT_1
ORG 040H
MAIN:MOV SPL,#00H ;闪烁标志清零
MOV DPTR,#TABLE ;码段首地址
MOV HOUR,#00H ;小时缓存清零
MOV MINUTE,#00H ;分缓存清零
MOV DHOUR,#00H ;定时小时缓存清零
MOV DMINUTE,#00H ;定时分缓存清零
MOV SECOND,#00H ;秒缓存清零
MOV AJBZ,#00H ;按键次数缓存清零
MOV COUNT1,#00H ;总计数1清零
MOV COUNT2,#00H ;总计数2清零
MOV DHOUR,#00H ;定时小时地址清零
MOV DSBZ,#00H ;定时开关标志清零
CLR P3.0 ;定时时间到控制位清零
MOV TMOD,#20H ;设置计数方式
MOV TH1,#06H ;定时计数器T1高八位初值
MOV TL1,#06H ;定时计数器低八位初值
MOV IE,#10001000B ;设置允许中断,并且打开两个定时器
SETB TR1
LOOP:JNB P0.0,JUST_TIME ;P0.0为零跳转(调时操作)
JB SET_BTN.0,JUST_TIME ;标志位为1跳转
JNB P0.1, SUBB_TIME ;减操作
JB SET_BTN.1,SUBB_TIME
JNB P0.2, ADD_TIME ;加操作
JB SET_BTN.2,ADD_TIME
JB P0.7,TIME
CLR P3.0
TIME1:JB SPL.3,DSXS ;转定时小时显示
JB SPL.4,DSXS ;转定时分钟显示
JB SPL.5,DSXS ;转定时开关显示
ACALL HOUR_SHOW ;小时显示
ACALL MINUTE_SHOW ;分钟显示
ACALL SECOND_SHOW ;秒显示
FHLOOP:AJMP LOOP
DSXS:ACALL DHOUR_SHOW ;定时小时显示
ACALL DMINUTE_SHOW ;定时分钟显示
ACALL DSECOND_SHOW ;定时开关显示
AJMP LOOP
JUST_TIME:
LJMP JUST_TIME1
SUBB_TIME:
JB SET_BTN.1,WAIT_BTN2_UP
ACALL DELAY2;
JB P0.1, TIME
SETB SET_BTN.1
JB SPL.1,SUBB_HOUR
JB SPL.2,SUBB_MIN
JB SPL.3,DSUBB_HOUR
JB SPL.4,DSUBB_MIN
JB SPL.5,GDS
AJMP TIME
ADD_TIME:
LJMP ADDTIME
SUBB_MIN:
MOV R1,MINUTE
CJNE R1,#00H,SUBB_MIN_OPT
MOV MINUTE,#3BH
AJMP TIME
SUBB_MIN_OPT:
DEC MINUTE
AJMP TIME
DSUBB_MIN:
MOV R1,DMINUTE
CJNE R1,#00H,DSUBB_MIN_OPT
MOV DMINUTE,#3BH
AJMP TIME
DSUBB_MIN_OPT:
DEC DMINUTE
AJMP TIME
SUBB_HOUR:
MOV R1,HOUR
CJNE R1,#00H,SUBB_HOUR_OPT
MOV HOUR,#17H
AJMP TIME
SUBB_HOUR_OPT:
DEC HOUR
AJMP TIME
DSUBB_HOUR:
MOV R1,DHOUR
CJNE R1,#00H,DSUBB_HOUR_OPT
MOV DHOUR,#17H
AJMP TIME
DSUBB_HOUR_OPT:
DEC DHOUR
AJMP TIME
WAIT_BTN2_UP:
JNB P0.1,TIME
CLR SET_BTN.1
AJMP TIME
TIME:LJMP TIME1
GDS:CLR DSBZ.0
LJMP TIME
ADDTIME:JB SET_BTN.2,WAIT_BTN3_UP
ACALL DELAY2
JB P0.2, TIME
SETB SET_BTN.2
JB SPL.1,ADD_HOUR
JB SPL.2,ADD_MIN
JB SPL.3,DADD_HOUR
JB SPL.4,DADD_MIN
JB SPL.5,KDS
LJMP TIME
ADD_MIN:MOV R1,MINUTE
CJNE R1,#3BH,ADD_MIN_OPT
MOV MINUTE,#00H
LJMP TIME
ADD_MIN_OPT:
INC MINUTE
LJMP TIME
DADD_MIN:
MOV R1,DMINUTE
CJNE R1,#3BH,DADD_MIN_OPT
MOV DMINUTE,#00H
LJMP TIME
DADD_MIN_OPT:
INC DMINUTE
LJMP TIME
ADD_HOUR:
MOV R1,HOUR
CJNE R1,#17H,ADD_HOUR_OPT
MOV HOUR,#00H
LJMP TIME
ADD_HOUR_OPT:
INC HOUR
LJMP TIME
DADD_HOUR:
MOV R1,DHOUR
CJNE R1,#17H,DADD_HOUR_OPT
MOV DHOUR,#00H
LJMP TIME
DADD_HOUR_OPT:
INC DHOUR
LJMP TIME
WAIT_BTN3_UP:
JNB P0.2,TIME
CLR SET_BTN.2
LJMP TIME
KDS:SETB DSBZ.0
LJMP TIME
JUST_TIME1:
JB SET_BTN.0,WAIT_UP
ACALL DELAY2
JB P0.0, TIME
SETB SET_BTN.0
MOV R1,AJBZ
CJNE R1,#05H,INC1
MOV AJBZ,#00H
MOV SPL,#00H
LJMP TIME
INC1:INC AJBZ
MOV R1,AJBZ
CJNE R1,#01H,JSFZ ;计时分钟
SETB SPL.1
LJMP TIME
JSFZ:CJNE R1,#02H,DSX ;定时小时
CLR SPL.1
SETB SPL.2
LJMP TIME
DSX:CJNE R1,#03H,DSFZ ;定时分钟
CLR SPL.2
SETB SPL.3
LJMP TIME
DSFZ:CJNE R1,#04H,DSKG ;定时开关
CLR SPL.3
SETB SPL.4
DSKG:CJNE R1,#05H,LJUMP_TIME ;返回显示状态
CLR SPL.4
SETB SPL.5
LJUMP_TIME:
LJMP TIME
WAIT_UP:JNB P0.0,LJUMP_TIME ;等待按键松开,松开后清零按键标志
CLR SET_BTN.0
LJMP TIME
WAIT2_DL1:
ACALL DELAY1
ACALL DELAY1
RET
HOUR_SHOW:
JNB SPL.1, HOUR_SHOW_HRER
JB SPL.0, HOUR_SHOW_HRER
ACALL WAIT2_DL1
RET
HOUR_SHOW_HRER: ;小时显示
SETB P2.6
SETB P2.7
CLR A
MOV A,HOUR
MOV B,#0AH
DIV AB ;小时十位在A中,个位在B中
MOVC A,@A+DPTR
MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据
MOV P1,A
CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)
;延时
ACALL DELAY1
SETB P2.7 ;熄灭小时
MOV P1,#00H
MOV A,B ;B中存放的小时各位数据放入A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.6 ;显示小时个位数据
;延时
ACALL DELAY1
SETB P2.6
MOV P1,#00H
RET
MINUTE_SHOW:
JNB SPL.2, MINUTE_SHOW_HERE
JB SPL.0, MINUTE_SHOW_HERE
ACALL WAIT2_DL1
RET
MINUTE_SHOW_HERE:
SETB P2.5
SETB P2.4
CLR A
MOV A,MINUTE
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P1,#00H
MOV P1,A
CLR P2.5
;延时
ACALL DELAY1
SETB P2.5
MOV P1,#00H
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR P2.4
;延时
ACALL DELAY1
SETB P2.4
MOV P1,#00H
RET
SECOND_SHOW:
SETB P2.3
SETB P2.2
CLR A
MOV A,SECOND
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P1,#00H
MOV P1,A
CLR P2.3
;延时
ACALL DELAY1
SETB P2.3
MOV P1,#00H
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR P2.2
;延时
ACALL DELAY1
SETB P2.2
JNB DSBZ.0,DYFH ;定时比较开始
JB P3.0,DYFH
MOV A,HOUR
CJNE A,DHOUR,DYFH
MOV A,MINUTE
CJNE A,DMINUTE,DYFH
SETB P3.0
DYFH:RET
DHOUR_SHOW: ;调整定时时间显示
JNB SPL.3,XSS
JB SPL.0, XSS
ACALL WAIT2_DL1
RET
XSS:SETB P2.6
SETB P2.7
CLR A
MOV A,DHOUR
MOV B,#0AH
DIV AB ;小时十位在A中,个位在B中
MOVC A,@A+DPTR
MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据
MOV P1,A
CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)
;延时
ACALL DELAY1
SETB P2.7 ;熄灭小时
MOV P1,#00H
MOV A,B ;B中存放的小时个位数据放入A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.6 ;显示小时个位数据
;延时
ACALL DELAY1
SETB P2.6
MOV P1,#00H
RET
;定时分钟显示
DMINUTE_SHOW:
JNB SPL.4,XSF
JB SPL.0, XSF
ACALL WAIT2_DL1
RET
XSF:SETB P2.5
SETB P2.4
CLR A
MOV A,DMINUTE
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P1,#00H
MOV P1,A
CLR P2.5
;延时
ACALL DELAY1
SETB P2.5
MOV P1,#00H
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR P2.4
;延时
ACALL DELAY1
SETB P2.4
MOV P1,#00H
RET
;定时开关显示
DSECOND_SHOW:
JNB SPL.5,XSM ;显示秒(定时开关)
JB SPL.0,XSM
ACALL WAIT2_DL1
RET
XSM:SETB P2.3
SETB P2.2
CLR A
MOV A,#00H
MOVC A,@A+DPTR
MOV P1,A
CLR P2.3
;延时
ACALL DELAY1
SETB P2.3
MOV P1,#00H
JNB DSBZ.0,GBZ ;关标志
MOV A,#0BH
AJMP XS
GBZ:MOV A,#0AH
XS:MOVC A,@A+DPTR
MOV P1,A
CLR P2.2
;延时
ACALL DELAY1
SETB P2.2
MOV P1,#00H
RET
;短延时 ;显示短延时
DELAY1:MOV R6,#03H
DL1:MOV R7,08H
DL2:DJNZ R7,DL2
DJNZ R6,DL1
RET
;按键延时
DELAY2:MOV R6,#0AH
DL21:MOV R7,0AH
DL22:DJNZ R7,DL22
DJNZ R6,DL21
RET
IT_1:PUSH ACC
PUSH B
PUSH PSW
INC COUNT1
MOV A,COUNT1
CJNE A,#28H,RETI_LABLE
INC COUNT2
MOV COUNT1,#00H
MOV A,COUNT2
MOV B,#32H
DIV AB
MOV A,B
JNZ C2_OPT
CPL P3.7 ;秒的闪烁
CPL SPL.0 ;调整闪烁
C2_OPT:MOV A,COUNT2
CJNE A,#64H,RETI_LABLE
INC SECOND
MOV COUNT2,#00H
MOV A,SECOND
CJNE A,#3CH,RETI_LABLE;
INC MINUTE
MOV SECOND,#00H
MOV A,MINUTE
CJNE A,#3CH,RETI_LABLE;
INC HOUR
MOV MINUTE,#00H
MOV A,HOUR
CJNE A,#18H,RETI_LABLE
MOV HOUR,#00H
RETI_LABLE:
POP PSW
POP B
POP ACC
RETI
;TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴码表
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0C8H ;共阳码表
; 0 1 2 3 4 5 6 7 8 9 F N
END
有时、分、秒显示,可以定时驱动继电器来控制你的家用电器,具体使用方法看程序吧,程序懂了你就能做出来了
小压片机常见故障的预防与处理措施
10. 药片质量: 冲头表面不光或配料问题,需修换冲头或重新处理药料。11. 药片疏松: 压力不足或配料问题,调整压力并重新处理药料。12. 片重不稳定: 下冲紧固、蝶形螺丝松动或颗粒不均,需调整填充量和配料。总的来说,小压片机的故障往往源于操作不当或维护不足。定期检查、正确操作和及时维护是避...
黑胶片机常见故障处理方法 胶片常见问题及其可能原因
1、故障一:在胶片发排过程中,UPS电源突然出故障导致照排系统非正常关机,重新启动系统,照排机仍持续报警状态,提示138错误。解决方法:打开Primesetter软件,进入Configuration menu中的Operating mode选项,选择R&D mode模式,输入密码后,进入Parameter edit界面。在查询框中输入punch,将出现的 use...
压片机的问题?
压片时造成片重差异不合格的原因如下:1、颗粒粗细分布不匀,压片时颗粒流速不同,导致填充到中模孔内的颗粒粗细不均匀.应将颗粒混匀或筛去过多细粉。2、细粉粘附冲头而造成吊冲时可使片重差异幅度较大。解决方法:此时下冲转动不灵活,应及时检查,拆下冲模,清理干净下冲与中模孔。3、颗粒流动性...
多冲压片机注意事项
7. 如遇到机器异常震动或异响,应立即停机检查,确保设备处于良好状态。8. 压力控制应适度,以电动机的负荷为准,一般情况下,380伏电动机在重载时电流不应超过4安培。9. 片重差异若超出药典规定的范围,需关注以下可能的原因及解决方法:冲头不齐:检查并调整冲头,如发现个别片量轻,可能是下冲运动...
关于胶片机感光度的问题
胶片机感光度,又称为ISO值,是衡量底片对于光的灵敏程度,由敏感度测量学及测量数个数值来决定,最近已经被国际标准化组织标准化。对于较不敏感的底片,需要曝光更长的时间以达到跟较敏感底片相同的成像,因此通常被称为慢速底片。高度敏感的底片因而称为快速底片。无论是数位或是底片摄影,为了减少曝光...
旋转式压片机PG45冲在高速时偏差不稳,求教是哪里出现了问题?
应重新调整阻尼螺钉。14. 充填轨道的磨损或充填机构的稳定性问题需要更换或加固。15. 追求高产量可能导致转台转速过快,造成填充量不足。特别是对于大片剂,应适当降低转速以确保填充充足。16. 压片机的震动过大可能是由于结构松动、装配不合理或压力设置过大。应重新装配并减小压力。
牛羊肉切片机全自动出现故障怎么办?
问题一:机器不运转 检查插头接触是否良好,再检查插座保险是否熔断。仍不能排除故障则需由电气技术人员检修,非专业人士不可自行修理。问题二:刨片机托盘走动不顺畅 走动圆轴加润滑油(环境温度低于0℃时,要注入耐低温机油),调节走动方轴下方的顶紧螺丝。请点击输入图片描述 问题三:机器工作时发出...
小型压片机的注意事项
1. 在首次使用小型压片机之前,请仔细阅读说明书,并与机器实物对照,确保理解操作步骤后再进行操作。2. 确保机器按照说明书中的指定方向运转(请注意手轮或防护罩上的箭头指示),切勿反转,以避免损坏机器部件。特别是在调整压片时,应特别注意此点,避免疏忽导致的问题。3. 皮带的松紧调节应通过底板上...
胶片机的问题
最有可能的情况就是装胶卷时没有真正挂上去。不知你这台理光是手动过片还是电动过片的。手动过片就绝对是我刚说的那个问题。我们都有过这种教训。以后卷片时注意一下回片柄一起转动没有,如果没有一起转,那绝对就没挂上片,就立即打开重装。因为没挂上,胶片还没从片盒拉出来,不会曝光的。
长江老试唱片机怎样维修
你可以打开唱片机并检查皮带的状态,如果需要更换,可以购买合适的替换皮带。4. 声音问题:如果唱片机发出噪音或声音不清晰,可能是音头脏了或磨损了。可以使用专用的音头清洁液或音头刷进行清洁,如问题仍然存在,可能需要更换损坏的音头。5. 机械问题:如果唱片机有机械故障,如转盘不转或转速不稳定,可能...
衷梦开新: 一般单片机内部自带上拉电阻的,上拉能力比较小,称为弱上拉,使用外部上拉电阻,1可以使悬空的单片机输入引脚保持高电平,2可以调节单片机输出高电平的大小,比如3.3V的单片机,加一个5V的上拉电阻,就可以输出5V电压拉
曹县19740199925: 关于单片机的几个问题! - ?
衷梦开新: 1.分析单片机与通用计算机的相同和不同之处 单片机就是微型计算机,只是说单片机只包裹控制器、计数器、存储器、IO口; 2.单片机有哪些应用领域 自动控制的地方都用 3.归纳分析80c51单片机硬件结构特点 控制器+计数器+存储器+IO口 4.归纳分析80c51单片机定时器/计数器的特点 计时益处产生中断 5.归纳分析80c51单片机中断系统的特点 放下当前程序转跳到另一个地方 6.归纳分析80c51单片机指令系统的特点 运算+逻辑+控制转移 7.归纳分析80c51单片机串行口接受和发送数据的过程 写入寄存器+然后发送 8.简述在MCS-51单片机系统中,外接程序存储器和数据存储器、地址线、数据线、控制线的接法 这个你去看书
曹县19740199925: 单片机基本问题 - ?
衷梦开新: 1,不是,读回的是该引脚的电状态,基本可以说是0或1 2,单片机有4个中断口,在开放中断的情况下,要看中断初始化设置的内容,具体就是哪个中断开放,而不是看级别而定的
曹县19740199925: 单片机问题 - ?
衷梦开新: 应该不是单片机的问题,外接10K的上拉电阻,用万用表测量一下端口的电压,看一下是不是你程序设定高/低电平一样,单个端口也可能会烧坏,最简单的办法是你用另一个单片机去试,如果还不行的话,那就是你电路有问题了,我之前也出现过这程现像,是不小心把这个脚的引线与其它线接在一起了,检查一下吧,检查问题也是学习单片机的技能之一
曹县19740199925: 单片机相关问题 - ?
衷梦开新: 1 微处理器,简单来说,就是CPU,是专门处理数据和指令的,单单的一个CPU,是无法工作的,就像我们配电脑,不可能只买一个CPU.微控制器,简单来说,就是CPU+诸多外设 = 电脑,比如我们的电脑,就是CPU + 主板,而电脑的外设都...
曹县19740199925: 有关单片机的几个小问题?
衷梦开新: 第一个问题,如果是买C8051单片机的话有直接支持USB通信的型号.(属于51系列单片机但很贵,开发工具也贵不建议购买).还有就是买个CH341芯片,这是一个转接USB接口的芯片,用单片机可以直接控制它并给USB设备发数据(USB设备包括计算机上的USB接口). 第二,用四个三极管或四个场效应管就可以搭一个H桥电路控制电机的方向,如不是所有三极管或场效应管都能用于H桥,必须根据它的最大过流参数和你要控制电机的制动电流大小来做.H桥资料参考我以前的回答 http://wenwen.sogou.com/z/q770002899.htm 实际上也有集成的H桥芯片.没用过,所以不好评价它们好不好用
曹县19740199925: 单片机方面的问题!? - ?
衷梦开新: 具有ISP功能的单片机才能用在线下载电路给这个单片机进行烧写.但不是每个厂商的ISP电路都一样的,就拿51系列单片机而言,at89S51是用计算机的并口经行下载程序的,需要有一个244芯片经行驱动和隔离(如果敢保证单片机外围电路没问...
曹县19740199925: 跪求单片机问题 - ?
衷梦开新: 1)5位 2^13 =8K 的地址 2) DIV 需要4个周期 6M的一个周期是2us 四个周期就是8us 3)原码:1010 0100 反码:1101 1011 补码:11011 100 4)你的问题我不是很白 JNC 为0跳 JC 为1跳 5)一次 6)你是不是写错了啊 或者还有东西没有写完 7)A=16H AC=1 OV=0 好好学汇编 现在用汇编 的人越来越少了
曹县19740199925: 有关单片机问题.各位帮我解答一下. - ?
衷梦开新: A为累加器,P为奇偶标志,根据定义:PARITY:奇偶标志.若累加器中8 个位的和为奇数时该位置1,为偶数时清0,63H=001100011B,八个位的和为4, 偶数, 所以置0.
曹县19740199925: 单片机故障问题 - ?
衷梦开新: “上电后主循环运行正常”是个假象.你这种情况多是没有正常上电复位所致.你的上电复位电路是阻容延迟电路吧,如果想确保可靠性建议换外置狗,或者出血换红宝石.