免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
51單片機50個例程代碼

程序里有中斷,串口等驅(qū)動,直接復(fù)制即可使用

1-IO輸出-點亮1個LED燈方法1

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的一個LED燈

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

sbit LED=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

//LED是自己任意定義且容易記憶的符號

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

LED=1; //將P1.0口賦值 1,對外輸出高電平

LED=0; //將P1.0口賦值 0,對外輸出低電平

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

2-IO輸出-點亮1個LED燈方法2

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的一個LED燈

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用1個字節(jié)對單個端口賦值

P1 = 0xFF; //P1口全部為高電平,對應(yīng)的LED燈全滅掉,

//ff換算成二進(jìn)制是 1111 1111

P1 = 0xfe; //P1口的最低位點亮,可以更改數(shù)值是其他的燈點亮

//0xfe是16進(jìn)制,0x開頭表示16進(jìn)制數(shù),

//fe換算成二進(jìn)制是 1111 1110

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

3-IO輸出-點亮多個LED燈方法1

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的多個LED燈

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

sbit LED1=P1^1;//LED是自己任意定義且容易記憶的符號

sbit LED2=P1^2;

sbit LED3=P1^3;

sbit LED4=P1^4;

sbit LED5=P1^5;

sbit LED6=P1^6;

sbit LED7=P1^7;

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

LED0=0; //將P1.0口賦值 0,對外輸出低電平

LED1=1;

LED2=0;

LED3=1;

LED4=0;

LED5=1;

LED6=0;

LED7=1;

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

4-IO輸出-點亮多個LED燈方法2

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的多個LED燈

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

P1=0x55; //換成二進(jìn)制是0101 0101

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

5-閃爍1個LED

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的1個LED燈閃爍

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

//LED是自己任意定義且容易記憶的符號

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

while (1) //主循環(huán)

