打印

自制<<手把手教你学单片机C程序设计>>实验板

[复制链接]
楼主: gdqinci
手机看帖
扫描二维码
随时随地手机跟帖
101
gdqinci|  楼主 | 2010-5-2 22:07 | 只看该作者 回帖奖励 |倒序浏览
模拟花样广告灯显示实验

#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code LED1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar code LED2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code LED3[]={0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e};
uchar code LED4[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
uchar code LED5[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
//-------------------------------------------------------------------
void delay(uint k)
{
uint i,j;
for (i=0;i<k;i++)
  {
    for (j=0;j<121;j++)
     {;}
  }
}
//-----------------------------------
void main(void)
{
uchar cnt;
while(1)
{
  for(cnt=0;cnt<8;cnt++)
     {
   P1=LED1[cnt];
   delay(200);
   }
  //------------------
  for(cnt=0;cnt<8;cnt++)
     {
   P1=LED2[cnt];
   delay(200);
   }
  //------------------
  for(cnt=0;cnt<8;cnt++)
     {
   P1=LED3[cnt];
   delay(200);
   }
  //------------------
  for(cnt=0;cnt<8;cnt++)
     {
   P1=LED4[cnt];
   delay(200);
   }
  //------------------
  for(cnt=0;cnt<8;cnt++)
     {
   P1=LED5[cnt];
   delay(200);
   }
  //------------------
  }
}

CS13-4.JPG (62.52 KB )

CS13-4.JPG

使用特权

评论回复
102
gdqinci|  楼主 | 2010-5-9 22:10 | 只看该作者
下面是第14章

直接引用变量和间接引用变量实验

#include<REG51.H>
#define uchar unsigned char
#define uint unsigned int
//-----------------------------
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
  {
   for(j=0;j<121;j++)
    {;}
  }
}
//=======================
void main(void)
{
uchar a,b;
uchar *p;
p=&b;
a=0x7f;
*p=0x7f;
while(1)
  {
  P0=b;
P2=0xfe;
delay(1);
//---------
P3=a;
P2=0xf7;
delay(1);
  }
}

CS14-1.jpg (93.2 KB )

CS14-1.jpg

使用特权

评论回复
103
gdqinci|  楼主 | 2010-5-9 22:11 | 只看该作者
下标法和指针法引用数组元素实验

#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
//--------------------------
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
  {
   for(j=0;j<121;j++)
     {;}
  }
}
//==========================
void main()
{
uchar *pt,i;
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
pt=SEG7;
//--------------------
for(i=0;i<10;i++)
   {
    P0=SEG7;
    P2=0xfe;
    delay(500);
    }
//---------------
P0=0x00;  //
delay(2000); //
//--------------
for(i=0;i<10;i++)
   {
    P0=*(pt+i);
P2=0xfe;
delay(500);
}
//-------------
P0=0x00;    //
//=========================
while(1);
}

CS14-2.jpg (88.73 KB )

CS14-2.jpg

使用特权

评论回复
104
gdqinci|  楼主 | 2010-5-9 22:13 | 只看该作者
地址传递的函数调用实验

#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit P3_2=P3^2;
//----------------------------
void swap(uchar *x,uchar *y);
//----------------------------
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
  {
   for(j=0;j<121;j++)
     {;}
  }
}
//==========================
void main()
{
uchar i;
uchar a=3,b=8;
uchar *pt1,*pt2;
pt1=&a;
pt2=&b;
while(1)
     {
      if(!P3_2)swap(pt1,pt2);
      for(i=0;i<100;i++)
         {
          P0=SEG7[a];
          P2=0xfd;
          delay(2);
          //---------
          P0=SEG7;
          P2=0xfe;
          delay(2);
         }
      }
}
//=======================
void swap(uchar * x,uchar * y)
{
uchar t;
t=*x;
*x=*y;
*y=t;
}

CS14-3.jpg (100.26 KB )

CS14-3.jpg

使用特权

评论回复
105
gdqinci|  楼主 | 2010-5-9 22:14 | 只看该作者
用数组名作为函数的参数进行传递实验

#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};
//----------------------------
void sum(uint *q,uint n)
{
uint i,s;
uint *t;
t=q;
for(i=0;i<n;i++)s=s+*(t+i);
t=q+10;
*t=s;
}
//----------------------------
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
  {
   for(j=0;j<121;j++)
     {;}
  }
}
//==========================
void main(void)
{
uint a[11]={0,1,2,3,4,5,6,7,8,9,0};
uint *pt,len=10;
pt=a;
sum(a,len);
while(1)
  {
  P0=SEG7[a[10]/1000];
P2=ACT[3];
delay(1);
//---------------------
P0=SEG7[(a[10]/100)%10];
P2=ACT[2];
delay(1);
//---------------------
P0=SEG7[(a[10]/10)%10];
P2=ACT[1];
delay(1);
//---------------------
P0=SEG7[a[10]%10];
P2=ACT[0];
delay(1);
  }
}

