找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 9136|回复: 0
收起左侧

单片机按键显示流水灯源码与实验报告

[复制链接]
ID:306120 发表于 2018-4-11 20:05 | 显示全部楼层 |阅读模式
流水灯仿真图:


实验感悟:
  • proteus仿真时候,发现错误:
error variable not found parsing property resistance of RN1-Rnvalue expected for RN1-R(n=1~8)而且led灯亮度十分微弱。可能是接入的电阻太大了。
检查电路图发现排阻的值为RX8,修改为220(自己选择)后。错误便没有了,同时,led灯的亮度也增强了。
  • 关于延时函数。
延时的时间计算不太明白。
3、P0=0xfe;是对单片机P0口的8个I/O口同时进行操作,0x后的数使用十六进制表示,fe转换为二进制是1111 1110,则P0.0为低电平,对应的led灯亮,其他7个led灯灭。

单片机流水灯源程序如下:
  1. 源程序:
  2. #include<reg52.h>
  3. #include<intrins.h>
  4. #define uchar unsigned char
  5. #define uint  unsigned int
  6. sbit key1=P3^7;
  7. sbit key2=P3^6;
  8. sbit key3=P3^5;
  9. unsigned int time=2000,count1=0;
  10. unsigned int led=0xfe,count2=0;
  11. void key();
  12. void delay(uint z)
  13. {
  14.         uint x,y;
  15.         for(x=z;x>0;x--)
  16.            for(y=110;y>0;y--);
  17. }
  18. void dump()
  19. {
  20.         if(count1==0)
  21.         {
  22.         P1=led;
  23.         led=_crol_(led,1);
  24.         
  25. }
  26.   if(count1==1)
  27. {        
  28.         led=_cror_(led,1);
  29.          P1=led;

  30. }
  31. }
  32. void main()
  33. {        

  34.         while(1)
  35.         {
  36.                 key();
  37.                 delay(time/5);
  38.                 key();
  39.                 delay(time/5);
  40.                 key();
  41.                 delay(time/5);
  42.                 dump();
  43.                 key();
  44.                 delay(time/5);
  45.                 key();
  46.                 delay(time/5);
  47.         }
  48. }
  49. void key()
  50.         {
  51.                 if(key1==0)
  52.                 {
  53.                         delay(5);
  54.                 if(key1==0)
  55.                 {
  56.                         count2++;
  57.                         if(count2%2==1)
  58.                         {
  59.                                 count1=1;
  60.                         }
  61.                         if(count2%2==0)
  62.                         {
  63.                                 count1=0;
  64.                         }
  65.                         while(!key1);
  66.                 }
  67. }
  68. if(key2==0)
  69. {
  70.         delay(5);
  71.         if(key2==0)
  72.         {
  73.                 if(time==4000);
  74.                 else
  75.                 {
  76.                         time+=500;
  77.                 }
  78.                 while(!key2);
  79.         }
  80. }
  81. if(key3==0)
  82. {
  83.         delay(5);
  84.         if(key3==0);
  85.         {
  86.                 if(time==500);
  87.                 else
  88.                 {
  89.                         time-=500;
  90.                 }
  91.                 while(!key3);
  92.         }
  93. }
  94. }
复制代码

所有资料51hei提供下载:
第一次试验报告B16040415焦凯.docx (171.99 KB, 下载次数: 15)


回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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