图6.添加程序文件
4.7选择你所命名的文件单击add然后在单击close,如图7所示。
图7.添加
4.8开始编程,
4.9编程好了之后在project中选择如图8所示。
图8.设置程序选项
4.10在target中设计好使用的晶振频率如图9所示。
图9.设置晶振
4.11在output中勾选create Hex file如图10所示。
图10.设置“Creat HEX File”
4.12再单击快捷工具栏中的
得到hex文件。
九.出现的问题及相应解决办法
1.小车当离障碍物太近时,而无法转向。我们通过倒退0.5s再右转0.2s继续循环检测。 2.实验时,为了避免实验元件损坏对实验造成影响,实验前,我们先对元件进行检测。 3.为了提高课程设计的效率,我们先统一做好需求分析,再分工做好其他工序。
十.课程设计心得体会
通过此次课程设计,我们了解到了团队的力量,意识到了知识的乐趣,也感觉到了当知识运用于实践的时候是一件多么令人快乐的事情,并且更加深刻的体会到理论联系实际的重要性。当然,从这次的课程设计中,我们也发现自己的知识功底还太浅薄,因此,在以后的学习中我们会更加努力,在尽量牢固掌握理论知识的基础上,努力提高自己的动手能力。
十一.源程序
#include
sbit z2=P1^3;//控制车轮转动
sbit p1=P2^0;//左边障碍物 sbit p2=P2^1;//右边障碍物 void delay(uint z);//延时函数 void keyscan();//检测障碍物 void init(); void qian() { z1 = 1; z2 = 0; y1 = 1; y2 = 0;
} void hou()
{ z1 = 0; z2 = 1; y1 = 0; y2 = 1;
} void zuo()
{ z1 = 0; z2 = 0; y1 = 1; y2 = 0;
} void you()
{ z1 = 1; z2 = 0; y1 = 0; y2 = 0;
}
void main() { init(); while(1) { keyscan();
}
} void init()
//向前
//向后
//向左转//向右转
{ }
void delay(uint z)//延时函数 { }
void keyscan()//检测障碍物 { }
if(p1==0&&p2==1)//左边有障碍物 { } { }
if(p1==1&&p2==1)//两边无障碍物 { }
hou(); delay(200);
qian();
if(p1==0&&p2==0)//两边有障碍物
zuo(); delay(200);
you(); delay(200);
uint x,y; for(x=z;x>0;x--)
for(y=120;y>0;y--); y1=0; y2=0; z1=0; z2=0; p1=1; p2=1;
if(p1==1&&p2==0)//右边有障碍物
参考文献:
[1] 郭天翔主编.新概念51单片机C语言教程.北京:电子工业出版社,2008. [2][美] Richard Anderson, Chris Blexrud著.ASP3高级编程[M].刘福太,张立民,金慧琴,梁发麦等译.北京:机械工业出版社,2000:408-458.
[3] 玉德等编.MCS-51单片机原理与应用.北京:机械工业出版社,2002. [4] 李华主编.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,2000.
[5] 马骏.车站售票大厅智能排队叫号系统的设计和开发.科技情报开发与经济. 2010.Vol .
[6] 杨彦、王霖、张凤荔、刘丽萍. 基于RS485 和单片机的排队机控制系统设计. 中文核心期刊《微计算机信息》(测控自动化)2008 年第24 卷第1-1 期.
[7] 张忠安 齐俊传. 门诊排队叫号系统设计. 医疗卫生装备·2006年第27卷 [8] 张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社.
[9] 闫玉德 俞虹.MCS-51单片机原理与应用(C语言版).机械工业出版社.2003. [10] http://www.zlgmcu.com