标题: 单片机流水灯实验报告与心得 [打印本页]

作者: 梨子哎荔枝    时间: 2017-6-9 09:56
标题: 单片机流水灯实验报告与心得
实验一:
一、实验目的:
1学会使用Keil、Proteus仿真软件;
2、掌握P口的输入、输出工作方式,学会C51编程与调试方法;
3、掌握发光二极管的控制方法。

二、实验内容:
如图1所示,要求采用软件延时、查表方法控制指示灯,指示灯的花样至少4个以上;

三、实验步骤:

1、Keil软件下输入源程序,然后编译生成HEX文件;
(放调试好的程序,希望有注释)
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. Unsignchar led[] =
  4. {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff };/*LED字模*/

  5. unsigned int count = 0;/*流水花样序号*/

  6. unsigned int speed=20000;/*流水灯初速度*/


  7. void delay(unsigned inttime){  /*不可变延时函数*/      

  8.      unsigned char c=250;

  9.     for( ;time>0;time--)

  10.          for( ;c>0;c--);

  11.        }


  12. void key1() interrupt 0using 1/*K0中断*/

  13. {   

  14.     EX0 = 0;

  15.     count++;

  16.     if (count == 4) { count = 0; }

  17.     EX0 = 1;

  18. }


  19. void key2() interrupt 2 using2/*K1中断*/

  20. {

  21.     speed = speed - 10000;

  22.     if (speed <= 0) {

  23.        speed = 20000;

  24.     }

  25.     delay(3500);

  26. }



  27. void main() {

  28.     int i;

  29.     unsigned char Num = 0xff;

  30.     IT0 = 1; /*脉冲触发方式*/

  31.    IT1 = 1;

  32.     EX0 = 1; /*开中断*/

  33.     EX1 = 1;

  34. EA = 1;

  35.     while (1) {

  36.        if (count == 0) { /*花样1*/

  37.            for (i = 0; i<= 8;i++){ P0 = 0xff;delay(speed); P0 = 0x00;delay(speed);}

  38.        }

  39.        else if (count == 1) { /*花样2*/

  40.            for (i = 8;i >= 0;i--) { P0 = led[i ];delay(speed); }

  41.        }

  42.        else if (count == 2) { /*花样3*/

  43.            P0 = Num;delay(speed);Num--;

  44.        }

  45.        else if (count == 3) {/*花样4*/

  46.            for( i = 0;i < 8;i++) { P0 = led[ i];delay(speed); }

  47.        }

  48.     }

  49. }
复制代码



2、Proteus软件下画出电路图,然后装载HEX文件运行,反复调试直到看到结果。

(放运行下的图)


四、实验心得:这是我第一次接触单片机实验,觉得很有趣,在这个过程中也学到了不少东西。学会了使用proteuskeil两个软件,学会基本的画图,知道画图中也有许多细节的部分,例如如何划斜线,这些画图就像女孩子绣花一个道理,要追求美观,简短。怎样才可以低成本的画出来等等,都是一个细心活。再有就是写编程,一开始我就是一个菜鸟,什么都不会,幸亏开始接触的不是很难,要不然就要崩溃了。想学好编程,第一步就是要看懂别人怎么写,为什么要这样写。然后自己跟着那思路画一次,接下来就是自己学会创造,怎么写更加简单明了

作者: 15101123    时间: 2017-12-9 12:51
1123.C(3): error C129: missing ';' before 'led'程序运行出现这个错误怎么解决呢
作者: @17869168290    时间: 2021-12-12 09:32
它工作的原理是什么
作者: 13205495918    时间: 2021-12-12 11:18
15101123 发表于 2017-12-9 12:51
**** 作者被禁止或删除 内容自动屏蔽 ****

unsigned char




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1