51单片机经典实例源码.docx

上传人:b****4 文档编号:4222530 上传时间:2023-05-06 格式:DOCX 页数:38 大小:122.13KB
下载 相关 举报
51单片机经典实例源码.docx_第1页
第1页 / 共38页
51单片机经典实例源码.docx_第2页
第2页 / 共38页
51单片机经典实例源码.docx_第3页
第3页 / 共38页
51单片机经典实例源码.docx_第4页
第4页 / 共38页
51单片机经典实例源码.docx_第5页
第5页 / 共38页
51单片机经典实例源码.docx_第6页
第6页 / 共38页
51单片机经典实例源码.docx_第7页
第7页 / 共38页
51单片机经典实例源码.docx_第8页
第8页 / 共38页
51单片机经典实例源码.docx_第9页
第9页 / 共38页
51单片机经典实例源码.docx_第10页
第10页 / 共38页
51单片机经典实例源码.docx_第11页
第11页 / 共38页
51单片机经典实例源码.docx_第12页
第12页 / 共38页
51单片机经典实例源码.docx_第13页
第13页 / 共38页
51单片机经典实例源码.docx_第14页
第14页 / 共38页
51单片机经典实例源码.docx_第15页
第15页 / 共38页
51单片机经典实例源码.docx_第16页
第16页 / 共38页
51单片机经典实例源码.docx_第17页
第17页 / 共38页
51单片机经典实例源码.docx_第18页
第18页 / 共38页
51单片机经典实例源码.docx_第19页
第19页 / 共38页
51单片机经典实例源码.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

51单片机经典实例源码.docx

《51单片机经典实例源码.docx》由会员分享,可在线阅读,更多相关《51单片机经典实例源码.docx(38页珍藏版)》请在冰点文库上搜索。

51单片机经典实例源码.docx

51单片机经典实例源码

#include

#include"LCD1602.h"

uintNum=0;

ucharNumCode[4]={0,0,0,0};

//---------------中断加一--------------

voidmy_INT1(void)interrupt0

{

Num++;

}

//-----------------------------

voidDisp()

{

uintm;

NumCode[0]=Num/1000;

NumCode[1]=Num%1000/100;

NumCode[2]=Num%100/10;

NumCode[3]=Num%10;

for(m=0;m<4;m++)

{

LCD_Disp(0,5+m,NumCode[m]+0x30);

}

}

//---------------------

voidmain()

{

IT0=1;EA=1;EX0=1;

LCD_Init();

while

(1)

{

Disp();

}

}

#include

#include"LCD1602.h"

uintNum=3728;

ucharNumCode[4]={0,0,0,0};

//-----------------------自动加一-------------------------

voidDisp()

{

ucharm;

NumCode[0]=Num/1000;

NumCode[1]=Num%1000/100;

NumCode[2]=Num%100/10;

NumCode[3]=Num%10;

for(m=0;m<4;m++)

{

LCD_Disp(0,6+m,NumCode[m]+0x30);

}

}

//--------------------------------------------

voidmain()

{

LCD_Init();

while

(1)

{

Disp();

Num++;

Delay(50000);

}

}

 

#include

#include"LCD1602.h"

uintNum=5432;

ucharNumCode[4]={0,0,0,0};

//----------定时器T0按键加一---------------

voidT0Init()

{TMOD=0x0d;

TH0=5432/256;

TL0=5432%256;

TR0=1;}

//------------------------------------------

voidDisp()

{intm;

NumCode[0]=Num/1000;

NumCode[1]=Num%1000/100;

NumCode[2]=Num%100/10;

NumCode[3]=Num%10;

for(m=0;m<4;m++)

{

LCD_Disp(0,5+m,NumCode[m]+0x30);

}

}

//-------------------------------------------

voidmain()

{

T0Init();

LCD_Init();

while

(1)

{

Num=TH0*256+TL0;

Disp();

}

}

#include

#defineucharunsignedchar

ucharT0Num;

sbitLED=P1^0;

//--------定时器TO使LED自动一秒闪一下---------

voidT0Init()

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

TR0=1;

ET0=1;

EA=1;

}

//---------------------------

voidT0Sever()interrupt1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

T0Num++;

if(T0Num==100)

{

LED=~LED;

T0Num=0;

}

}

//---------------------------

voidmain()

{

T0Init();

while

(1)

{

}

}

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharnum[10]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

};

uintshu;

//-----------外部中断按键加减一----------

voidmy_INT1(void)interrupt0

{

shu--;

}

//-----------------------------------------------------

