那位高手能用Keil uVision3 帮我编个51单片机程序, 非常感谢。程序流程如下。
单片机接通电源按P1.0口按键程序启动P1.1输出低电平同时P1.2口开始计数(高电平低电平都可以)P1.2计数到500时P1.1停止输出低电平P1.3开始输出低电平P1...
单片机接通电源
按P1.0口按键程序启动
P1.1 输出低电平
同时P1.2口开始计数 (高电平低电平都可以)
P1.2计数到500时
P1.1 停止输出低电平
P1.3开始输出低电平
P1.2计数到1000时
P1.3停止输出低 电平
P1.1 开始输出低电平
P1.2计数到2000时所有程序结束
等待按P1.0口按键程序启动
我是想用这个程序做个小CNC钻床的,
实际运行是
开始按键(P1.0)
1 快速运动(P1.1)
2 快接触到加工材料时低速运行( P1.3)
3然后快速返回(P1.1)
4 P1.2计数器用作位置记录, 会装在马达上, 马达转一圈产生100个脉冲。
不知道我写明白没有。
对不起, 3然后快速返回(P1.1)是错的应该是P1.4口。上面的也错了。下面是正确的
单片机接通电源
按P1.0口按键程序启动
P1.1 输出低电平
同时P1.2口开始计数 (高电平低电平都可以)
P1.2计数到500时
P1.1 停止输出低电平
P1.3开始输出低电平
P1.2计数到1000时
P1.3停止输出低 电平
P1.4 开始输出低电平
P1.2计数到2000时所有程序结束
等待按P1.0口按键程序启动
我是想用这个程序做个小CNC钻床的,
实际运行是
开始按键(P1.0)
1 快速运动(P1.1)
2 快接触到加工材料时低速运行( P1.3)
3然后快速返回(P1.4)
4 P1.2计数器用作位置记录, 会装在马达上, 马达转一圈产生100个脉冲。
不知道我写明白没有。
单片机接口电路可以随便定义,我写的只是做参考。 展开
按P1.0口按键程序启动
P1.1 输出低电平
同时P1.2口开始计数 (高电平低电平都可以)
P1.2计数到500时
P1.1 停止输出低电平
P1.3开始输出低电平
P1.2计数到1000时
P1.3停止输出低 电平
P1.1 开始输出低电平
P1.2计数到2000时所有程序结束
等待按P1.0口按键程序启动
我是想用这个程序做个小CNC钻床的,
实际运行是
开始按键(P1.0)
1 快速运动(P1.1)
2 快接触到加工材料时低速运行( P1.3)
3然后快速返回(P1.1)
4 P1.2计数器用作位置记录, 会装在马达上, 马达转一圈产生100个脉冲。
不知道我写明白没有。
对不起, 3然后快速返回(P1.1)是错的应该是P1.4口。上面的也错了。下面是正确的
单片机接通电源
按P1.0口按键程序启动
P1.1 输出低电平
同时P1.2口开始计数 (高电平低电平都可以)
P1.2计数到500时
P1.1 停止输出低电平
P1.3开始输出低电平
P1.2计数到1000时
P1.3停止输出低 电平
P1.4 开始输出低电平
P1.2计数到2000时所有程序结束
等待按P1.0口按键程序启动
我是想用这个程序做个小CNC钻床的,
实际运行是
开始按键(P1.0)
1 快速运动(P1.1)
2 快接触到加工材料时低速运行( P1.3)
3然后快速返回(P1.4)
4 P1.2计数器用作位置记录, 会装在马达上, 马达转一圈产生100个脉冲。
不知道我写明白没有。
单片机接口电路可以随便定义,我写的只是做参考。 展开
4个回答
展开全部
:
ORG 0X0000
LJMP START
START:
MOV A, #0XFE
LOOP:
jnb F0, key ;F0=0 就转移,不显示.
;------------------------------------------
RL A
MOV P1, A
LCALL DELAY
;------------------------------------------
key:
jnb P0.0, key2 ;P0.0=0,按键按下就转移.
SJMP LOOP ;没按,就继续.
key2:
mov r5, #1 ;延时短一点.
call OUT ;延时消抖.
jb P0.0, LOOP ;松开就不算按下.
jnb P0.0, $ ;等待释放.
cpl F0 ;控制位取反.
SJMP LOOP ;继续.
;-------------------------------------------
DELAY: ;延时程序.
MOV R5,#200
OUT: MOV R6,#250
OUT1: MOV R7,#250
IN: DJNZ R7,$
DJNZ R6,OUT1
DJNZ R5,OUT
RET
END
ORG 0X0000
LJMP START
START:
MOV A, #0XFE
LOOP:
jnb F0, key ;F0=0 就转移,不显示.
;------------------------------------------
RL A
MOV P1, A
LCALL DELAY
;------------------------------------------
key:
jnb P0.0, key2 ;P0.0=0,按键按下就转移.
SJMP LOOP ;没按,就继续.
key2:
mov r5, #1 ;延时短一点.
call OUT ;延时消抖.
jb P0.0, LOOP ;松开就不算按下.
jnb P0.0, $ ;等待释放.
cpl F0 ;控制位取反.
SJMP LOOP ;继续.
;-------------------------------------------
DELAY: ;延时程序.
MOV R5,#200
OUT: MOV R6,#250
OUT1: MOV R7,#250
IN: DJNZ R7,$
DJNZ R6,OUT1
DJNZ R5,OUT
RET
END
展开全部
我愿意接这个小活,有意联系Q 七六九一四四一五五
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,等放血。、、、、、、、、、、、、、、、、、自己慢慢弄,简单的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-01-27
展开全部
哦,好乱→_→
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询