鱼C论坛

 找回密码
 立即注册
查看: 3950|回复: 8

[已解决]求图 求程序。。。彩灯控制实验 !!

[复制链接]
发表于 2012-6-10 10:42:01 | 显示全部楼层 |阅读模式
6鱼币
题目:正常情况下,8个LED常亮。按下按钮K1时,第1个和第8个LED闪烁,闪烁间隔时间为1秒.按下K2时,8个LED闪烁,间隔为1秒.二极管有P1控制.  求图 求程序!!   求助求助。。。
最佳答案
2012-6-10 10:42:02
本帖最后由 沉思的牛 于 2014-4-2 20:53 编辑
  1. #include <reg52.h>

  2. #define UINT unsigned int
  3. #define UCHAR unsigned char

  4. sbit K1=P3^4;  //按钮1
  5. sbit K2=P3^5;  //按钮2

  6. //12M晶振
  7. //这个延时不是很准确
  8. //要准确用定时器
  9. void Delay(UINT z)
  10. {
  11.         UCHAR x,y;
  12.         for(x=1000;x>0;x--)
  13.                 for(y=z;y>0;y--);
  14. }

  15. void Key_Scan()
  16. {
  17.                 //按楼主所说  按下的时候闪烁
  18.                 //松手全部灯亮
  19.                 while(!K1) //按下K1
  20.                 {
  21.                         Delay(20); //延时消抖
  22.                         while(!K1) //再次判断是否按下
  23.                         {
  24.                                 P1=0X81;       //第一个和第八个关  1000 0001
  25.                                 Delay(1000);  //延时1秒
  26.                                 P1=0x00;       //全部亮;
  27.                                 Delay(1000);  //延时1秒
  28.                         }        
  29.                         
  30.                 }

  31.                 while(!K2)  //按下K2  和K1相同
  32.                 {
  33.                         Delay(20);
  34.                         while(!K2)
  35.                         {
  36.                                 P1=0X0;        //全部亮
  37.                                 Delay(1000);  //延时1秒
  38.                                 P1=0xff;         //全部灭;
  39.                                 Delay(1000);  //延时1秒
  40.                         }        
  41.                 }
  42.         
  43. }

  44. void main()
  45. {
  46.         //首先我不知道你的LED的电路怎么接的
  47.         //认为是阳极接VCC  利用灌电流驱动

  48.         
  49.         P1=0;         //8个LED点亮

  50.         while(1)
  51.         {
  52.         
  53.                 P1=0;  //不按键时全部亮
  54.                 Key_Scan();

  55.         }
  56. }
复制代码
楼主我写的这个程序给你参考  学单片机一定要多写多练  多动手
不懂的再问我

最佳答案

查看完整内容

楼主我写的这个程序给你参考 学单片机一定要多写多练 多动手 不懂的再问我
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-10 10:42:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 沉思的牛 于 2014-4-2 20:53 编辑
  1. #include <reg52.h>

  2. #define UINT unsigned int
  3. #define UCHAR unsigned char

  4. sbit K1=P3^4;  //按钮1
  5. sbit K2=P3^5;  //按钮2

  6. //12M晶振
  7. //这个延时不是很准确
  8. //要准确用定时器
  9. void Delay(UINT z)
  10. {
  11.         UCHAR x,y;
  12.         for(x=1000;x>0;x--)
  13.                 for(y=z;y>0;y--);
  14. }

  15. void Key_Scan()
  16. {
  17.                 //按楼主所说  按下的时候闪烁
  18.                 //松手全部灯亮
  19.                 while(!K1) //按下K1
  20.                 {
  21.                         Delay(20); //延时消抖
  22.                         while(!K1) //再次判断是否按下
  23.                         {
  24.                                 P1=0X81;       //第一个和第八个关  1000 0001
  25.                                 Delay(1000);  //延时1秒
  26.                                 P1=0x00;       //全部亮;
  27.                                 Delay(1000);  //延时1秒
  28.                         }        
  29.                         
  30.                 }

  31.                 while(!K2)  //按下K2  和K1相同
  32.                 {
  33.                         Delay(20);
  34.                         while(!K2)
  35.                         {
  36.                                 P1=0X0;        //全部亮
  37.                                 Delay(1000);  //延时1秒
  38.                                 P1=0xff;         //全部灭;
  39.                                 Delay(1000);  //延时1秒
  40.                         }        
  41.                 }
  42.         
  43. }

  44. void main()
  45. {
  46.         //首先我不知道你的LED的电路怎么接的
  47.         //认为是阳极接VCC  利用灌电流驱动

  48.         
  49.         P1=0;         //8个LED点亮

  50.         while(1)
  51.         {
  52.         
  53.                 P1=0;  //不按键时全部亮
  54.                 Key_Scan();

  55.         }
  56. }
复制代码
楼主我写的这个程序给你参考  学单片机一定要多写多练  多动手
不懂的再问我

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-11 02:24:51 | 显示全部楼层
单片机的程序么..............
for(;;)
{

switch(i)
case 1:
case 2:
default:
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-11 11:40:00 | 显示全部楼层
按下按钮K1时,第1个和第8个LED闪烁,闪烁间隔时间为1秒.按下K2时,8个LED闪烁,间隔为1秒.
是只按下的时候闪吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-17 10:57:59 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-17 10:58:43 | 显示全部楼层
yk94215 发表于 2012-6-11 02:24
单片机的程序么..............
for(;;)
{

c语言。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-17 13:54:48 | 显示全部楼层
▂谋ァMou﹎ 发表于 2012-6-17 10:58
c语言。。。

单片机可以用C语言来编的啊!keil.就行的...而且效率相当高.!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-13 21:19:35 | 显示全部楼层
{:1_1:}{:1_1:}{:1_1:}呼呼
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-13 19:46:30 | 显示全部楼层
基于什么单片机的》???
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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