跑马灯控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太原理工大学
单片机原理与应用技术课程实验报告
专业班级
学号
姓名
指导教师
跑马灯控制
一、实验目的
(1)进一步熟悉Keil和Proteus软件的操作,掌握快速复制元器件的操作方法;
(2)掌握利用多路LED实现跑马灯控制的原理;
(3)掌握循环移位、查表的编程方法。
二、实验硬件和软件
计算机1台,并安装Proteus软件和Kei C51软件。
三、实验任务
实现跑马灯控制效果,八个发光二极管L1-L8分别依次点亮,时间间隔
0.2S,点亮顺序为:L1→L2→…→L8→L7→L6→…→L1亮,重复循环。
四、实验电路及分析
实验电路如图所示,分析可知当P1.0-P1.7端口输出“0”时,发光管点亮;当P1.0-P1.7端口输出“1”时,发光管熄灭。
跑马灯仿真电路图
五、实验程序编写
1.跑马灯控制分析
根据跑马灯的控制要求,P1.7-P1.0输出状态如下表所示,P1口输出值从0XFE开始,循环左移7次后变为0X7F,然后循环右移7次变为0XFE,移位操作之间延时0.2S,循环左移的终止状态是循环右移的初始状态,注意该状态持续时间仍为0.2S,不是0.4S ,以上过程重复循环。
P1口输出状态表
2.C语言程序
#include
#include
void Delayms(unsigned int n)
{ unsigned int i, j;
for(j=n; j>0;j--)
for(i=112; i>0; i--);
}
int main( )
{ unsigned char n;
unsigned char temp;
while(1)
{ temp=0xfe;
P1=temp;
for(n=7;n>0;n--)
{ temp=_crol_(temp,1);
Delayms(200);
P1=temp;
}
for(n=7;n>0;n--)
{ temp=_cror_(temp,1);
Delayms(200);
P1=temp;
}
}
}
3.程序流程图
六、实验步骤
1.利用Proteus软件绘制仿真电路图
(1)打开Proteus软件,File→New Project进入工程创建向导,选择项目文件存放路径,项目文件名为“实验2.pdsprj”。
(2)创建原理图(schematic),默认模板为default,可根据电路规模选择
合适的图纸大小。
(3)选择“Do not create a PCB layout”,即不绘制PCB图。
(4)选择第一项“No Firmware Project”,即不在Proteus平台下创建源程序。需要在Keil C环境下编写源程序并成功编译生成hex文件,然后加载到Proteus仿真电路的单片机上。
(5)工程创建向导结束,配置情况确认。
(6)点击“P”按钮在器件库中搜索并添加电路中所需要的器件。
(7)根据电路图将器件放置到绘图区并合理布局,右键单击器件弹出快捷菜单,可以进行旋转、镜像、修改参数(如电容、电阻大小、晶振频率)等操作,双击器件也可以打开参数设置对话框。
(8)用导线将各个器件连接起来,最终的仿真电路。
2.利用Keil软件编写单片机程序
(1)打开Keil软件,点击菜单project→New μVision project,创建项目文件Lab2-C.uvproj,保存位置建议与Proteus工程文件相同。
(2)选择单片机为Atmel公司的AT89C51,当然也可以选择其他51单片机(如
AT89S51),窗口右边给出了单片机的内部资源。
(3)对话框提示是否加入启动代码,选择“否”。
(4)在工程浏览窗口,右键单击“Target1”,单击“Options for Target…”;进入选项设置对话框,单击“output”选项卡,勾选“Create HEX file”后确定。
(5)右键单击“Source Group1”,为工程添加新的程序源文件(Add New Item),当然也可以添加已存在的源程序文件(Add Existing Files…)(6)选择文件类型为“C File(.c)”,文件名为Lab1.c。
(7)输入C语言程序代码,并编译成功得到hex文件,该文件所在位置为:E:\李泽\单片机\实验1\Objects\Lab2-C.hex,文件名与项目名相同。
(8)单击调试按钮(或按快捷键Ctrl+F5)进入调试状态,通过菜单“Peripherals”调出P1端口,然后全速(F5)或者单步(F10)仿真运行,观察变化。仿真调试结束后再次点击调试按钮退出。
3.在Proteus平台上为单片机加载程序并仿真运行
(1)切换到Proteus软件,双击单片机进入属性对话框,将Program File 设置为Keil软件生成的hex文件,文件位置为E:\李泽\单片机\实验1\Objects\Lab2-C.hex,然后点“OK”确定。
(2)点击左下角的启动仿真按钮(或按快捷键F12)进入仿真运行状态,如果电路和程序正确,八个发光二极管L1-L8分别依次点亮,时间间隔0.2S,点亮顺序为:L1→L2→…→L8→L7→L6→…→L1亮,重复循环,最后点击停止按钮结束仿真运行。