学习51单片机开发板

2019-01-27 18:39

一、发光二极管

1.利用位操作打开第一个发光二极管

#include

sbit D1=P1^0; //单片机P1口置0 void main() {

D1=0; }

2.利用总线操作打开第二个发光二极管

#include void main() {

P1=0xfd; //单片机P1有8个口,设为11111101,设置第二个亮 }

3.使发光二极管闪烁

#include sbit p1_1=P1^1; unsigned int a,b;

void delay(unsigned int b) //当b=51180时,亮的持续时间为0.5s。 {

while(b--); }

void main() {

while(1) //一般情况下,我们默认程序会循环

{ //当我们想让程序停在某一步的时候,while(1); a=51180; p1_1=0; delay(a); p1_1=1; delay(a); }

}

4.流水灯 法一:

#include sbit p1_0=P1^0; sbit p1_1=P1^1; sbit p1_2=P1^2; sbit p1_3=P1^3; sbit p1_4=P1^4; sbit p1_5=P1^5; sbit p1_6=P1^6; sbit p1_7=P1^7;

unsigned int a,b;

void delay(unsigned int b) {

while(b--); }

void main() {

while(1) {

a=51180; p1_0=0; delay(a); p1_0=1; p1_1=0; delay(a); p1_1=1; p1_2=0; delay(a); p1_2=1; p1_3=0; delay(a); p1_3=1; p1_4=0;

}

}

delay(a); p1_4=1; p1_5=0; delay(a); p1_5=1; p1_6=0; delay(a); p1_6=1; p1_7=0; delay(a); p1_7=1;

法二:利用循环移位的方法

例如:1111 1110--1111 1101-1111 1011,这是循环左移 #include

#include //调用循环左移函数的头文件。 unsigned int a,b; unsigned char temp;

void delay(unsigned int b) {

while(b--); }

void main() { temp=0xfe; P1=temp;

/*这边可能有疑问,那就是P1根本没定义,怎么可以直接用呢,原因是,P1相当于特殊字符,就是代表了单片机上的P1*/

//类似的还有很多,例如:P2^3=0,表示蜂鸣器发声,可以通过查看 while(1) {

a=51180;

temp=_crol_(temp,1); delay(51180); P1=temp; }

}

5.流水灯,从上到下,从下到上循环亮

#include #include unsigned int i,j; //不知道什么原因,i,j必须设为外部参数 unsigned char temp,temp1; void delay(unsigned int b) {

while(b--); }

void repeat() {

temp=0xfe; P1=temp;

for(i=7;i>0;i--) {

delay(51180);

temp=_crol_(temp,1); P1=temp; }

for(j=7;j>0;j--) {

delay(51180);

temp=_cror_(temp,1); P1=temp; } }

void main() { while(1) {

repeat(); } }

二、数码管 1.数码管的显示

#include

sbit dula=P2^6; //控制段选 sbit wela=P2^7; //控制位选

void main() {

wela=1; //打开位选

P0=0xfe; //选择1111 1110,选择第一个数码管。注意只有6个数码 //管,所以前两位必须11 wela=0; //关闭位选,此时即便改变P0想重新选择数码管也无用

dula=1; //打开段选

P0=0x06; //设置数码管的显示数字 dula=0; //关闭位选

while(1); //让数码管持续显示,当然也可以用delay }

2.让数码管1-2-3-4...显示 #include sbit dula=P2^6; sbit wela=P2^7; unsigned char num;

unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};

void delay(unsigned int z)


学习51单片机开发板.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:会计基础易错

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: