您好,欢迎来到年旅网。
搜索
您的当前位置:首页实验一 单片机控制LED灯

实验一 单片机控制LED灯

来源:年旅网
实验一 单片机控制LED灯

一、实验目的

1.进一步熟悉编程和程序调试 2.学习P1口的使用方法 3.学习延时子程序的编写和使用 二、实验说明

P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验步骤及参考例子

实验步骤说明:

本实验需要用到单片机最小应用系统和十六位逻辑电平显示模块。 用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管点亮。

1.使用单片机最小应用系统。根据实验要求,用proteus仿真软件绘制电路原理图,用数据线连接单片机P1口与LED灯。

2.打开Keil uVision3仿真软件,首先建立本实验的项目文件,输入源程序,进行编译、调试,直到编译无误,生成hex文件。可通过单步调试,来查看I/O的状态

3.在proteus环境中,把hex文件下载到单片机中,运行观察发光二极管显示情况是否与设计程序中一致。

参考例子:

1) 点亮板子上的第一个灯L0

2) 点亮板子上的L0、L2、L4、L 6灯,与L 1、L 3、L 5、L 7灯交替闪烁 3) 流水灯:从L 0--- L 7依次点亮 四、参考程序

1)

#include void main() { P1=0xfe; }

2)

#include #define uint unsigned int #define uchar unsigned char void delay(); void main() {

while(1)

}

{ }

P1=0xaa; delay(); P1=0x55; delay();

void delay() { } 3)

#include #include #define uint unsigned int #define uchar unsigned char uchar temp; void delay(uint);

void main() {

temp=0xfe;

while(1) {

for(num=0;num<8;num++) { }

P1=temp; delay(100);

temp=_crol_(temp,1); P1=0xff; delay(100);

uint x,y;

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

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

}

}

void delay(uint z) { }

五、电路图 R2F

100C3F10uFR1F1KRESETVCCU1FP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71234567P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL1A11.0592MHz1011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSC51VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EAALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCC4039P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.73130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7510*8L0L1L2L3VCCuint x,y; for(x=z;x>0;x--)

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

;

EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0L4L5L6L7C3A22pFC2A22pF

六、实验内容

请在keil环境下编写一下程序,并在proteus仿真环境中实现动画效果: 1)点亮最后一个LED

2)点亮1、2、5、6这四个LED 3)让第三个LED闪烁

4)设计出流水灯程序,从L7—L0

5) 设计出流水灯双向流动程序,从L0-L7-L0反复循环。

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

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

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

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