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

共58条 5/6 |‹ 1 2 3 4 5 6 跳转至
助工
2014-05-12 22:26:58     打赏
41楼

助工
2014-05-12 22:32:12     打赏
42楼

助工
2014-05-12 22:33:18     打赏
43楼

牛刀小试5.2:led流水灯从右向左,然后从左向右流动、如此循环。




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

助工
2014-05-12 22:48:23     打赏
44楼
不错,加油!

助工
2014-05-12 23:24:36     打赏
45楼
谢谢版主捧场哈哈

助工
2014-05-14 21:22:42     打赏
46楼

牛刀小试6.4 步进电机循环来回转动:


代码如下、如有不足,麻烦指正!

#include<stc89.h>
sbit mota = P1^5;
sbit motb = P1^6;
sbit motc = P1^7;
sbit motd = P3^5;
unsigned int n=1,x=0;
void delay(unsigned int t);
void right();
void left();

void delay(unsigned int t)    //延时函数
{
 unsigned int i,j;
 for(i=0;i<t;i++)
  for(j=0;j<114;j++);
}
void right()		        //反转函数
{
 while(x++!=500)
 {
 mota=0;
 motb=1;
 motc=1;
 motd=1;
 delay(n);
 mota=0;
 motb=0;
 motc=1;
 motd=1;
 delay(n);
 mota=1;
 motb=0;
 motc=1;
 motd=1;
 delay(n);
 mota=1;
 motb=0;
 motc=0;
 motd=1;
 delay(n);
 mota=1;
 motb=1;
 motc=0;
 motd=1;
 delay(n);
 mota=1;
 motb=1;
 motc=0;
 motd=0;
 delay(n);
 mota=1;
 motb=1;
 motc=1;
 motd=0;
 delay(n);
 mota=0;
 motb=1;
 motc=1;
 motd=0;
 delay(n);
 }
}
void left()				    //正转函数
{
 while(x++!=500)
 {
 motd=0;
 motc=1;
 motb=1;
 mota=1;
 delay(n);
 motd=0;
 motc=0;
 motb=1;
 mota=1;
 delay(n);
 motd=1;
 motc=0;
 motb=1;
 mota=1;
 delay(n);
 motd=1;
 motc=0;
 motb=0;
 mota=1;
 delay(n);
 motd=1;
 motc=1;
 motb=0;
 mota=1;
 delay(n);
 motd=1;
 motc=1;
 motb=0;
 mota=0;
 delay(n);
 motd=1;
 motc=1;
 motb=1;
 mota=0;
 delay(n);
 motd=0;
 motc=1;
 motb=1;
 mota=0;
 delay(n);
 }
}
void main()
{
 while(1)
 {
 x=0;
 left();
 delay(10);
 x=0;
 right();
 delay(10);
 }
}

 


助工
2014-05-14 21:24:49     打赏
47楼

牛刀小试6.4:步进电机循环来回转动视频哈哈




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

助工
2014-05-16 23:22:03     打赏
48楼

牛刀小试7.3数码管最低位显示'E'

做的时候参考了教程、然后把0-f都给定义了。



代码如下、请指教哈哈

#include<stc89.h>
code unsigned char segment[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e}; 
                                //0到f花样,其中a为10、b为11、类推
code unsigned char select[] = {0xff,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};  
unsigned char p=0; 			   
sbit hc595st=P0^4;
sbit hc595out=P2^3;
sbit hc595dat=P0^2;
void hc595write(unsigned char dat);
void led(unsigned int x,unsigned char n,unsigned char dp);
void delay(unsigned int time);
void error();	             
void error()  //错误显示函数
{
led(14,5,0);
led(10,4,0);
led(10,3,0);
led(0,2,0);
led(10,1,0);
}
void delay(unsigned int time)  //延时函数
{
 unsigned int i,j;
 for(i=0;i<time;i++)
  for(j=0;j<2;j++);
}
void hc595write(unsigned char dat)	  // 写入数据
{
 unsigned char m;
 hc595out=0;
 for(m=0;m<8;m++)
 {
  hc595st=0;
  if(0x80&dat)
   hc595dat=1;
  else
   hc595dat=0;
   hc595st=1;
   delay(3);
   dat<<=1;
 }
}
void led(unsigned int x,unsigned char n,unsigned char dp)  //显示(数码,位数,是否小数点)
{
 if((x<16)&&(x>=0)&&(n<9)&&(n>=0))	//判断出错
 {
 if(dp!=0)
 dp=segment[x];
 else
 dp=segment[x]|0x80;
 hc595write(dp);
 hc595write(select[n]);
 hc595out=1;
 delay(1);
 hc595out=0;
 delay(1);
 }
 else
 p=1;
}
void main()
{
while(1)
{
 if(p)
  error();
 else
 led(14,1,0);	//最低位显示”E“
}
}

 


助工
2014-05-21 20:42:29     打赏
49楼

这几天自己焊了几个最小系统、想接下来玩玩无线通信哈哈、

前几天买了个dh11温湿度传感器、今天就写了个程序、用创芯的开发板烧程序、然后在自己焊的板上先玩玩哈哈


数码管左边是温度、右边是湿度、

买这个数码管的时候没注意看、拿到手时竟然是4位7段的、小数点只是个装饰、更坑的是、他居然没有把段集成在里面、竟然是4个7段数码管直接引出管脚、结果就杯具了、32只引脚只好自己慢慢把所有段给连接起来,这花费了我一个晚上、教训啊、以后买要多留个心眼了。


助工
2014-05-22 23:33:01     打赏
50楼

牛刀小试13.3:在 LCD1602 的第一行显示“Hello!”,第二行显示“The world!”

调试了一晚、参考了一些资料、然后自己改改、弄了个头文件、以后要用到1602就比较方便了,共享给大家哈哈,不足指出、麻烦指出!多谢!



以下是主程序:

#include<stc89.h>
#include<1602.h>
void main(void)
{
code uchar *dat="Hello!";
code uchar *dats="The World!";
lcdinit();
DisplayListChar(0,0,dat);
DisplayListChar(0,1,dats);
while(1);
}

 

头文件要不要来个回复可见呢

——回复可见内容——


共58条 5/6 |‹ 1 2 3 4 5 6 跳转至

回复

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