通过AT89C51单片机控制8个发光二极管发光,实现暗点以1HZ频率由低位到高位循环移动

[复制链接]
查看11 | 回复3 | 2009-7-13 16:09:13 | 显示全部楼层 |阅读模式
通过AT89C51单片机控制8个发光二极管发光,实现暗点以1HZ频率由低位到高位循环移动
根据设计任务的要求编写程序
各位大哥大姐有会的话希望不吝赐教啊~
ORG
0000H

AJMP MAIN

ORG
0100H
MAIN: MOV A,#0FEH
R: MOV P1,A

RL A

ACALL DEL

AJMP R
DEL : MOV R5,#04H
DEL1: MOV R6,#0FFH
DEL2: MOV R7,#0FFH
DEL3: DJNZ R7,DEL3

DJNZ R6,DEL2

DJNZ R5,DEL1

RET

END
这个程序仿真可以实现了,请问1HZ怎么来体现啊.
请问怎么修改程序可以使等以1HZ的频率亮灭?

回复

使用道具 举报

千问 | 2009-7-13 16:09:13 | 显示全部楼层
用一个端口可以控制多路的话可以采用 74HC4094这个芯片 ,具体实现的代码驱动程序为 void vWrite74HC4094(void){ static UCHAR temp1,temp2; if((temp1!=Plcddata1.ITEM.RAMC)||(temp2!=Plcddata2.ITEM.RAMC)) {temp1=Plcddata1.ITEM.RAMC;temp2=Plcddata2.ITEM.RAMC;Plcddata3.ITEM.RAMC=Plcddata1.ITEM.RAMC;Plcddata4.ITEM.RAMC=Plcddata2.ITEM.RAMC;P_40...
回复

使用道具 举报

千问 | 2009-7-13 16:09:13 | 显示全部楼层
// 时钟初始化、端口初始化和头文件已经省略//省略子程序 delay();void main(void){while(1){
PORTD=0<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7;
DDRD=0xFF;
delay(100);
PORTD=...
回复

使用道具 举报

千问 | 2009-7-13 16:09:13 | 显示全部楼层
1HZ的体现有两种,第一种开定时器产生精确的定时,第二种软件延时,这种根据指令周期来大致计算。一般采用一个循环来延时的!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行