我想问一下单片机问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:53:53
我是一个单片机初学者,想请大家帮我解决一个问题:为什么刚开始编程的时候,要用MAIN:SETB P1.0;呢?
MAIN: SETB P1.0 ;(1)

LCALL DELAY ;(2)

CLR P1.0 ;(3)

LCALL DELAY ;(4)

AJMP MAIN ;(5)

;以下子程序

DELAY: MOV R7,#250 ;(6)

D1: MOV R6,#250 ;(7)

D2: DJNZ R6,D2 ;(8)

DJNZ R7,D1 ;(9)

RET ;(10)

END ;(11)

这是为了下面的AJMP MAIN准备的。
跳转前,P1。0为0
为了实现P1。0的闪烁。必须在CLR P1。0前SETB P1。0
而且我认为。你用一个CPL P1。0更好。
MAIN: CPL P1。O
LCALL DELAY
JMP MAIN
DELAY:。。。。。。。。。。。。。

不就是输出一个方波的程序吗.

0234101
像你那样写应该不行吧...
MAIN: SETB P1.0
LCALL DELAY
CLR P1.0
LCALL DELAY
AJMP MAIN
在这里面,由于后面有AJMP MAIN,所以程序中一定要有MAIN这个标号,不然程序编译会出错的..也达不到循环的目的,程序很快就执行完了,看不到什么效果...
就像我们老师说的,单片机的工作就是无限循环加中断..

置1以后才不会误读如数据。

这个也问,你还是多看看吧