voidmy_INT2(void)interrupt2

{

shu++;

}

//------------------------------------------------------

voidmain()

{

shu=5;

IT0=1;EA=1;EX0=1;

IT1=1;EA=1;EX1=1;

while

(1)

{

P2=num[shu];

if(shu==10){shu=0;}

if(shu==-1){shu=9;}

}

}

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharDisp[4]={0x9a,0xca,0xa9,0xac};

//------------------------交通灯---------------------

voiddelay3ms(uchari)

{

uintn,j,k;

for(;i>=1;i--)

{

for(n=2;n>=1;n--)

{

for(j=250;j>=1;j--)

{

for(k=200;k>=1;k--);

}

}

}

}

//-------------------------------------

voidmain()

{

while

(1)

{

P1=Disp[0];delay3ms(4);

P1=Disp[1];delay3ms

(1);

P1=Disp[2];delay3ms(4);

P1=Disp[3];delay3ms

(1);

}

}

#include

#defineucharunsignedchar

ucharT0Num=0;

ucharPWM=50;

sbitLED=P3^7;

//------------PWM频率------

voidT0Init()

{

TMOD=0x01;

TH0=(65536-100)/256;//0.1ms

TL0=(65536-100)%256;

ET0=1;

EA=1;

TR0=1;

}

//-----------------------

voidEx0Init()

{

IT0=1;

EX0=1;

EA=1;

}

//------------------------

voidmain()

{

T0Init();

Ex0Init();

while

(1)

{

}

}

//------------------------

voidT0Server()interrupt1

{

TH0=(65536-100)/256;//0.1ms

TL0=(65536-100)%256;

T0Num++;

if(T0Num==PWM)

{

LED=1;

}

if(T0Num==100)

{

T0Num=0;

LED=0;

}

}

//--------------------------

voidInt0Server()interrupt0

{

PWM=PWM+5;

if(PWM>=100)

{

PWM=0;

}

}

 

include

#defineucharunsignedchar

uchari,Flagls,Scon,T0Num;

ucharcodeLedCode[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//-------串口74LS164驱动流水灯--------------

voidT0_Init()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

}

//----------------

voidSerial_Init()

{

Scon=0x00;

}

//------------------

voidSerialSend(ucharch)

{

SBUF=ch;

while(TI==0)

{

}

TI=0;

}

//--------------

voidmain()

{

T0_Init();

Serial_Init();

while

(1)

{

if(Flagls==1)

{

Flagls=0;

SerialSend(LedCode[i]);

i++;

if(i>7)

{

i=0;

}

}

}

}

//------------------

voidToserver()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

T0Num++;

if(T0Num>20)

{

T0Num=0;

Flagls=1;

}

}

 

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharDispCode[10]={0xfc,0x60,0xda,0xf2,0x66,

0xb6,0x3e,0xe0,0xfe,0xe6};

uintNum=9995;

ucharNumCode[4]={0,0,0,0};

ucharT1Num;

bitFlag1s=0;

//---------串口74LS164驱动数码管----------------

voidSerialInit()

{

SCON=0x00;

}

//-----------------------------------------

voidT1Init()

{

TMOD=0x10;

TH1=-10000/256;

TL1=-10000%256;

TR1=1;

ET1=1;

EA=1;

}

//------------------------------------------

voidDisp()

{

uchari;

NumCode[0]=Num/1000;

NumCode[1]=Num%1000/100;

NumCode[2]=Num%100/10;

NumCode[3]=Num%10;

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

{

SBUF=DispCode[NumCode[3-i]];

while(TI==0)

{

}

TI=0;

}

}

//------------------------------------------

voidmain()

{

SerialInit();

T1Init();

while

(1)

{

if(Flag1s==1)

{

Flag1s=0;

Disp();

}

}

}

//-----------------------------------------

voidT1Server()interrupt3

{

TH1=-10000/256;

TL1=-10000%256;

T1Num++;

if(T1Num==100)

{

T1Num=0;

Flag1s=1;

Num++;

if(Num>9999)

{

Num=0;

}

}

}

 

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharT0Num;

bitFlag1s=0;

ucharDispCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//--------MUC_MUC串口自发自收-----------

voidSerialInit()

{

SCON=0x50;//方式1允许接收

PCON=0x00;//串口波特率不加倍

TMOD|=0x20;//定时器1,方式2

TH1=0xfd;//波特率为9600

TL1=0xfd;

TR1=1;//启动定时器

ES=1;

EA=1;

}

//--------------------------------

