找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 28794|回复: 3
打印 上一主题 下一主题
收起左侧

单片机流水灯实验报告与心得

[复制链接]
跳转到指定楼层
楼主
实验一:
一、实验目的:
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两个软件,学会基本的画图,知道画图中也有许多细节的部分,例如如何划斜线,这些画图就像女孩子绣花一个道理,要追求美观,简短。怎样才可以低成本的画出来等等,都是一个细心活。再有就是写编程,一开始我就是一个菜鸟,什么都不会,幸亏开始接触的不是很难,要不然就要崩溃了。想学好编程,第一步就是要看懂别人怎么写,为什么要这样写。然后自己跟着那思路画一次,接下来就是自己学会创造,怎么写更加简单明了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:259166 发表于 2017-12-9 12:51 | 只看该作者
1123.C(3): error C129: missing ';' before 'led'程序运行出现这个错误怎么解决呢
回复

使用道具 举报

板凳
ID:989966 发表于 2021-12-12 09:32 | 只看该作者
它工作的原理是什么
回复

使用道具 举报

地板
ID:908826 发表于 2021-12-12 11:18 | 只看该作者
15101123 发表于 2017-12-9 12:51
**** 作者被禁止或删除 内容自动屏蔽 ****

unsigned char
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表