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

实验2单片机控制LED灯点亮(精)

来源:年旅网


实验2 单片机控制LED灯点亮 一、实验目的

1、熟悉实验板的电路结构。

2、完成简单的功能,并掌握程序调试的方法。 二、实验准备

1. 实验电路连接

实验板LED电路图

2. 实验中常见问题:

区别中英文字符,区别字母O和数字0 注意关键字的拼写 include、void、main SFR寄存器需要大写

三、实验内容

一、基础实验 (一)、点亮1个LED

分别用汇编和C语言编程,对比2种语言的相同和不同

1. 用汇编语言编写

ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR P1.0

CLR P1.1;可随意指定一个输出口作为驱动,点亮LED灯 END

2. 用C语言编写

#include 1 .h> // 包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义

sbit P1_0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口, //LED是自己任意定义且容易记忆的符号

/*---------------主函数-------------------*/ void main (void {

P1_0=0; //将P1.0口赋值 0,对外输出低电平

}

(二)、1个LED闪烁

分别用汇编和C语言编程,对比2种语言的相同和不同 问题:若想改变闪烁的频率,应该修改程序的哪部分?

1. 用汇编语言编写

ORG 0000H LJMP MAIN ORG 0030H

MAIN: CLR P1.0 ;点亮LED灯 CLR P1.1 LCALL DELAY

SETB P1.0 ;熄灭LED灯 SETB P1.1 LCALL DELAY LJMP MAIN

DELAY: MOV R6,#125 ;延时50ms子程序 LOOP2: MOV R7,#200

LOOP1: DJNZ R7,LOOP1 DJNZ R6,LOOP2 RET END

2. 用C语言编写

#include \"reg51.h\" sbit P1_0=P1^0;

//延时50ms子程序 void delay50ms( { unsigned char i,j; for (i=125;i>0;i-- { for(j=200;j>0;j-- {} } }

//主程序段 void main( {

while(1 //重复循环执行,实现闪烁 { P1_0=0; delay50ms(; P1_0=1; delay50ms(; } } 思考:

● 对比2中语言编写的延时子程序的相同和不同

二、提高实验

(一)、自己修改例程,试着实现:点亮左边4个LED (二)、自己修改例程,试着实现:右边4个LED闪烁

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

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

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

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