您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页单片机实验一 P1口霓虹灯实验(4学时).

单片机实验一 P1口霓虹灯实验(4学时).

来源:五一七教育网


实验一 P1口霓虹灯实验(4学时)

一、实验目的 ⑴了解实验仿真系统的硬件结构,熟练使用实验仿真软件; ⑵掌握MCS-51单片机P1口的基本结构和使用方法;

⑶学会用C51编写含分支和循环结构的程序。二、实验预备知识 ⑴P1口为准双向口,每一位都可地定义为输出线或输入线。 ⑵本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。三、实验内容 (1)在实验箱上完成:

P1作为输出口,接八只发光二极管,编写程序,使发光二极管按照如下顺序点亮:

开始→从左往右循环点亮→从右往左循环点亮→从左往右逐个点亮→从右往左逐个熄灭→2个发光二极管分别从中间往两边循环点亮→2个发光二极管分别从两边往中间循环点亮→全部点亮→全部熄灭→开始。

(2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。

所用元器件:单片机ATC51、发光二极管LED-GREEN(RED、BLUE、排阻或电阻RESPACK-8(RES、8位缓冲器74LS244

仿真电路图:

四、程序框图

五、实验电路(只连图中粗实线)

六、实验步骤 P1.O~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。 程序清单:

#include

#include

#define uchar unsigned char

#define uint unsigned int

void DelayMS(uint x

{

uchar i;

while(x--

{

for(i=0;i<120;i++;

}

}

//主程序

void main(

{

uchar i;

P1=0xfe;

DelayMS(400;

while(1

{

for(i=0;i<7;i++

{

P1=_crol_(P1,1; //P1的值向左循环移动

DelayMS(400;

}

for(i=0;i<7;i++

{

P1=_cror_(P1,1; //P1的值向右循环移动

DelayMS(400;

}

for(i=0;i<7;i++

{

P1<<=1;

DelayMS(400;

}

P1=0x80;

DelayMS(400;

P1=0xc0;

DelayMS(400;

P1=0xe0;

DelayMS(400;

P1=0xf0;

DelayMS(400;

P1=0xf8;

DelayMS(400;

P1=0xfc;

DelayMS(400;

P1=0xfe;

DelayMS(400;

P1=0xff;

DelayMS(400;

for(i=0;i<2;i++

{

P1=0xe7;

DelayMS(400;

P1=0xdb;

DelayMS(400;

P1=0xbd;

DelayMS(400;

P1=0x7e;

DelayMS(400;

P1=0xbd;

DelayMS(400;

P1=0xdb;

DelayMS(400;

}

P1=0xe7;

DelayMS(400;

P1=0x00;

DelayMS(400;

P1=0xff;

DelayMS(400;

P1=0xfe;

DelayMS(400;

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务