机器人控制流水灯设计仿真实验报告.docx
《机器人控制流水灯设计仿真实验报告.docx》由会员分享,可在线阅读,更多相关《机器人控制流水灯设计仿真实验报告.docx(12页珍藏版)》请在冰点文库上搜索。
机器人控制流水灯设计仿真实验报告
机器人控制
仿真实验一
——流水灯设计
姓名:
李铃年级:
2011级
系别:
信息工程学院计科(师)
学号:
1111000048
同组人姓名:
杨晨年级:
2011级
系别:
信息工程学院计科(师)
同组人学号:
1111000054
2013年5月14日
【实验目的】
熟悉keil仿真软件、proteus仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
【实验要求】
利用proteus仿真软件和keil仿真软件实现8个LED灯从最高位依次点亮每次只亮一盏灯并依此循环。
【实验环境】
Proteus与keil联合,语言环境为汇编语言。
【实验用品】
proteus仿真软件,keil仿真软件,个人计算机一台。
【实验内容】
一、利用proteus软件画出电路图
1、打开proteus软件
,点击P选择电器元件(见图1.1),在keywords中搜索要用到的电器元件(见图1.2和图1.3),在本次试验中选择型号为AT89C51单片机。
找到后双击元件名称,这样元件就显示在DEVICES中了(见图1.4),选好后点击“OK”关闭窗口。
2、选中左侧的AT89C51元件,在作图区域内单击鼠标左键,会出现图1.5左边的图象,再次单击鼠标左键,会出现图1.5右边的图像,此时已经安放好了AT89C51元件。
3、按照上述步骤找齐电路中还需要的电器元件,包括:
电阻9个(RES),电容3个(CAP1个,CAP-ELEC2个),晶振1个(CRYSTAL),红色发光二极管2个(LED-RED),黄色发光二级管2个(LED-YELLOW),绿色发光二极管2个(LED-GREEN),蓝色发光二级管2个(LED-BLUE)。
4、将各个元件组合,最终形成如图1.6的电路图。
二、利用keil软件编写程序并生成.asm文件和.hex文件
1、打开keil软件
,选择工程->新建工程(见图1.7),并确定存放位置。
2、选择单片机:
Atmel->AT89C51,之后的对话框选择“否”,如图1.8。
3、新建程序:
文件->新程序文件,如图1.9.
4、编辑程序文件如下:
GOWEQU30H
DIWEQU31H
SECEQU32H
DEDAEQU33H
ORG00H
AJMPMAIN
ORG0BH
AJMPZDFW
MAIN:
ACALLINIT
ACALLINITTIME
LOOP:
ACALLCONV
ACALLXSHI
ACALLXSHI
ACALLXSHI
AJMPLOOP
INITTIME:
MOVTMOD,#00000001B
MOVIE,#10000010B
MOVTL0,#01111000B
MOVTH0,#11101100B
SETBTR0
RET
ZDFW:
MOVTL0,#01111000B
MOVTH0,#11101100B
INCDEDA
MOVA,DEDA
CJNEA,#200,TT
MOVDEDA,#0
DECSEC
MOVA,SEC
CJNEA,#0,TT
DECR7
CJNER7,#3,B1
MOVA,#01011010B
MOVP0,A
MOVSEC,#5
AJMPTT
B1:
CJNER7,#2,B2
MOVA,#01101100B
MOVP0,A
MOVSEC,#20
AJMPTT
B2:
CJNER7,#1,B3
MOVA,#01011010B
MOVP0,A
MOVSEC,#5
AJMPTT
B3:
MOVSEC,#20
MOVR7,#4
MOVA,#00110110B
MOVP0,A
TT:
RETI
INIT:
CLRP0.0
CLRP0.7
MOVDEDA,#0
MOVR7,#4
MOVSEC,#20
MOVA,#00110110B
MOVP0,A
RET
CONV:
MOVDPTR,#TABLE
MOVA,SEC
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVGOW,A
MOVA,B
MOVCA,@A+DPTR
MOVDIW,A
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
XSHI:
MOVA,GOW
MOVP2,A
SETBP0.0
CLRP0.7
MOVR5,#2
ACALLDELAY
MOVA,DIW
MOVP2,A
CLRP0.0
SETBP0.7
MOVR5,#2
ACALLDELAY
CLRP0.0
CLRP0.7
DELAY:
DLY1:
MOVR6,#6
DLY2:
MOVR4,#8
DJNZR4,$
DJNZR6,DLY2
DJNZR5,DLY1
RET
END
4、生成asm文件。
文件->保存,如图1.10,注意后缀为.asm
5、生成hex文件。
Target->sourcegroup1->右键->AddFilestoGroup‘SourceGroup1’,单击Add,然后单击Close。
单击BuildToolbar->OptionsforTarget,如图1.11进行设置。
调试正常后,project->buildtarget生成hex文件(十六进制文件)。
【实验小组分工情况】
李铃负责Proteus软件部分,杨晨负责keil软件和p-k联动部分。
【结论】
程序运行正常,可以实现8个LED灯从最高位依次点亮每次只亮一盏灯并依此循环。
【收获和体会】
通过该仿真实验,我们熟悉keil仿真软件、proteus仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
此外,我们的自我学习能力的到了有效的提升,还体会到了团队合作的总要性。