求89c51单片机led设计程序.C语言编写 要带电路图

不用太复杂用数码管或者发光二极管显示都行流水灯交通灯什么的就不用了有图形最好程序中要综合延时定时循环什么的反正就是看着要有点内容但是也不能太深入P0P1P2口同时实现流水... 不用太复杂 用数码管或者发光二极管显示都行 流水灯交通灯什么的就不用了
有图形最好 程序中要综合延时定时 循环什么的
反正就是 看着要有点内容 但是也不能太深入
P0P1P2口同时实现流水灯 用for语句
一共20个发光二极管
展开
 我来答
yangrencai888
2011-11-29 · TA获得超过284个赞
知道答主
回答量:255
采纳率:0%
帮助的人:88.9万
展开全部

/*  74HC595    驱动程序

      模块不用     9脚Qs---串行数据输出端

      模块不用   10脚CR-清除端 L电平仅对寄存器复位 【9脚为 L;9脚进位】;锁存器没有影响。

11脚sclk--  由低到高电平时 14脚Ds数据移入寄存器

12脚CP/la--  由低到高电平时  数据从寄存器移入锁存器

        模块不用    13脚NE--H电平【只对并行数据 Q0--Q7高阻态】

14脚SER--串行数据输入端

 */

 #define uchar unsigned char

#define uint unsigned int

 sbit ser=P3^0;//  14脚SER--串行数据输入端

 sbit sclk=P3^3;//11脚srclk--  由低到高电平时 14脚Ds数据移入寄存器

 sbit rck=P3^2; //  12脚CP/la--  由低到高电平时  数据从寄存器移入锁存器

 sbit mr=P3^4;

    void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=50;y>0;y--);

}

void WriteSIOByte(unsigned char val) 

{  

unsigned char i; 

   mr=0; 

   mr=1;

  for (i=8; i>0; i--) //因为数码为8段 要运行8次   【1段送一次码】并移动一位

   { 

  

     sclk= 0;//拉低74HC595 时钟 【11脚CP/sr--】

 ser=val&0x01;// 发送74HC595 一位串行数据 【14脚DS--串行数据输入端】

 delay(1);//延时 

     sclk = 1;//拉高74HC595 时钟 【11脚CP/sr--】     

   val>>=1;// 

  } 

   rck=0; 

   delay(1);//延时

 rck=1;  //12脚CP/la--  由低到高电平时  数据从寄存器移入锁存器

  }

/////  目前没有用 移位程序

 uchar yiwei(uchar a) //移位子程序把如【P0-1变为P0^7】

{

 uchar temp;

temp=(a&0x01)<<7;

temp=((a&0x02)<<5)|temp;

temp=((a&0x04)<<3)|temp;

temp=((a&0x08)<<1)|temp;

temp=((a&0x10)>>1)|temp;

temp=((a&0x20)>>3)|temp;

temp=((a&0x40)>>5)|temp;

temp=((a&0x80)>>7)|temp;

return (temp);

}

//////////////、、、、、、、、、、、、、、、、

玉结绿
2011-11-29 · 超过11用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:29.7万
展开全部
#include<reg51.h>
/*************************************************************************************
  第一行是一个"文件包含"处理。
  所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来
这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行
*****************************************************************************/
sbit P1_0=P1^0; //定义IO口
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k; //定义3个无符号字符型数据。
for(i=20;i>0;i--) //作循环延时
for(j=20;j>0;j--)
for(k=24800;k>0;k--);
}
void main(void) //每一个C语言程序有且只有一个主函数,
{
while(1) //循环条件永远为真,以下程序一直执行下去。
{
P1_0=0; // I/O口P1.0输出低电平,小灯被点亮。
delay02s(); //延时经过0.2秒。
P1_0=1;// I/O口P1.0输出高电平,小灯熄灭。
delay02s(); //延时经过0.2秒。
}
}
P1.0这个引脚接1k电阻然后5v高电平。
其他的就是单片机最小系统了,网上自己搜吧,很多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
电力物联网小学生
2011-12-01 · TA获得超过480个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:88.6万
展开全部
你这5分真值钱....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式