找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3549|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

我是新手,剛接觸單片機(jī)才兩天,做了個(gè)小玩意

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
3個(gè)led是共陽三色燈,我的原理是利用P1口的P1.0,P1.1,P1.2輸出000-111以到達(dá)一個(gè)燈顯示八種狀態(tài),用按鍵來控制
第一宗方案我用中斷,(其實(shí)我不會(huì)用中斷,改別人的程序的)
#include<reg52.h>  
       //庫文件
#define uchar unsigned char//宏定義無符號(hào)字符型
uchar dispcount=0; //計(jì)數(shù)初值

/********************************************************************
                            顯示函數(shù)
*********************************************************************/        
void Led() //顯示函數(shù)
{

P1=dispcount;
}
/********************************************************************
                            中斷服務(wù)函數(shù)
*********************************************************************/
void ExtInt0() interrupt 0 //中斷服務(wù)程序
{

dispcount++; //每按一次中斷按鍵,計(jì)數(shù)加一

if (dispcount==8) //計(jì)數(shù)范圍0-8

{

dispcount=0;

}
}
/********************************************************************
                            主函數(shù)
*********************************************************************/
void main()
{

TCON=0x01; //中斷設(shè)置

IE=0x81;

while(1)

{
  
   
Led();
   }

}
這里用的是中斷0,,按鍵要加P3.2我想問要接P3.3改真名改程序,我還不會(huì)用中斷
第二種方案我用了按鍵判斷,之前的沒加入延時(shí)去抖動(dòng),這次加了延時(shí)去抖動(dòng)
#include<reg52.h>  
       //庫文件
#define uchar unsigned char//宏定義無符號(hào)字符型
uchar dispcount=0; //計(jì)數(shù)初值
sbit BY1=P3^2; //定義按鍵的輸入端(為單片機(jī)P3口的P3.2按鍵)
/********************************************************************
                            顯示函數(shù)
*********************************************************************/        
void Led() //顯示函數(shù)
{

P1=dispcount;
}
/********************************************************************
                            延時(shí)函數(shù)
*********************************************************************/
void delay10ms(void) //延時(shí)程序
{
uchar i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
/********************************************************************
                           按鍵判斷函數(shù)
*********************************************************************/
void key() //按鍵判斷程序
{

if(BY1==0) //判斷是否按下鍵盤

{

delay10ms(); //延時(shí),軟件去干擾

if(BY1==0) //確認(rèn)按鍵按下

{

dispcount++; //按鍵計(jì)數(shù)加1

if(dispcount==8) //計(jì)8次重新計(jì)數(shù)

{

dispcount=0;//將dispcoun 清零

}

}

while(BY1==0);//按鍵鎖定,每按一次dispcoun 只加1.

}
}
/********************************************************************
                            主函數(shù)
*********************************************************************/
void main()
{

while(1)

{
  
   
key();

Led();
    }
}

ourhc.JPG (40.27 KB, 下載次數(shù): 171)

ourhc.JPG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:58502 發(fā)表于 2014-1-3 20:11 | 只看該作者
現(xiàn)在打算拿這個(gè)三色LED做個(gè)七彩流水燈,用七個(gè)LED做成流水燈,將它們相同顏色的負(fù)極接一塊,這樣就形成一個(gè)類似于三位數(shù)碼管的東西,打算讓七個(gè)燈用動(dòng)態(tài)掃描的方式,在同一時(shí)刻七個(gè)燈顯示七種顏色,過一段時(shí)間,換一種組合。。。{:soso_e116:}這對(duì)剛玩單片機(jī)才兩天的我還真是有點(diǎn)挑戰(zhàn)。。先去弄電路
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表