单片机作业 物流ZY1101 俞世昌.docx

上传人:b****2 文档编号:13906493 上传时间:2023-06-19 格式:DOCX 页数:22 大小:1MB
下载 相关 举报
单片机作业 物流ZY1101 俞世昌.docx_第1页
第1页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第2页
第2页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第3页
第3页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第4页
第4页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第5页
第5页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第6页
第6页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第7页
第7页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第8页
第8页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第9页
第9页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第10页
第10页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第11页
第11页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第12页
第12页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第13页
第13页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第14页
第14页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第15页
第15页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第16页
第16页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第17页
第17页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第18页
第18页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第19页
第19页 / 共22页
单片机作业 物流ZY1101 俞世昌.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机作业 物流ZY1101 俞世昌.docx

《单片机作业 物流ZY1101 俞世昌.docx》由会员分享,可在线阅读,更多相关《单片机作业 物流ZY1101 俞世昌.docx(22页珍藏版)》请在冰点文库上搜索。

单片机作业 物流ZY1101 俞世昌.docx

单片机作业物流ZY1101俞世昌

单片机大作业

物流zy1101俞世昌0121118700126

 

目录

一、LED闪烁仿真

1.1硬件设计

1.1.1LED灯闪烁硬件设计

1.1.2各部分零件及功能

1.2LED灯闪烁软件设计

1.3调试结果

二、数码管流水数字

2.1硬件设计

2.1.1数码管流水数字硬件设计

2.1.2各部分零件及功能

2.2数码管流水数字软件设计

2.3调试结果

三、轮流加热显示器

3..硬件设计

3.1.1轮流加热显示器的硬件设计

3.1.2各部分零件及功能

3.2轮流加热显示器软件设计

3.3调试结果

四、定时报警仿真

4.1硬件设计

4.1.1蜂鸣器定时发声硬件设计

4.1.2各部分零件及功能

4.2蜂鸣器定时发声软件设计

4.3调试结果

五、按键发声

5.1硬件设计

5.1.1按键发声硬件设计

5.1.2各部分零件及功能

5.2按键发声软件设计

5.3调试结果

六、一键多功能按键

6.1硬件设计

6.1.1一键多功能按键硬件设计

6.1.2各部分零件及功能

6.2一键多功能按键软件设计

6.3调试结果

 

一、LED闪烁仿真

1.1硬件设计

1.1.1LED灯闪烁硬件设计

设计图如下:

图1.1LED灯闪烁电路图

1.1.2各部分零件及功能

此电路使用52单片机控制8个LED灯的间隔亮、灭,形成闪烁的效果。

8个LED使用灌电流的方式连接在52单片机的P1端口上。

其中52单片机通过软件程序控制P1端口轮流输出高电平、低电平,从而驱动发光二极管发光和熄灭。

 

LED闪烁电路中用到的电路元件以及各自的功能如表1.1所示

表1.1

器件

说明

发光二极管

显示LED状态

限流电阻

对通过LED的电流大小进行限制

晶体

52单片机工作振荡源

电容

52单片机复位和振荡源工作辅助器件

1.2LED灯闪烁软件设计

C语言程序:

#include

main()

{

unsignedchari,j;

P1=0x00;/*初始化P1输出,LED灯全亮*/

while

(1)

{

for(i=0;i<200;i++)/*for循环软件延时*/

{

for(j=0;j<50;j++);

}

P1=~P1;/*P1端口输出的电平翻转,形成闪烁*/

}

}

1.3LED灯闪烁调试结果

图1.2LED灯闪烁调试结果

 

二、第三节数码管流水数字

2.1硬件设计

2.1.1数码管流水数字硬件设计

设计图如下:

图2.1数码管流水数字硬件设计图

2.1.2各部分零件及功能

此电路使用52单片机实现驱动8段数码管,数码管轮流地循环显示“0”-“7”数字。

8段数码管的公共端连接在VCC上,数码管的8位数据引脚则连接到P1的8位引脚上。

数码管流水数字电路中用到的电路元件以及各自的功能如表2.1所示

表2.1

器件

说明

8段数码管

显示数字或字符

