91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 22KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-26
  • 語言: 其他
  • 標簽: C51彩燈??

資源簡介

1. 用16盞以上的LED小燈,實現至少4種彩燈燈光效果(不含全部點亮,全部熄滅); 2. 可以用輸入按鈕在幾種燈光效果間切換; 3. 可以通過按鈕暫停彩燈效果,使小燈全亮,再次按下相同按鈕后繼續之前的效果; 4. 增加自動在幾種效果間切換的功能,并設置一個按鈕可以在自動模式和手動模式間切換; 5. 使用定時中斷延時。 程序中實現了十鐘燈光效果,分別是: 順時針流水燈、逆時針流水燈、交替閃爍、順時針對角燈、逆時針對角燈、順時針逐個點亮、順時針逐個熄滅、逆時針逐個點亮、逆時針逐個熄滅、二進制加法。

資源截圖

代碼片段和文件信息

/**************************************************************************************************
模塊名稱:51單片機彩燈控制器
模塊功能:實現十種循環彩燈控制
編寫人員:mengkun??(http://mkblog.cn)
編寫日期:2016/12/18
**************************************************************************************************/

#include?

#define?false?0
#define?true?1
#define?uchar?unsigned?char
#define?uint?unsigned?int

sbit?pause_key?=?P3^0; //暫停按鈕
sbit?auto_key?=?P3^1; //手動模式的效果切換
sbit?change_key?=?P3^2; //手動模式效果切換

sbit?pauseLed?=?P3^6; //暫停、啟動指示燈
sbit?autoLed?=?P3^7; //自動、手動模式指示燈

int?ledCode[8]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};?//led段碼(單個顯示)

int?ledCode2[8]={0xfe0xfc0xf80xf00xe00xc00x800x00};?//led段碼(半顯示半滅)

int?disCode[10]={0x030x9f0x250x0d0x990x490x410x1f0x010x09};?//數碼管段碼?0~9

void?displayLed(void); //顯示led的主函數
void?keyScan(void); //鍵盤掃描處理函數

void?Delay10ms(unsigned?int?n); //延時10ms

bit?isPause?=?false; //是否暫停
bit?isAuto?=?true; //是否自動運行
bit?isChange?=?false; //是否要切換下一個效果

uchar?time; ??//計時滿0.5s

uchar?types; //第幾種燈光顯示方案
uint?counts; //燈光的第幾個

/*******************************************************************************?
*?函?數?名??????????:?T0_INT
*?函數功能?????????:?T0定時器中斷函數
*?輸??????入?????????:?無
*?輸??????出?????????:?無?
*******************************************************************************/?
void?T0_INT(void)??interrupt?1
{?
TL0=?(65536-50000)/256;
TH0=?(65536-50000)%256;
time?++;
if(time?>=?10)?//定時時間:0.5s
{
time=0;
if(isChange?==?true) //可以變換下一種顯示效果了
{
counts?=?0;
types++; //顯示下一種效果
if(types?>?9)?types?=?0;?
P0?=?disCode[types]; //更新數碼管顯示
isChange?=?false;
}
displayLed();
counts++;
}
}

/*******************************************************************************?
*?函?數?名??????????:?main
*?函數功能?????????:?主函數
*?輸??????入?????????:?無
*?輸??????出?????????:?無?
*******************************************************************************/??
void?main(void)
{?
TMOD=0x61;?//0110?0001 //方式一

TL0=?(65536-50000)/256; //50ms
TH0=?(65536-50000)%256;
TR0=1; //開啟T0
ET0=1; //T0中斷允許

EA=1; //總中斷開啟

time?=?0; //定時器時間擴種(0.5s)
counts?=?0; //燈光的第幾次
types?=?0; //燈光顯示模式

pauseLed?=?0;?//暫停指示燈滅

P0?=?disCode[types]; //更新數碼管顯示

while(1)
{
keyScan(); //鍵盤掃描及處理
}
}

/*******************************************************************************?
*?函?數?名??????????:?keyScan
*?函數功能?????????:?鍵盤掃描處理
*?輸??????入?????????:?無
*?輸??????出?????????:?無?
*******************************************************************************/??
void?keyScan(void)
{
if(pause_key?==?0) //按下了暫停按鈕
{
Delay10ms(1);
if(pause_key?==?0)
{
isPause?=?~isPause;
pauseLed?=?isPause;
if(isPause?==?true)
{
ET0=0; //關閉T0中斷
P0?=?0xfd; //數碼管顯示?“-”
P1?=?0x00; //所有的燈都亮起來
P2?=?0x00;
}else{
ET0=1; //T0中斷允許
P0?=?disCode[types]; //更新數碼管顯示
displayLed();
}
while(

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????7622??2016-12-18?15:56??main.c
?????文件??????118971??2016-12-18?15:51??1.DSN
?????文件????????3397??2016-12-18?15:42??1.hex

評論

共有 條評論

相關資源