CS14-4.jpg (103.08 KB )

CS14-4.jpg

使用特权

评论回复
106
adofe| | 2010-5-10 11:55 | 只看该作者
LZ太细心了,顶一个

使用特权

评论回复
107
mfkoyniw520| | 2010-5-10 18:18 | 只看该作者
强   有没有什么好点的书  能学硬件的   每次要设计电路总是无从下手

使用特权

评论回复
108
佐助| | 2010-5-10 19:51 | 只看该作者
这本书中的错误多不多??

使用特权

评论回复
109
gdqinci|  楼主 | 2010-5-10 21:46 | 只看该作者
谢谢106楼的兄弟

回107楼的兄弟:学硬件的话模电看白诗童的书,数电看阎石的书。

回108楼的兄弟:书中程序方面的错误不多,基本上我我眼前看到14章的只发现的程序方面的错误只有一两个,我都改好了。主要是书的前面跟书配套的电路图中有比较多的错误,我自己做板的时候也改正了。我自己做的这块板到现在为止与书中的程序配套运行还没发现有问题。

使用特权

评论回复
110
别叫我菜鸟| | 2010-5-11 14:19 | 只看该作者
做个记号,有时间好好看

使用特权

评论回复
111
别叫我菜鸟| | 2010-5-11 14:21 | 只看该作者
啥也不说了,楼主好人一个!

使用特权

评论回复
112
gdqinci|  楼主 | 2010-5-12 10:18 | 只看该作者
谢谢楼上兄弟的支持

使用特权

评论回复
113
danpianjizui| | 2010-5-12 11:39 | 只看该作者
牛人

使用特权

评论回复
114
gdqinci|  楼主 | 2010-5-12 13:52 | 只看该作者
楼上的兄弟太夸奖我了,我只是认真做自己力所能及的事而已。
其实我自己也买过别人的开发板,有的真的做得很差,线布得很糟糕。丝印什么的一塌糊涂。但是广告却做得很好,说得功能很强大。不这我自己强调一下,我的这块板功能一点儿也不强。他只是准确跟书中的所有实验程序配套而已。

使用特权

评论回复
115
xuyiyi| | 2010-5-12 14:08 | 只看该作者
gdqinci 兄弟,入门挺快的,学习的不错,笔记也做的不错,赞一个。
祝你早日成为二姨家的大牛。努力!加油!

使用特权

评论回复
116
gdqinci|  楼主 | 2010-5-12 15:54 | 只看该作者
谢谢xuyiyi兄弟的鼓励。

大牛我可不敢想,不过21IC有这么多前辈和高手在,只要常来必

有收获啊 *^_^*

使用特权

评论回复
117
limin86918| | 2010-5-12 18:47 | 只看该作者
本帖最后由 limin86918 于 2010-5-12 18:50 编辑

呵呵,楼主介绍的很是详细,想起了我以前学51单片机那段时间了。。。其实51还是很好入门的,其实用C的话,天下的单片机真的都是一样的,现在我也在做PIC单片机的开发,看了你的帖子,我都心动了,我也想写点东西记录下我开发PIC单片机产品的过程,让入门者少走点弯路。
    很佩服楼主的勇气和持之以恒的精神,学习单片机我建议还是买开发板,PCB板的开板费少都要一百多,这足够你买开发板了,我一个学弟花了90块买了一块功能比较强大的51学习板。我想你从绘制原理图到制PCB板肯定花了不少时间的,这对于学习单片机来说是个大忌!单片机高手衡量标准是能够用多短的时间熟悉并运用一款新的单片机,你可以把这部分时间用在单片机深层次的开发上,如更深入的学习单片机的其他功能(如中断,定时器等,仔细看了你的帖子,程序都是很基础的I/O操作以及数据处理等),不过你也学习了PCB制板的经验,这也是难能可贵的,相信楼主有了这个过程,制PCB板对于你来说应该是小菜一碟了(不是指高速PCB板哦),可悲的是现在很多研究生连画PCB板都不会!
  相信楼主对于51单片机来说应该是比较熟悉了,你可以考虑学习功能更为强大的单片机了,如PIC、AVR、Freescale等单片机了,选择一种作为典型(我现在用的是PIC16F877A作为学习PIC单片机的典型进行开发)去学习,没必要每种单片机都要精通,你只需精通一种就可以了,前面也说了,用C编程的话,都是差不多的!
  我提个建议:你也花了不少人力和物力在板子上,你可以考虑在淘宝上开个网店,以成本价售《手把手教你学习单片机》配套开发板,相信也能够收回成本的,呵呵。以上只是我个人的建议,仅供参考。

使用特权

评论回复
118
smile_luo| | 2010-5-12 21:21 | 只看该作者
不错

使用特权

评论回复
119
smile_luo| | 2010-5-12 21:22 | 只看该作者
:loveliness:

使用特权

评论回复
120
ershisi| | 2010-5-12 23:07 | 只看该作者
强,这个帖子值得看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则