单片机系统设计方案文档格式.docx

上传人:b****6 文档编号:19265247 上传时间:2023-01-04 格式:DOCX 页数:55 大小:1.47MB
下载 相关 举报
单片机系统设计方案文档格式.docx_第1页
第1页 / 共55页
单片机系统设计方案文档格式.docx_第2页
第2页 / 共55页
单片机系统设计方案文档格式.docx_第3页
第3页 / 共55页
单片机系统设计方案文档格式.docx_第4页
第4页 / 共55页
单片机系统设计方案文档格式.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

单片机系统设计方案文档格式.docx

《单片机系统设计方案文档格式.docx》由会员分享,可在线阅读,更多相关《单片机系统设计方案文档格式.docx(55页珍藏版)》请在冰豆网上搜索。

单片机系统设计方案文档格式.docx

121;

y++);

//使用两个嵌套的for语句来实现延时,先赋值x=0,判断一下x<

z,若为真则执行下一个for语句,赋值y=0,判断一下y<

121,若为真则执行下一条,若无下一条则执行y++,直到y<

121为假,则在执行x++,在判断一下x<

z,若为真则再执行一次y的for语句,为假则跳出循环,结束。

}

voidmain()//定义主函数

P2_1=0;

//将P2-1口赋值为0,即给予P2_1一个低电平,在电路中led灯另一端接VCC高电平,给一低电平即将LED灯导通,使其亮。

2.2Keil仿真

2.3Protues仿真

三、流水灯循环点亮

3.1原理介绍

3.2程序代码

reg51.h>

 

intrins.h>

#defineucharunsignedchar 

#defineuintunsignedint//加黑的都是定义头文件

voidDelayMS(uintx) 

//延时 

uchari;

while(x--) 

for(i=0;

i<

120;

i++);

//采用for循环来实现延时

voidmain() 

//主程序 

P2=0x01;

while

(1) 

7;

i++) 

//i=0,判断i<

7,再执行P2=_crol_(P2,1),之后再执行i++

P2=_crol_(P2,1);

//以位的形式将P2左循环移动1位 

DelayMS(150);

i++) 

//i=0,判断i<

P2=_cror_(P2,1);

//以位的形式将P2右循环移动 

1位

}//利用循环移位函数_crol_(左循环)和_cror_(右循环)形成来回滚动的效果 

0xA5;

_crol_(a,1);

/* 

now 

is 

0xD2 

*/ 

unsigned 

char 

_crol_ 

(unsigned 

c, 

b);

// 

使无符号字符循环向左移b位

_cror_ 

使无符号字符循环向右移动b位

功 

能:

_crol_,_irol_,_lrol_以位形式将变量val循环左移n位。

3.3Keil结果展示

3.4protues仿真

四、心形灯闪烁

4.1程序代码

#include<

REGX52.H>

#defineucharunsignedchar

ucharcodetable0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}//LED从低位往高位移

ucharcodetable1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

//LED从高位往低位移

ucharcodetable2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

//LED从1个亮到8个都点亮(低位往高位移)

ucharcodetable3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};

//LED从1个亮到8个都亮(高位往低位移)

ucharcodetable4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

//led从8个全亮到一个不亮(从低位到高位)

ucharcodetable5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

//led从8个全亮到一个不亮(从高位到低位)

ucharcodetable6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};

//从低位往高位移(最低位始终为0)

ucharcodetable7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};

//从高位往低位移(最高位始终为0)

uchari,j;

//定义循环变量

uinttt=70;

//定义时间函数

voiddelay(uinttime)//定义延时函数

{

uintx,y;

for(x=time;

x>

0;

x--)

for(y=110;

y>

y--);

//使用两个嵌套的for语句来实现延时

}

voiddisp0()//定义状态0所有led灯闪烁3次

for(i=0;

3;

i++)//for循环

P0=0x00;

P2=0x00;

P3=0x00;

P1=0x00;