voidT0Init()

{

TMOD|=0x01;

TH0=-10000/256;

TL0=-10000%256;

ET0=1;

TR0=1;

EA=1;

}

//--------------------------------

voidmain()

{

uchark;

SerialInit();

T0Init();

while

(1)

{

if(Flag1s==1)

{

Flag1s=0;

SBUF=DispCode[k];

k++;

if(k>9)

{

k=0;

}

}

}

}

//--------------------------------

voidSerialServer()interrupt4

{

if(RI==1)

{

RI=0;

P2=SBUF;

}

else

{

TI=0;

}

}

//--------------------------------

voidT0Server()interrupt1

{

TH0=-10000/256;

TL0=-10000%256;

T0Num++;

if(T0Num==100)

{

T0Num=0;

Flag1s=1;

}

}

 

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharT0Num;

bitFlag1s=0;

ucharDispCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//-----------两机通信(主机代码)----------------------

voidSerialInit()

{

SCON=0x50;//方式1允许接收

PCON=0x00;//串口波特率不加倍

ES=1;

EA=1;

}

//---------------------------------

voidT1Init()

{

TMOD=0x20;//定时器1,方式2

TH1=0xfd;//波特率为9600

TL1=0xfd;

TR1=1;//启动定时器

}

//--------------------------------

voidT0Init()

{

TMOD|=0x01;

TH0=-10000/256;

TL0=-10000%256;

ET0=1;

TR0=1;

EA=1;

}

//--------------------------------

voidmain()

{

uchark;

SerialInit();

T1Init();

T0Init();

while

(1)

{

if(Flag1s==1)

{

Flag1s=0;

P2=DispCode[k];

SBUF=DispCode[k];

k++;

if(k>9)

{

k=0;

}

}

}

}

//--------------------------------

voidSerialServer()interrupt4

{

if(RI==1)

{

RI=0;

}

else

{

TI=0;

}

}

//--------------------------------

voidT0Server()interrupt1

{

TH0=-10000/256;

TL0=-10000%256;

T0Num++;

if(T0Num==100)

{

T0Num=0;

Flag1s=1;

}

}

#include

#defineucharunsignedchar

ucharCh;

//------两机通信(从机代码)----------------

voidSerialInit()

{

SCON=0x50;//方式1允许接收

PCON=0x00;//串口波特率不加倍

ES=1;

EA=1;

}

//---------------------------------

voidT1Init()

{

TMOD=0x20;//定时器1,方式2

TH1=0xfd;//波特率为9600

TL1=0xfd;

TR1=1;//启动定时器

}

//--------------------------------

voidmain()

{

SerialInit();

T1Init();

while

(1)

{

P2=Ch;

}

}

//--------------------------------

voidSerialServer()interrupt4

{

if(RI==1)

{

RI=0;

Ch=SBUF;

}

else

{

TI=0;

}

}

 

#include

#defineucharunsignedchar

ucharDispCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

ucharNum=5;

//----------------多机通信(主机代码)------------

voidExInit()

{IT0=1;

IT1=1;

EX0=1;

EX1=1;

EA=1;

}

//---------------------------------

voidSerialInit()

{SCON=0xd0;//方式3允许接收

PCON=0x00;//串口波特率不加倍

TMOD=0x20;//定时器1,方式2

TH1=0xfd;//波特率为9600

TL1=0xfd;

TR1=1;//启动定时器

ES=1;

EA=1;

}

//--------------------------------

voidSBUFSend(ucharCh)

{SBUF=Ch;

while(TI==0)

{}

TI=0;}

//--------------------------------

voidSendControl(ucharAddr,ucharData)

{TB8=1;

SBUFSend(Addr);

TB8=0;

SBUFSend(Data);

}

//--------------------------------

voidmain()

{SerialInit();

ExInit();

while

(1)

{}

}

//--------------------------------

voidSerialServer()interrupt4

{ucharCh;

if(RI==1)

{RI=0;

Ch=SBUF;

if(Ch=='b')

{

P2=DispCode[1];

}

if(Ch=='c')

{

P2=DispCode[2];

}

}

else

{TI=0;}

}

//-------------------------------

voidEx0Server()interrupt0

{Num++;

if(Num>9)

{

Num=0;

}

SendControl('b',Num);

}

//-----------------------------

voidEx1Server()interrupt2

{

Num--;

if(Num==255)

{

Num=9;

}

SendControl('c',Num);

}

*************************************

#include

#defineucharunsignedchar

ucharDispCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//------------多机通信(从机1)---------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2