单片机入门小程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机的学习是一个动手实践的过程,很多同学在学习单片机的初期总是觉得很难,无法入门。本人根据自己的学习经历,结合自己刚学习单片机的体验,写下几个小的程序供大家参考,如能掌握如下几个小程序的思想与精髓,那么就已经探踏入了单片机的大门。学习单片机的核心就是动手实践,当我们通过自己的努力把第一个LED点亮时,我们就会信心加倍,之后的学习就会变得轻松!希望对大家有所帮助。

一个LED闪烁

#include

sbit led=P0^3;

unsigned int a;

void main()

{ P0=0x00;

while(1)

{a=100000;

led=1;

while(a--);

a=10000;

led=0;

while(a--); }

}

两个led闪烁

#include

#define uchar unsigned char

#define uint unsigned int

void delay();

void main()

{

while(1)

{ P0=0xaa;

delay();

P0=0x00;

delay();

}

}

void delay()

{

uchar x,y;

for(x=110;x>0;x--)

for(y=120;y>0;y--);

}

流水灯

#include

#include

void delay();

void main()

{ unsigned char temp;

P0=0xef;

temp=P0;

delay();

while(1)

{

temp=_crol_(temp,1);

delay();

}

}

void delay()

{ unsigned char x,y;

for(x=40;x>0;x--)

for(y=200;y>0;y--);

}

键控移位信号灯

#include

#include

#define uchar unsigned char

#define uint unsigd neint

sbit k1=P1^0;

sbit k2=P1^1;

void delay(uchar z);

void main()

{

P0=0X18;

while(1)

{

if(k1)

P0=_crol_(P0,1);

if(k2)

P0=_cror_(P0,1);

}

}

void delay(uchar z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--)

;}

中断的简单应用

1. 利用定时器中断实现LED闪烁#include

#define uchar unsigned char

#define uint unsigned int

sbit led1=P1^0;

uchar num;

void main()

{

P1=0x00;

TMOD=0x01;

TH0=(65536-45872)/265;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

TR0=1;

while(1);

}

void T0_time()interrupt 1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num++;

if(num==20)

{

num=0;

led1=~led1;

}

}

2. 数码管记录LED闪的次数

#include

#define uchar unsigned char

#define uint unsigned int

sbit led=P1^2;

void display(uchar,uchar);

uchar num=0,num1=0,num2=0,shi=0,ge=0;

uchar code array[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; void main()

{

TMOD=0x11;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

while(1);

{

display(shi,ge);

}

}

void display(uchar shi,uchar ge)

{

P2=0x03;

// P1^0=array[shi];

相关文档
最新文档