基于MCS-51单片机的流水灯实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
闪烁如何实现?一会亮,一会灭。怎么样眼睛能分辨出来?亮灭间隔超过20ms以上,人眼视觉残留现象。编程实现方案:端口电平维持想要的时间。延时不切换,CPU空操作耗时不改变端口来实现。
如何依次亮灭:从左到右,8个LED灯亮,8种状态,如何实现,数组形式?移位形式?
参考共阳极接法:
Char s[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
2、理解keil、Proteus软件安装及基本应用。
3、对实验用启东计算机厂51单片机实验箱资源及提供的实验案例有较好认知。
4、掌握MCS-51单片机的工程开发流程及Proteus软件虚拟仿真流程。
5、具有MCS-51单片机最小系统及对应I/O口控制ห้องสมุดไป่ตู้应用能力。
6、具有基于Keil的C51编程综合能力。
(1)基于Proteus软件绘制电路原理图。
(2)基于Keil软件编程
思路:数组形式,表示8个亮状态,8个元素。状态保持采用时间延迟函数,延时函数具体可以通过调试来确定参数值。开始全部不亮,不断循环采用死循环,while或没有限制条件的for语句。
编译调试,得到hex文件,嵌入到Proteus软件的虚拟单片机中以便整体虚拟仿真。
Keil
#include<reg52.h>
#define uchar unsigned char
void delayms(uchar ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void main(void)
{
P0=0xfe;
while(1)
{
delayms(500);
目标4:掌握MCS-51单片机/STM32F103单片机系统仿真工具和仿真流程,了解常用实验仪器、设备的基本工作原理,了解其正确使用方法,具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力。
二、实验类型:验证型( )、设计型(√)、研究创新型( )
三、预期学生学习的成果
1、对本课程的作用、地位和学习方法有明确认知。
其中较难理解的部分是:P0=(P0<<1)|(P0>>7);
P0=0xfe 11111110
P0=(P0<<1)|(P0>>7) 11111100|00000001=11111101实现循环
通过这次实验,基本掌握MCS-51单片机的工程开发流程及Proteus软件虚拟仿真流程以及keil编程环境。
评分:
(3)虚拟仿真效果观测,能观察到8个LED依次亮灭,鼓励采用不同的编程方式实现。
(4)利用Keil软件,将编译好的hex文件下载到51单片机里,按复位键运行程序,观察实验现象,并视频拍摄实验过程。
(5)调试观察,注意不同时延LED观察,段码表对应的LED闪烁,程序设计有逻辑错误,实验调试分析。
六·实验结果
认识MCS-51单片机最小系统组成:MCS-51单片机、手动按键复位电路、外接晶体振荡器电路、电源和地。使用片内程序存储器, 接高电平。
五、实验内容及步骤
(一)实验内容
8个LED灯接在P0端口的8个引脚上,编程实现8个LED从左到右顺序依次循环不断亮灭闪烁,亮灭闪烁要求眼睛能分辨得出来。
(二)实验步骤
P0=(P0<<1)|(P0>>7); //循环左移
delayms(1000);
}
Proteus
实验分析:
本实验要求采用LED灯共阳极接法,对“0”有效,P0口需要添加限流电阻,实验过程中由于电阻过大(10k),导致电流过小,LED没有到达额定工作电流,无法正常工作。重新选用1k电阻,恢复正常工作。
实验一 基于MCS-51单片机的流水灯实验
一、支撑课程目标
目标1:掌握微机和单片机的基本原理、编程技术、中断技术、系统扩展、定时器、串行接口和其他输入/输出接口技术,并且了解典型的单片机应用系统的设计思想和实现方法。
目标2:初步具备自行拟定实验步骤、检查和故障排除、分析和综合实验结果以及撰写实验报告的能力。
四、实验原理
LED发光二极管核心为PN结,单向导电,有阴极和阳极,两极均可以控制,需要亮起来,电流不能过大和过小,过大,烧坏二极管,过小,电光效应弱,发光不明显,引入“限流电路”。为减少I/O引脚的消耗,一般控制一极,有阳极控制法和阴极控制法。阳极控制法:阴极接地(GND),阳极I/O口高电平亮,阳极低电平不亮;阴极控制法:阳极接高电平(+5V),阴极I/O口低电平亮,高电平不亮。8个同样LED灯阳极接一起,连接+5V,就是共阳极接法。8个同样LED灯阴极接一起,连接GND,就是共阴极接法。
如何依次亮灭:从左到右,8个LED灯亮,8种状态,如何实现,数组形式?移位形式?
参考共阳极接法:
Char s[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
2、理解keil、Proteus软件安装及基本应用。
3、对实验用启东计算机厂51单片机实验箱资源及提供的实验案例有较好认知。
4、掌握MCS-51单片机的工程开发流程及Proteus软件虚拟仿真流程。
5、具有MCS-51单片机最小系统及对应I/O口控制ห้องสมุดไป่ตู้应用能力。
6、具有基于Keil的C51编程综合能力。
(1)基于Proteus软件绘制电路原理图。
(2)基于Keil软件编程
思路:数组形式,表示8个亮状态,8个元素。状态保持采用时间延迟函数,延时函数具体可以通过调试来确定参数值。开始全部不亮,不断循环采用死循环,while或没有限制条件的for语句。
编译调试,得到hex文件,嵌入到Proteus软件的虚拟单片机中以便整体虚拟仿真。
Keil
#include<reg52.h>
#define uchar unsigned char
void delayms(uchar ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void main(void)
{
P0=0xfe;
while(1)
{
delayms(500);
目标4:掌握MCS-51单片机/STM32F103单片机系统仿真工具和仿真流程,了解常用实验仪器、设备的基本工作原理,了解其正确使用方法,具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力。
二、实验类型:验证型( )、设计型(√)、研究创新型( )
三、预期学生学习的成果
1、对本课程的作用、地位和学习方法有明确认知。
其中较难理解的部分是:P0=(P0<<1)|(P0>>7);
P0=0xfe 11111110
P0=(P0<<1)|(P0>>7) 11111100|00000001=11111101实现循环
通过这次实验,基本掌握MCS-51单片机的工程开发流程及Proteus软件虚拟仿真流程以及keil编程环境。
评分:
(3)虚拟仿真效果观测,能观察到8个LED依次亮灭,鼓励采用不同的编程方式实现。
(4)利用Keil软件,将编译好的hex文件下载到51单片机里,按复位键运行程序,观察实验现象,并视频拍摄实验过程。
(5)调试观察,注意不同时延LED观察,段码表对应的LED闪烁,程序设计有逻辑错误,实验调试分析。
六·实验结果
认识MCS-51单片机最小系统组成:MCS-51单片机、手动按键复位电路、外接晶体振荡器电路、电源和地。使用片内程序存储器, 接高电平。
五、实验内容及步骤
(一)实验内容
8个LED灯接在P0端口的8个引脚上,编程实现8个LED从左到右顺序依次循环不断亮灭闪烁,亮灭闪烁要求眼睛能分辨得出来。
(二)实验步骤
P0=(P0<<1)|(P0>>7); //循环左移
delayms(1000);
}
Proteus
实验分析:
本实验要求采用LED灯共阳极接法,对“0”有效,P0口需要添加限流电阻,实验过程中由于电阻过大(10k),导致电流过小,LED没有到达额定工作电流,无法正常工作。重新选用1k电阻,恢复正常工作。
实验一 基于MCS-51单片机的流水灯实验
一、支撑课程目标
目标1:掌握微机和单片机的基本原理、编程技术、中断技术、系统扩展、定时器、串行接口和其他输入/输出接口技术,并且了解典型的单片机应用系统的设计思想和实现方法。
目标2:初步具备自行拟定实验步骤、检查和故障排除、分析和综合实验结果以及撰写实验报告的能力。
四、实验原理
LED发光二极管核心为PN结,单向导电,有阴极和阳极,两极均可以控制,需要亮起来,电流不能过大和过小,过大,烧坏二极管,过小,电光效应弱,发光不明显,引入“限流电路”。为减少I/O引脚的消耗,一般控制一极,有阳极控制法和阴极控制法。阳极控制法:阴极接地(GND),阳极I/O口高电平亮,阳极低电平不亮;阴极控制法:阳极接高电平(+5V),阴极I/O口低电平亮,高电平不亮。8个同样LED灯阳极接一起,连接+5V,就是共阳极接法。8个同样LED灯阴极接一起,连接GND,就是共阴极接法。