限流电阻

对通过数码管的电流大小进行限制

电容

52单片机复位和振荡源工作辅助器件

2.2数码管流水数字软件设计

C语言程序:

#include

unsignedcharcodeSEGtable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};

main()

{

unsignedchari,j;

unsignedcharcounter=0;/*指示当前显示的数字在表格中存放的位置*/

while

(1)

{

for(i=0;i<250;i++)/*软件延时*/

{for(j=0;j<250;j++);

}

if(counter>=7)/*已经显示到7,回到0继续显示*/

{

counter=0;

}

else

{

counter++;/*数字字符增加*/

}

P1=SEGtable[counter];/*输出字符*/

}

}

2.3数码管流水数字调试结果

调试结果如下:

图2.2数码管流水数字调试结果

三、轮流加热显示器

3.1硬件设计

3.1.1继电器轮流加热硬件设计

 

设计图如下

图3.1继电器轮流加热硬件设计图

3.1.2各部分零件及功能

轮流加热显示系统是一个用51单片机控制3个继电器轮流接通、3个设备加热5s并且使用一位数码管来显示当前正在加热的设备编号。

继电器轮流加热电路中用到的电路元件以及各自的功能如表3.1所示

表3.1

器件

说明

八段数码管

显示数字

限流电阻

对通过数码管的电流大小进行限制

晶体

52单片机工作振荡源

电容

52单片机复位和振荡源工作辅助器件

继电器

外围控制器件

ULN2803

功率驱动器件,用于驱动继电器

 

3.2继电器轮流加热软件设计

#include

#defineON0

#defineOFF1//定义继电器开关常量,注意ULN2038是反向的

#defineNO00xC0

#defineNO10xF9

#defineNO20xA4

#defineNO30xB0//定义数码显示的字形编码,0、1、2、3

sbitR1=P2^0;

sbitR2=P2^1;

sbitR3=P2^2;//定义3个继电器的控制引脚

voidDelayms(unsignedintMS)//延时MS函数

