1、单片机原理与系统设计实验指导书实验 2 单片机控制 LED 灯点亮一、实验目的1、熟悉实验板的电路结构。2、完成简单的功能,并掌握程序调试的方法。二、实验准备1. 实验电路连接实验板 LED电路图2. 实验中常见问题: 区别中英文字符,区别字母 O和数字 0 注意关键字的拼写 include、void、main SFR寄存器需要大写三、实验内容单片机原理与系统设计实验指导书一、基础实验(一)、点亮 1 个 LED分别用汇编和 C 语言编程,对比 2 种语言的相同和不同1. 用汇编语言编写ORG 0000HLJMP MAINORG 0030HMAIN: CLR P1.0CLR P1.1;可随意指
2、定一个输出口作为驱动,点亮 LED 灯END2. 用 C 语言编写#include /包含头文件,一般情况不需要改动,/头文件包含特殊功能寄存器的定义sbit P1_0=P10;/ 用 sbit 关键字 定义 LED 到 P1.0 端口,/LED 是自己任意定义且容易记忆的符号/*-主函数-*/void main (void) P1_0=0; /将 P1.0 口赋值 0,对外输出低电平(二)、1 个 LED闪烁分别用汇编和 C 语言编程,对比 2 种语言的相同和不同问题:若想改变闪烁的频率,应该修改程序的哪部分?1. 用汇编语言编写ORG 0000HLJMP MAINORG 0030HMAIN
3、: CLR P1.0 ;点亮 LED 灯CLR P1.1LCALL DELAYSETB P1.0 ;熄灭 LED 灯单片机原理与系统设计实验指导书SETB P1.1LCALL DELAYLJMP MAINDELAY: MOV R6,#125 ;延时 50ms 子程序LOOP2:MOV R7,#200LOOP1:DJNZ R7,LOOP1DJNZ R6,LOOP2RETEND2. 用 C 语言编写#include “reg51.h“sbit P1_0=P10;/延时 50ms 子程序void delay50ms() unsigned char i,j;for (i=125;i0;i-) for(j=200;j0;j-)/主程序段void main()while(1) /重复循环执行,实现闪烁 P1_0=0;delay50ms();P1_0=1;delay50ms();思考: 对比 2 中语言编写的延时子程序的相同和不同二、提高实验单片机原理与系统设计实验指导书(一)、自己修改例程,试着实现:点亮左边 4 个 LED(二)、自己修改例程,试着实现:右边 4 个 LED闪烁