原创 小鸟我 发个简单的 cd4049 串行通信程序 。

2009-8-2 17:35 1187 0 分类: MCU/ 嵌入式

;************************
;本程序实现四个连续的灯一起移动亮,另四个不亮。
;器件是51和CD4049移位寄存器
;
;----------------------------------------------
TM1 EQU 10
STA BIT P2.0 ;设置锁存端口接法
OE BIT P2.1 ;设置使能端口接法


 LJMP START
 ORG 0030H
START: MOV SP, #5FH ;设置堆栈
 MOV SCON, #00H ;移位寄存器方式,并将标志位清零。是方式0?
 SETB P2.1  ;使能4049
 MOV A, #0F0H ;将要输入的数放入A
 CLR P2.0  ;关闭并行输出,防止串红现象
 CLR TI  ;移入数据前,将标志位清零
OUT: MOV SBUF, A ;将数据移入51的subf缓冲器,数据RXD自动发送,同时由TXD发出移位脉冲。
LOOP: JBC TI, NEXT ;等待发送完毕后,由51置位TI标志位;此句作用是等待。
 AJMP LOOP  ;
NEXT: SETB P2.0  ;开启并行输出
 CALL DELAY  ;设定灯移动的时间间隔。
 RR A  ;移位要输出的数据,也可另外设定其他的数据
 CLR P2.0  ;关闭并行输出
 AJMP OUT  ;实现循环
DELAY: MOV R0, #TM1
D0: MOV R1, #0A0H
D1: MOV R2, #0A0H
D2: DJNZ R2, D2
 DJNZ R1, D1
 DJNZ R0, D0
 RET


 END

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /2 下一条