{

LED0=0; //將P1.0口賦值 0,對外輸出低電平

Delay(10000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

//用于改變閃爍頻率

LED0=1; //將P1.0口賦值 1,對外輸出高電平

Delay(10000);

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

6-不同頻率閃爍1個LED燈

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的1個LED燈閃爍

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,

//LED是自己任意定義且容易記憶的符號

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

while (1) //主循環(huán)

{

for(i=0;i<10;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行10次

{

LED0=0; //將P1.0口賦值 0,對外輸出低電平

Delay(5000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

//用于改變閃爍頻率

LED0=1; //將P1.0口賦值 1,對外輸出高電平

Delay(5000);

}

for(i=0;i<10;i++)

{

LED0=0; //將P1.0口賦值 0,對外輸出低電平

Delay(60000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

//用于改變閃爍頻率

LED0=1; //將P1.0口賦值 1,對外輸出高電平

Delay(60000);

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

7-不同頻率閃爍多個LED燈

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:點亮P1口的多個LED燈閃爍

該程序是單片機學(xué)習(xí)中最簡單最基礎(chǔ)的,

通過程序了解如何控制端口的高低電平

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,LED是自己任意定義且容易記憶的符號

sbit LED1=P1^1;

sbit LED2=P1^2;

sbit LED3=P1^3;

sbit LED4=P1^4;

sbit LED5=P1^5;

sbit LED6=P1^6;

sbit LED7=P1^7;

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

//此方法使用bit位對單個端口賦值

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

while (1) //主循環(huán)

{

for(i=0;i<10;i++) //加入 for循環(huán),表明for循環(huán)大括號中

//的程序循環(huán)執(zhí)行10次

{

LED0=0; //將P1.0口賦值 0,對外輸出低電平

LED2=1;

LED4=0;

Delay(5000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

//用于改變閃爍頻率

LED0=1; //將P1.0口賦值 1,對外輸出高電平

LED2=0;

LED4=1;

Delay(5000);

}

for(i=0;i<10;i++)

{

LED0=0; //將P1.0口賦值 0,對外輸出低電平

LED2=1;

LED4=0;

Delay(60000); //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;

//用于改變閃爍頻率

LED0=1; //將P1.0口賦值 1,對外輸出高電平

LED2=0;

LED4=1;

Delay(60000);

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

8-8位LED左移

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:左移,直至LED全部點亮,左移符號 <<

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

Delay(50000);

P1=0xfe; //賦初始值

for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

{

Delay(50000);

P1<<=1;

}

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

9-8位LED右移

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:右移,直至LED全部點亮,右移符號 >>

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

Delay(50000);

P1=0x7f; //賦初始值

for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

{

Delay(50000);

P1>>=1;

}

while (1) //主循環(huán)

{

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

10-LED循環(huán)左移

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:循環(huán)左移,始終一個led點亮,并循環(huán)執(zhí)行流水動作,左移符號 << 邏輯或符號 |

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

Delay(50000);

P1=0xfe; //賦初始值

while (1) //主循環(huán)

{

for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

{

Delay(50000);

P1<<=1;

P1=P1|0x01; //左移后,最右端自動賦值0,所以需要該語句賦值1

}

P1=0xfe; //重新賦初始值

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

11-LED循環(huán)右移

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:循環(huán)右移,始終一個led點亮,并循環(huán)執(zhí)行流水動作,右移符號 >> 邏輯或符號 |

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

Delay(50000);

P1=0x7f; //賦初始值

while (1) , //主循環(huán)

{

for(i=0;i<8;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次

{

Delay(50000);

P1>>=1;

P1=P1|0x80; //右移后,最左端自動賦值0,所以需要該語句賦值1

}

P1=0x7f; //重新賦初始值

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

12-查表顯示LED燈

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過查表獲得1個字節(jié)的值然后賦值給P1端口,ROM允許情況可以設(shè)置更多表格

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

/*------------------------------------------------

查表表格

------------------------------------------------*/

unsigned char code table[]={0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0xff,0xff,0x00,0x00,

0x55,0x55,0xaa,0xaa

};

//rom允許情況可以無限添加

/*------------------------------------------------

函數(shù)聲明

------------------------------------------------*/

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

while (1) //主循環(huán)

{

for(i=0;i<16;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)

//執(zhí)行16次,表明表格中有16個元素

{

P1=table[i];

Delay(30000);

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

13-雙燈左移右移閃爍

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:2個led燈先左移,然后右移,然后同時閃爍

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i

//取值范圍 0~255

unsigned char temp;//定義臨時變量用于轉(zhuǎn)換

while (1) //主循環(huán)

{

temp=0xfc;

P1=temp;

for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號

//中的程序循環(huán)執(zhí)行7次

{

Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可

//以更改延時長度;用于改變閃爍頻率

temp<<=1;

temp=temp|0x01; //也可以直接把temp換成P1

P1=temp; //之所以加入temp做中間變量,轉(zhuǎn)換

//完成后直接賦值到端口,防止直接

//操作端口造成的短暫閃爍

}

temp=0x3f;

P1=temp;

for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號

//中的程序循環(huán)執(zhí)行7次

{

Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可以

//更改延時長度;用于改變閃爍頻率

temp>>=1;

temp|=0x80; //等效于 temp=temp|0x80

P1=temp;

}

for(i=0;i<3;i++) //加入 for循環(huán),表明for循環(huán)大括號

//中的程序循環(huán)執(zhí)行3次

{

P1=0xff;

Delay(50000);

P1=0x00;

Delay(50000);

} //主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

14-花樣燈

/*-----------------------------------------------

名稱:IO口高低電平控制

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:花樣燈一般有兩種方法實現(xiàn):

1、程序循環(huán)執(zhí)行

2、查表法

這里我們兩種都使用一下

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

/*------------------------------------------------

花樣表格

------------------------------------------------*/

unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0xff,0xff,0x00,0x00,

0x55,0x55,0xaa,0xaa

};//rom允許情況可以無限添加

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

main()

{

unsigned char i; //定義一個無符號字符型

//局部變量 i 取值范圍 0~255

while(1)

{

P1=0xFE; //第1個LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 <<=1;

}

P1=0x7F; //第8個LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 >>=1;

}

P1=0xFE; //第1個LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 <<=1;

P1 |=0x01;

}

P1=0x7F; //第8個LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 >>=1;

P1 |=0x80;

}

//下面通過查表方法獲得花樣參數(shù)

for(i=0;i<16;i++)//查表可以簡單的顯示各種花樣 實用性更強

{

Delay(20000);

P1=seg[i];

}

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

15-PWM調(diào)光

/*-----------------------------------------------

名稱:PWM調(diào)光

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過PWM(脈寬調(diào)制)調(diào)節(jié)LED的亮度

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit LED0=P1^0;// 用sbit 關(guān)鍵字 定義 LED到P1.0端口,LED是自己任意定義且容易記憶的符號

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned int CYCLE=600,PWM_LOW=0;//定義周期并賦值

while (1) //主循環(huán)

{

LED0=1;

Delay(60000); //特意加延時,可以看到熄滅的過程

for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低

//電平時間,這個循環(huán)中低電平時長從1累加到CYCLE(周期)的值,即600次

LED0=0; //點亮LED

Delay(PWM_LOW);//延時長度,600次循環(huán)中從1加至599

LED0=1; //熄滅LED

Delay(CYCLE-PWM_LOW);//延時長度,600次循環(huán)中從599減至1

}

LED0=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //與逐漸變亮相反的過程

LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

16-共陽數(shù)碼管靜態(tài)顯示

/*-----------------------------------------------

名稱:單個共陽數(shù)碼管靜態(tài)顯示

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過賦值給P1,讓數(shù)碼管顯示特定的字符或者數(shù)字

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

void main (void)

{

P1=0xc0; //二進(jìn)制 為 1100 0000 參考數(shù)碼管排列,

//可以得出0對應(yīng)的段點亮,1對應(yīng)的段熄滅,結(jié)果顯示數(shù)字"0"

while(1)

{

}

}

17-1個共陽數(shù)碼管顯示變化數(shù)字

/*-----------------------------------------------

名稱:單個共陽數(shù)碼管動態(tài)顯示變化數(shù)字

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過循環(huán)賦值給P1,讓數(shù)碼管顯示特定的字符或者數(shù)字

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x77,0x7c,0x39,0x5e,0x79,0x71,};

// 顯示數(shù)值表0-9

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

while (1) //主循環(huán)

{

for(i=0;i<16;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行10次

{

P1=dofly_table[i]; //循環(huán)調(diào)用表中的數(shù)值

Delay(60000); //延時,方便觀看數(shù)字變化

}

//主循環(huán)中添加其他需要一直工作的程序

}

}/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

18-單個數(shù)碼管模擬水流

/*-----------------------------------------------

名稱:單個共陽數(shù)碼管模擬水流

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過循環(huán)賦值給P1,讓數(shù)碼管顯示特定流動樣式

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

unsigned char i; //定義一個無符號字符型局部變量 i 取值范圍 0~255

while (1) //主循環(huán)

{

P1=0xfe;

for(i=0;i<6;i++) //加入 for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行6次

{

Delay(10000);

P1<<=1;

P1|=0x01;

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值

unsigned int 是定義無符號整形變量,其值的范圍是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

19-按鍵控制單個數(shù)碼管顯示

/*-----------------------------------------------

名稱:單個共陽數(shù)碼管動態(tài)顯示變化數(shù)字

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過循環(huán)檢測P1口按鍵輸入值,然后用數(shù)碼管輸出,

沒有按鍵按下時原值不變

------------------------------------------------*/

#include<reg52.h> //包含頭文件,一般情況不需要改動,

//頭文件包含特殊功能寄存器的定義

unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,};

// 顯示數(shù)值表0-9

/*------------------------------------------------

主函數(shù)

------------------------------------------------*/

void main (void)

{

while (1) //主循環(huán)

{

switch(P3) //P3口作為獨立按鍵輸入端,檢測端口電平并做如下判斷

{

case 0xfe:P1=dofly_table[1];break;//0xfe = 1111 1110,

//說明連接在P3.0端口的按鍵被按下,顯示對應(yīng)的數(shù)字然后跳出循環(huán)

case 0xfd:P1=dofly_table[2];break;//調(diào)用表中的第三個

//元素 0xa4 下標(biāo) 0 才表示數(shù)組中的第一個元素

case 0xfb:P1=dofly_table[3];break;

case 0xf7:P1=dofly_table[4];break;

case 0xef:P1=dofly_table[5];break;

case 0xdf:P1=dofly_table[6];break;

case 0xbf:P1=dofly_table[7];break;

case 0x7f:P1=dofly_table[8];break;

default:break; //如果都沒按下,直接跳出

}

//主循環(huán)中添加其他需要一直工作的程序

}

}

20-單個數(shù)碼管指示邏輯電平

/*-----------------------------------------------

名稱:單個共陽數(shù)碼管指示邏輯電平

論壇:www.doflye.net

編寫:shifang

日期:2009.5

修改:無

內(nèi)容:通過循環(huán)檢測P3.2口電平輸入值,然后用數(shù)碼管輸出"H" or "L",

表示該端口現(xiàn)在連接的是高電平還是低電平

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
1小時c語言入門
單片機編程實例80例大全
第十章 習(xí)題練習(xí)與積累
單片機彩燈是怎樣點亮
可編程定時器循環(huán)開關(guān)程序(STC15F104W)實測可用。
51入門系列教程| 華麗的顯示(數(shù)碼管篇)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服