实验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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务