1、体验单片机的程序编写和运行过程
2、掌握汇编语言的设计编译和运行
用P0端口作输入,P1端口做输出。程序循环从P0端口读入数据,从P1端口输出。输出用LED灯显示。
1、 搭电路。输入端口的6个口接开关接口,输出6个接口接LED灯。
2、 编写程序
3、 调试程序
1、先用proteus软件搭建电路,编写程序作仿真。
2、在软件里验证好程序再上实验平台验证
I/O实验程序:
ORG 0000H
MAIN: MOV P0,#0FFH
LOOP: MOV A,P0
MOV P1,A
LJMP LOOP
END
1、掌握单片机的输出
2、掌握子程序的调用方法
3、掌握定时的设置方法
8个LED灯轮流点亮,点亮间隔为1秒。
定时方法采用子程序调用,延时子程序已经编写好。
1、搭电路。P1作输出端口,接LED灯。
2、编写程序
3、调试程序
1、先用proteus软件搭建电路,编写程序作仿真。
2、在软件里验证好程序再上实验平台验证。
附:延时子程序
DELAY: MOV R3,#20 ;延时0.2s
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
跑马灯 延时子程序
ORG 00H
JMP MAIN
ORG 30H
MAIN:
MOV A,#0FFH
CLR C
MOV R2,#08H ;循环八次
LOOP:
RLC A ;带进位左移
MOV P2,A
MOV R7,#05H
LOOP1:
CALL DELAY
DJNZ R7,LOOP1
DJNZ R2,LOOP ;反复循环
JMP MAIN
DELAY: ;延时0.2s子程序
MOV R3,#20
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
实验三、跑马灯
1、掌握单片机的输出
2、掌握定时器中断和查询的使用方法
8个LED灯轮流点亮,点亮间隔为1秒。
定时方法采用8051定时器,分别使用查询和中断编写两个程序。
1、搭电路。P1作输出端口,接LED灯。
2、编写程序
3、调试程序
1、先用proteus软件搭建电路,编写程序作仿真。
2、在软件里验证好程序再上实验平台验证。
下面的亮灯顺序1,2 …… 7,8,1,2 ……
跑马灯 中断程序
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0050H
MAIN:
MOV TMOD, #01 ;令T0定时方式1
MOV TH0, #3CH
MOV TL0, #0B0H ;50ms@12MHz
SETB TR0 ;启动T0
MOV IE, #82H ;允许中断
MOV R7, #20
MOV A, #7FH
MOV P2, A
M_LOOP: ;主程序, 空循环
SJMP M_LOOP
T0_INT: ;50ms执行一次
MOV TL0, #0B0H
MOV TH0, #3CH
DJNZ R7, T0_END ;中断20次?
MOV R7, #20 ;才到1s
RR A
MOV P2, A
T0_END:
RETI
END
跑马灯 查询程序
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN:
MOV TMOD, #01 ;令T0定时方式1
MOV TH0, #3CH
MOV TL0, #0B0H ;50ms@12MHz
SETB TR0 ;启动T0
MOV R7, #20
MOV A, #7FH
MOV P2, A
M_LOOP:
JNB TF0, M_LOOP ;T0没有溢出,就在此循环不止
CLR TF0
MOV TL0, #0B0H
MOV TH0, #3CH
DJNZ R7, M_LOOP ;溢出20次?
MOV R7, #20 ;才到1s
RR A
MOV P2, A
SJMP M_LOOP
END
下面的亮灯顺序1,2 …… 7,8,7 …… 2, 1,2 ……
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0050H
MAIN:
MOV TMOD, #01
MOV TH0, #3CH
MOV TL0, #0B0H
SETB TR0
MOV IE, #82H
MOV R7, #20
MOV R2, #07H
MOV R0, #00H
MOV A, #0FEH
MOV P2, A
SJMP $
T0_INT:
MOV TL0, #0B0H
MOV TH0, #3CH
DJNZ R7, T0_END
MOV R7, #20
CJNE R0, #0, LOOP
RL A
MOV P2, A
DJNZ R2, T0_END
MOV R2, #07H
MOV R0, #01H
AJMP T0_END
LOOP:
RR A
MOV P2, A
DJNZ R2, T0_END
MOV R2, #07H
MOV R0, #00H
T0_END:
RETI
END
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN:
MOV TMOD, #01H
MOV TH0, #3CH
MOV TL0, #0B0H
SETB TR0
MOV R7, #20
MOV R2, #07H
MOV R0, #00H
MOV A, #0FEH
MOV P2, A
M_LOOP:
JNB TF0, M_LOOP
CLR TF0
MOV TL0, #0B0H
MOV TH0, #3CH
DJNZ R7, M_LOOP
MOV R7, #20
CJNE R0, #00H,LOOP
RL A
MOV P2, A
DJNZ R2, M_LOOP
MOV R2, #07H
MOV R0, #01H
SJMP M_LOOP
LOOP:
RR A
MOV P2, A
DJNZ R2, M_LOOP
MOV R2, #07H
MOV R0, #00H
SJMP M_LOOP
END
目录
实验一:xxxxxxxxxxxxxxxxxxxxxxxxx
实验二:xxxxxxxxxxxxxxxxxxxxxxxxx
每次实验包含如下内容
一、 实验目的和要求
1、xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2、xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
………………………………………………
二、 实验内容描述
………………………………………………
三、 程序文档说明与程序源代码
四、 实验结果
/******************************************************************//*名称:流水灯(跑马灯)演示程序*//*作者:苏涛*//*时间:2011-01-11*//*单位:安徽建筑工业学院电子与信息工程学院*//*07级电子信息工程专业二班*//******************************************************************/#include<reg52.h>//头文件调用,写程序时都要加上
#include<intrins.h>//cror以及crol函数被此头文件包含,需要加上#defineuintunsignedint//宏定义,为了后面定义变量书写简便#defineucharunsignedchar
/******************************************************************//*名称:延时函数*//*功能:C语言中常用的for循环延时方法*//*延时长短可以通过变量初值来改变*//******************************************************************/voiddelay(void)
{
ucharm,n,s;
for(m=10;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/******************************************************************//*名称:主函数*//*功能:利用循环左移函数以及循环右移函数*//*对P1端口进行操作,低电平灯亮*//******************************************************************/voidmain(void)
{
uchari,mm;
while(1)
{
mm=0xfe;
P1=mm;
delay();
for(i=0;i<3;i++)
{mm=_crol_(mm,1);P1=mm;delay();}
for(i=0;i<3;i++)
{mm=_cror_(mm,1);P1=mm;delay();}
for(i=0;i<4;i++)
{mm=_cror_(mm,1);P1=mm;delay();}
for(i=0;i<4;i++)
{mm=_crol_(mm,1);P1=mm;delay();}for(i=0;i<15;i++)
{mm=_crol_(mm,1);P1=mm;delay();}for(i=0;i<15;i++)
{mm=_cror_(mm,1);P1=mm;delay();}for(i=0;i<8;i++)
{mm=_crol_(mm,2);P1=mm;delay();}for(i=0;i<8;i++)
{mm=_cror_(mm,2);P1=mm;delay();}P1=0x00;
delay();
P1=0xff;
delay();
P1=0x00;
delay();
P1=0xff;
delay();
}
}
目录一了解跑马灯2二AT89C52单片机3三识别与检测元器件4四电路设计41单片机最小应用系统4364彩灯仿真图75彩灯布局图8五…
20##年中职骨干教师国家级培训单片机焊接与调试实验报告学员姓名:专业:电子电器应用与维修单位:山西省临猗县第一职业中学时间:20…
实验一输入输出实验实验目的1体验单片机的程序编写和运行过程2掌握汇编语言的设计编译和运行实验内容用P0端口作输入P1端口做输出程序…
单片机实验报告姓名:学号:一、实验实现功能:1:计数器功能2:流水灯二、具体操作:1、计数器功能数码管的动态显示。每按一次K2键计…
一实验目的1熟练单片机的结构组成及原理2软硬兼施采用硬件电路的焊接搭建和软件的设计调试下载亲自动手对硬件系统加深了解的同时软件编程…
福建农林大学计算机与信息学院信息工程类实验报告课程名称:单片机技术姓名:系:电子信息工程系专业:电子信息工程年级:学号:指导教师:…
HEFEIUNIVERSITY单片机实验报告系别电子信息与电气工程系专业班级学号姓名指导老师完成时间实验一构建单片机最小系统和实验…
1福建农林大学计算机与信息学院信息工程类实验报告课程名称姓名系专业年级学号指导教师职称单片机技术詹缓辉电子信息工程系电子信息工程2…
华中科技大学单片机实验报告MCS51系列单片机单片机原理及应用实验根据20xx年电气与电子工程学院单片机实验课程改编专业电气工程及…
实验课程名称自动控制综合实验2》姓名学院自动化学院专业班级学号、班内序号指导教师20##年月单片机部分一、仿真软件的使用以及跑马灯…
北京邮电大学数字电路实验报告实验名称发光二极管走马灯电路设计与实现姓名武文爵班级21班班内序号9学院信息与通信工程学院日期20xx…