{

unsignedinti,j;

for(i=0;i

for(j=0;j<1141;j++);

}

main

{

unsignedcharSegLED;//数码管显示内容

R1=OFF;

R2=OFF;

R3=OFF;//初始化为关闭

SegLED=NO0;//输出显示0

while

(1)

{

Delayms(50000);

R1=ON;//接通继电器1

SegLED=NO1;

P1=SegLED;//数码管显示1

Delayms(5000);//对1号设备加热5s

R2=ON;//接通继电器2

SegLED=NO2;

P1=SegLED;//数码管显示2

Delayms(5000);//对2号设备加热5s

R3=ON;//接通继电器3

SegLED=NO3;

P1=SegLED;//数码管显示3

Delayms(5000);//对3号设备加热5s

}

}

3.3程序调试

程序调试图如下:

图3.2继电器轮流加热

图3.3继电器轮流加热

四、定时报警仿真

4.1硬件设计

4.1.1蜂鸣器定时发声硬件设计

电路图如图4.1所示。

定时报警电路使用p2.7引脚通过一个NPN三极管驱动蜂鸣器,当P2.7输出高电平三极管导通,蜂鸣器发声,从而让51单片机每隔10min控制蜂鸣器发出警报。

图4.1定时报警电路图

4.1.2各部分零件及功能

蜂鸣器定时发声电路中用到的电路元件以及各自的功能如表4.1所示

表4.1

元件名称

功能

电容

51单片机复位和振荡工作的辅助器件

晶振器

产生时钟信号

AT89C52单片机

控制蜂鸣器

电解电容

用于51单片机复位电路

限流电阻

对通过蜂鸣器的电流大小进行限制

电源

供电

三极管

驱动蜂鸣器

蜂鸣器

当有电流通过时发声

4.2软件设计

定时报警仿真的C语言程序设计如下:

#include

#defineON1

#defineOFF0

sbitFMQ=P2^7;//定义蜂鸣器控制引脚

voidDelayms(unsignedintMS)//延时MS函数

{

unsignedinti,j;

for(i=0;i

for(j=0;j<1141;j++);

}

voidDelayus(unsignedintUS)//延时US函数

{

unsignedinti;

US=US*5/4;

for(i=0;i

}

main()

{

unsignedintcounter=0;//计数器定义及初始化

unsignedchari;

{

FMQ=OFF;//蜂鸣器关闭

while

(1)

{

Delayms(1000);//1scounter增加一次

counter++;

if(counter==600)//如果到了10min

{

counter=0;//计数器清零

FMQ=ON;//蜂鸣器打开

Delayus(100);//延时

FMQ=OFF;//蜂鸣器关闭

}

}

}

}

4.3调试结果

运行后可以发现蜂鸣器每间隔一段时间发出响声,如下图:

图4.2蜂鸣器调试结果图

 

五、按键发声

5.1硬件设计

5.1.1按键发声硬件设计

电路图如图5.1所示。

8个按键一端连接在单片机的P1引脚上,另一端连接在GND上。

当按键没有下按时,P1被连接到GND,为低电平。

从而实现使用K1~K8共8个按键D1~D8共8个LED的输出。

 

设计图如下

图5.1按键控制电路图

5.1.2各部分零件及功能

按键发声电路中用到的电路元件以及各自的功能如表5.1所示

表5.1

元件名称

功能

电容

51单片机复位和振荡工作的辅助器件

晶振器

产生时钟信号

AT89C52单片机

控制LED的闪烁

电解电容

用于51单片机复位电路

限流电阻

对通过LED的电流大小进行限制

电源

供电

发光二极管

显示LED状态用于输出

按键

按下和不按下具有不同状态

排阻

上拉和限流

5.2按键发声软件设计

C语言程序设计如下:

#include

voidDelayms(unsignedintMS)//延时MS函数

{

unsignedinti,j;

for(i=0;i

for(j=0;j<1141;j++);

}

main()

{

unsignedcharKeyNum,temp;

KeyNum=P1;//读取KeyNum数值

if(KeyNum!

=0xFF)//如果有按键按下

{

Delayms(10);//延迟10ms

temp=P1;//再次读取KeyNum数值

if(KeyNum==temp)

{

KeyNum=KeyNum;//没有误动作

P0=KeyNum;//将LED状态输出

}

else

{

KeyNum=0x00;//有抖动延时,被清除

}

}

}

5.3调试结果

两种情况分别如下

图5.4没有按键

图5.5按键

六、一键多功能按键

6.1硬件设计

6.1.1一键多功能按键硬件设计

设计图如下

图6.1一键多功能按键设计图

6.1.2各部分零件及功能

此电路使用52单片机实现按键对二极管的控制,每按一次按键,则换一个二极管发光闪烁。

其中,按键接在P3.7引脚上,P1.0-P1.4端口分别连接4个发光二极管。

一键多功能按键电路中用到的电路元件以及各自的功能如表5.1所示

表5.1

器件

说明

按键

按下和不按下具有不同的状态

发光二极管

显示LED状态

电阻

对通过LED的电流大小进行限制

电容

52单片机复位辅助器件

6.2一键多功能按键软件设计

C语言程序:

#include/*头函数*/

unsignedcharID;

voiddelay10ms(void)/*延时*/

{

unsignedchari,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voiddelay02s(void)/*延时*/

{

unsignedchari;

for(i=20;i>0;i--)

{

delay10ms();

}

}

voidmain(void)/*主函数*/

{

while

(1)/*软件循环*/

{

if(P3_7==0)

{

delay10ms();

if(P3_7==0)/*检测P3.7端口为零,执行*/

{

ID++;

if(ID==4)

{

ID=0;

}

while(P3_7==0);

}

}

switch(ID)/*分支选择*/

{

case0:

P1_0=~P1_0;

delay02s();

break;

case1:

P1_1=~P1_1;

delay02s();

break;

case2:

P1_2=~P1_2;

delay02s();

break;

case3:

P1_3=~P1_3;

delay02s();

break;

}

}

}

6.3一键多功能按键调试结果

调试结果如下

图6.2一键多功能按键调试结果图

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

当前位置:首页 > 经管营销 > 经济市场

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

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