拿走不謝
第一章
#include<reg51.h> //包含51單片機寄存器定義的頭文件
void main(void)
{
P1=0xfe; //P1=1111 1110B,即P1.0輸出低電平
}
第二章
第一節(jié)
//實例4:用單片機控制一個燈閃爍:認識單片機的工作頻率
#include<reg51.h> //包含單片機寄存器的頭文件
/****************************************
函數(shù)功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數(shù)傳遞
{
unsigned int i; //定義無符號整數(shù),最大取值范圍65535
for(i=0;i<20000;i++) //做20000次空循環(huán)
; //什么也不做,等待一個機器周期
}
/*******************************************************
函數(shù)功能:主函數(shù) (C語言規(guī)定必須有也只能有1個主函數(shù))
********************************************************/
void main(void)
{
while(1) //無限循環(huán)
{
P1=0xfe; //P1=1111 1110B, P1.0輸出低電平
delay(); //延時一段時間
P1=0xff; //P1=1111 1111B, P1.0輸出高電平
delay(); //延時一段時間
}
}
第二節(jié)
//實例5:將 P1口狀態(tài)分別送入P0、P2、P3口:認識I/O口的引腳功能
#include<reg51.h> //包含單片機寄存器的頭文件
/*******************************************************
函數(shù)功能:主函數(shù) (C語言規(guī)定必須有也只能有1個主函數(shù))
********************************************************/
void main(void)
{
while(1) //無限循環(huán)
{
P1=0xff; // P1=1111 1111B,熄滅LED
P0=P1; // 將 P1口狀態(tài)送入P0口
P2=P1; // 將 P1口狀態(tài)送入P2口
P3=P1; // 將 P1口狀態(tài)送入P3口
}
}
第三節(jié)
//實例6:使用P3口流水點亮8位LED
#include<reg51.h> //包含單片機寄存器的頭文件
/****************************************
函數(shù)功能:延時一段時間
*****************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
/*******************************************************
函數(shù)功能:主函數(shù)
********************************************************/
void main(void)
{
while(1)
{
P3=0xfe; //第一個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xfd; //第二個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xfb; //第三個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xf7; //第四個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xef; //第五個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xdf; //第六個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0xbf; //第七個燈亮
delay(); //調(diào)用延時函數(shù)
P3=0x7f; //第八個燈亮
delay(); //調(diào)用延時函數(shù)
}
}
第四節(jié)
//實例7:通過對P3口地址的操作流水點亮8位LED
#include<reg51.h> //包含單片機寄存器的頭文件
sfr x=0xb0; //P3口在存儲器中的地址是b0H, 通過sfr可定義8051內(nèi)核單片機
//的所有內(nèi)部8位特殊功能寄存器,對地址x的操作也就是對P1口的操作
/****************************************
函數(shù)功能:延時一段時間
*****************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
; //利用循環(huán)等待若干機器周期,從而延時一段時間
}
/*****************************************
函數(shù)功能:主函數(shù)
******************************************/
void main(void)
{
while(1)
{
x=0xfe; //第一個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xfd; //第二個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xfb; //第三個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xf7; //第四個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xef; //第五個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xdf; //第六個燈亮
delay(); //調(diào)用延時函數(shù)
x=0xbf; //第七個燈亮
delay(); //調(diào)用延時函數(shù)
x=0x7f; //第八個燈亮
delay(); //調(diào)用延時函數(shù)
}
}
第三章
第一節(jié)
//實例8:用不同數(shù)據(jù)類型控制燈閃爍時間
#include<reg51.h> //包含單片機寄存器的頭文件
/******************************************************
函數(shù)功能:用整形數(shù)據(jù)延時一段時間
******************************************************/
void int_delay(void) //延時一段較長的時間
{
unsigned int m; //定義無符號整形變量,雙字節(jié)數(shù)據(jù),值域為0~65535
for(m=0;m<36000;m++)
; //空操作
}
/******************************************************
函數(shù)功能:用字符型數(shù)據(jù)延時一段時間
******************************************************/
void char_delay(void) //延時一段較短的時間
{
unsigned char i,j; //定義無符號字符型變量,單字節(jié)數(shù)據(jù),值域0~255
for(i=0;i<200;i++)
for(j=0;j<180;j++)
; //空操作
}
/******************************************************
函數(shù)功能:主函數(shù)
******************************************************/
void main(void)
{
unsigned char i;
while(1)
{
for(i=0;i<3;i++)
{
P1=0xfe; //P1.0口的燈點亮
int_delay(); //延時一段較長的時間
P1=0xff; //熄滅
int_delay(); //延時一段較長的時間
}
for(i=0;i<3;i++)
{
P1=0xef; //P1.4口的燈點亮
char_delay(); //延時一段較長的時間
P1=0xff; //熄滅
char_delay(); //延時一段較長的時間
}
}
}
太多了,要的話聯(lián)系
|