这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » net1234599 MCU DIY 进程贴

共31条 1/4 1 2 3 4 跳转至

net1234599 MCU DIY 进程贴

工程师
2011-11-14 12:22:38     打赏
今天PCB获得者名单公布,有我在内,很高兴啊!准备购买元器件了,期待PCB中……



关键词: net1234599     进程    

工程师
2011-11-25 19:08:39     打赏
2楼
刚收到快递送来的PCB,快7点了……
多的不说,上“裸照”

工程师
2011-11-25 19:14:20     打赏
3楼

工程师
2011-11-25 19:14:59     打赏
4楼

工程师
2011-12-02 16:40:03     打赏
5楼
板子前几天就焊好了,上电的时候,加上下载器出现大电流,还没找到原因,先上图。

工程师
2011-12-12 13:41:48     打赏
6楼

先上程序,稍后补上图
1.闪烁灯
#include<reg52.h>
#define uchar unsigned char  
#define uint  unsigned int   
sbit Show_LED = P1^0;   
/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
 uint i,j;
 for(i=0; i<del; i++)
 for(j=0; j<1827; j++)       
 ;
}

/********************************************************************
* 名称 : Main()
* 功能 : 实现灯的闪烁
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
 P1 = 0xff;     //关闭所有LED
 while(1)
 {
  Show_LED = 1;
  Delay(20);  //Delay(del)中的数为延时的时间参数,延时时间为 10ms * del.
  Show_LED = 0;
  Delay(20);
 }
}


工程师
2011-12-12 13:43:30     打赏
7楼

2.闪烁灯2
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
 uint i,j;
 for(i=0; i<del; i++)
 for(j=0; j<1827; j++)   
 ;
}

/********************************************************************
* 名称 : Main()
* 功能 : 实现灯的闪烁
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
 P1 = 0xff;     //关闭所有LED
 while(1)
 {
  /*下面四行用于控制LED每隔一个亮*/
  P1 = 0xaa;  
  Delay(50);
  P1 = 0x55; 
  Delay(50);

  /*下面四行用于控制LED每隔一个亮*/
  P1 = 0xcc;
  Delay(50);
  P1 = 0x33;
  Delay(50);

  /*下面四行用于控制LED 高四位 或者 低四位亮*/
  P1 = 0x0f;
  Delay(50);
  P1 = 0xf0;
  Delay(50);

  /*下面八行用于控制LED的两次全亮 全灭*/
  P1 = 0x00;
  Delay(25);
  P1 = 0xff;
  Delay(25);
  P0 = 0x00;
  Delay(25);
  P1 = 0xff;
  Delay(25);

  Delay(200);  //延时两秒
 }
}


视频地址:http://player.youku.com/player.php/sid/XMzMxOTc0ODg4/v.swf


工程师
2011-12-13 13:07:18     打赏
8楼

3.流水灯1
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int

/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
 uint i,j;
 for(i=0; i<del; i++)
 for(j=0; j<1827; j++)  
 ;
}

/********************************************************************
* 名称 : Main()
* 功能 : 实现灯的闪烁
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
 uchar i;
 while(1)
 {
  P1 = 0x7f;     //P1.7亮亮
  for(i=0; i<7; i++)   //移位7次
  {
   P1 = _cror_(P1, 1);  //_crol_()这个函数在intrins.h中定义了,用于循环右移
   Delay(15);
  }
  P1 = 0xfe;
  for(i=0; i<7; i++)
  {
   P1 = _crol_(P1, 1);     //用于循环左移
   Delay(15);
  }

 }
}


视频地址:http://player.youku.com/player.php/sid/XMzMxOTc1MDg0/v.swf


工程师
2011-12-13 13:08:00     打赏
9楼

4.流水灯2
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
 uint i,j;
 for(i=0; i<del; i++)
 for(j=0; j<1827; j++)  
 ;
}

/********************************************************************
* 名称 : Main()
* 功能 : 实现灯的闪烁
* 输入 : 无
* 输出 : 无
* 说明 :也可以使用上面的方法来关闭数码管
***********************************************************************/
void Main(void)
{
 uchar i, temp;
 while(1)
 {
  temp = 0x7f;    
  for(i=0; i<7; i++)   
  {
   temp = temp >> 1;   //值右移一位
   temp = temp | 0x80;  
   P1 = temp;     //把值赋给P1口
   Delay(15);     //延时0.15秒
  }
  temp = 0xfe;
  for(i=0; i<7; i++)
  {
   temp = temp << 1;   //值左移一位
   temp = temp | 0x01;  
   P1 = temp;        //把值赋给P1口
   Delay(15);     //延时0.15秒
  }

 }
}


工程师
2011-12-13 13:08:50     打赏
10楼

5.数码管显示
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

sbit KEY = P3^0;   //独立按键的S1

uchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/*下一行的数组可以显示数值外,还可以显示数码管的点*/
uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
 uint i,j;
 for(i=0; i<del; i++)
 for(j=0; j<1827; j++)   
 ;
}

/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
 uchar i = 0;
 //P2=0xff;
 P2=2;
 while(1)
 {
  P0 = table[i % 16];    //在这里取i 的个位数,不带点显示
  //P0 = table_d[i % 16];      //带点显示
  if(KEY == 0)
  {
   Delay(1);              //软件消抖,试验为20ms
   if(KEY == 0)
   {
    i++;
   }
   Delay(50);       //延时0.5秒后进行下一次的按键检测
  }                 
 }
}


共31条 1/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]