您的位置 首页 模拟

关于8051对LED操控的各种程序

本*也是前几天开始接触单片机,从最经典也是最实用的8051开始入手。看了几天书和资料,发现以前一直看的微机还有大一上时候在计算机学的一些东西还是挺有用的。大家都是看郭天祥的吧=。= 本*不是。我是

  本*也是前几天开端触摸单片机,从最经典也是最有用的8051开端下手。看了几天书和材料,发现曾经一向看的微机还有大一上时分在计算机学的一些东西仍是挺有用的。咱们都是看郭天祥的吧=。= 本*不是。我是在x宝上买的开发板讲课都是x宝店家独家镜头,可谓是高端大气上档次,低沉豪华有内在,精约时髦世界范,低端粗鄙甩节操,土憋矫情无下限,狂拽酷帅吊炸天,冷傲尊贵接地气,时髦动感小新鲜,心爱村庄非主流。好吧,废话不多,其实我也是看郭天祥的,哈工大究竟不是盖的。ps:x宝老板是南邮的高材生。

  本*老老实实地把PPT最终的课后练习都做了遍,彻底没有什么百度,那些弱爆了换句话说。

  下面,本*就郭天祥课件里边课后练习的标题做出自己的独家见地-。-

  题一:第一个发光管以距离200ms闪耀。

  卧槽-,- 这种标题小儿科。本*表明,写这类程序有两种办法,我仍是喜爱直接对IO口总线界说。

  #include

  #include //就蜂鸣器接的IO口不同的开发板规划电路时分可能会有所不同,本*x宝买的这块接的是P3.4.

  sbit buzz=P3^4;

  void delay()

  unsigned int t=30000;

  while (t–);

  void main()

  unsigned char temp;

  temp=0xfe;

  while(1)

  P1=temp;

  temp=_crol_(temp,1);

  buzz=~buzz;

  delay();

  }

  题三: 用8个发光管演示出8位二进制数累加进程。

  #include //表明这样标题仍是比较有意思的 ps:要学单片机首要我觉得这些进制的问题要搞清楚,二进制 十六进制和咱们用的十进制的转化联系。

  #include

  void delay()

  unsigned int a=30000;

  while(a–);

  void main() //灯亮为0,灭为1;

  P1=0x00;

  for(;P1<=0xfe;P1++)

  delay();

  }

  题四:8个发光管距离200ms由上至下,再由下至上,再重复一次,然后悉数平息再以300ms距离悉数闪耀5次。重复此进程。

  #include

  #include

  unsigned int temp;

  void delay(unsigned int z)

  unsigned int x;

  unsigned char y;

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

  for(y=100;y>0;y–);

  void main()

  unsigned int a,b,c;

  while(1)

  for(a=0;a<2;a++)

  temp=0xfe;

  while(b<=6)

  P1=temp;

  temp=_crol_(temp,1);

  delay(500);

  while(c<=6)

  P1=temp;

  temp=_cror_(temp,1);

  delay(500);

  P1=0xff;

  for(a=0;a<5;a++)

  P1=~P1;

  delay(1000);

  }

  题五:距离300ms第一次一个管亮活动一次,第2次两个管亮活动,顺次到8个管亮,然后重复整个进程。

  #include

  #include

  unsigned int temp;

  void delay(unsigned int z)

  unsigned char x;

  unsigned char y;

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

  for(y=100;y>0;y++);

  void main()

  unsigned int a;

  while(1)

  temp=0xfe;

  while(a<=6)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0xfc;

  while(a<=5)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0xf8;

  while(a<=4)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0xf0;

  while(a<=3)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0xe0;

  while(a<=2)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0xc0;

  while(a<=1)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0x80;

  while(a<=0)

  P1=temp;

  temp=_crol_(temp,1);

  delay(30000);

  temp=0x00;

  P1=temp;

  delay(30000);

  }

  题六:距离300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两头往中心活动三次;再从中心往两头活动三次;8个悉数闪耀3次;封闭发光管,程序中止。

  #include

  void delay()

  unsigned int a=30000;

  while(a–);

  void main()

  unsigned char a;

  while(1)

  for(a=0;a<3;a++)

  P1=0x55;

  delay();

  P1=0xaa;

  delay();

  for(a=0;a<3;a++)

  P1=0x7e;

  delay();

  P1=0xbd;

  delay();

  P1=0xdb;

  delay();

  P1=0xe7;

  delay();

  for(a=0;a<3;a++)

  P1=0xe7;

  delay();

  P1=0xdb;

  delay();

  P1=0xbd;

  delay();

  P1=0x7e;

  delay();

  for(a=0;a<3;a++)

  P1=0x00;

  delay();

  P1=~P1;

  delay();

  }

  学习是一个不断堆集的进程,郭天祥说十天能够学完,表明我做不到,不仅仅是学完8051,其实其他芯片程序大体仍是通用的,我诶想想是这样的=。= 不管怎么说,c言语是根底,当然也有用汇编的,本*表明汇编看不懂。。。。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/116780.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部