//led灯一端接VCC,另一端使P0/P1/P2/P3为0即低电平,则led灯导通,led亮

delay(300);

P0=0xff;

P2=0xff;

P3=0xff;

P1=0xff;

//led灯一端接VCC,另一端使P0/P1/P2/P3为0即高电平,则led灯截止,led灭

//整个状态实现了led灯的亮灭闪烁3次

voiddisp1()//状态1LED逆时针转一圈

8;

i++)

P2=table1[i];

//table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

LED从高位往低位移(P2.8为高位,结合图可知)

delay(100);

//给P2高电平,P2截止,P2全灭

P3=table1[i];

//LED从高位往低位移(P3.8为高位,结合图可知)

//给P3高电平,P3截止,P3全灭

P1=table1[i];

//LED从高位往低位移(P3.8为高位,结合图可知)

//给P1高电平,P1截止,P1全灭

i++)

P0=table0[i];

//table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}LED从低位往高位移

P0=0xff;

//给P0高电平,P0截止,P0全灭

voiddisp2()//状态2LED顺时针转一圈

P0=table1[i];

P1=table0[i];

P3=table0[i];

P2=table0[i];

voiddisp3()//状态34个LED灯同时顺时、逆时针移动1/4圈

//P0组LED从高位往低位移

//P1组LED从高位往低位移

//P2组LED从高位往低位移

//P3组LED从低位往高位移

//P0组LED从低位往高位移

//P1组LED从低位往高位移

//P2组LED从低位往高位移

//P3组LED从高位往低位移

//P3,P0全组都灭

voiddisp4()//状态42个LED同时顺时针移动半圈

//P1组LED从高位往低位移

//P3组LED从高位往低位移

//P0组LED从低位往高位移

voiddisp5()//状态52个LED同时逆时针移动半圈

//P0组LED从高位往低位移

//P3组LED从低位往高位移

//P1组LED从低位往高位移

//P2组LED从低位往高位移

//P1,P2全组都灭

voiddisp6()//状态6LED自上而下逐渐点亮(一半点亮一半不亮)

P0=table3[i];

P2=table3[i];

P1=table2[i];

P3=table3[i];

//LED从1个亮到8个都点亮(高位往低位移)

voiddisp7()//状态7LED自下而上逐渐点亮(直到全部点亮)

P1=table3[i];

P3=table2[i];

//LED从1个亮到8个都点亮(低位往高位移)delay(100);

P0=table2[i];

P2=table2[i];

voiddisp8()//状态8间隔8格的4个LED亮并逆时针旋转

for(j=0;

j<

2;

j++)

for(i=0;

{

P0=table1[i];

P2=table0[i];

P1=table0[i];

P3=table0[i];

delay(100);

}

voiddisp9()//状态9间断8格的led亮,再逆时针逐渐点亮(直到全部点亮)

delay(500);

voiddisp10()//状态10从led全部亮到全不亮(间隔8格的4个led开始逆时针熄灭)

9;

P0=table5[i];

P2=table4[i];

//led从8个全亮到一个不亮(从低位到高位)

P1=table4[i];

P3=table4[i];

delay(300);

voiddisp11()//状态11间隔8格的4个LED亮并顺时针旋转

P0=table0[i];

P2=table1[i];

P1=table1[i];

P3=table1[i];

voiddisp12()

delay(1000);

voiddisp13()

P0=table4[i];

P2=table5[i];

P1=table5[i];

P3=table5[i];

voiddisp14()

voiddisp15()

voiddisp16()

5;

P0=0xaa;

P1=0xaa;

P2=0xaa;

P3=0xaa;

P0=~P0;

P1=~P1;

P2=~P2;

P3=~P3;

delay(200);

voiddisp17()

}

/*******************************/

delay(50);

voiddisp18()

voiddisp19()

voiddisp20()

voiddisp21()

voiddisp22()

{

P2=t

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

当前位置:首页 > 医药卫生 > 临床医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1