资源描述:
《单片机原理及应用课程设计-交通灯管理电路设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计课程单片机原理及应用课程设计题目交通灯管理电路设计院系电子科学学院专业班级学生姓名学生学号指导教师2011年3月18日课程设计任务书课程单片机原理及应用课程设计题目交通灯管理电路设计专业班级姓名学号一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。二、设计要求:1.应用MCS-51单片机设计交通灯管理电路;2.该系统要求显示50s倒计时时间,当计到需交换红绿灯前10s,路口均显示黄灯;3.硬件设计根据设计的任务选定合适的单片机,
2、根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;4.软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5.原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单三、参考资料:[1]单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;[2]单片机原理及应用,张毅刚编著,高等教育出版社;[3]51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;[4]单片机原理及接口技术,李朝青编
3、著,北京航空航天大学出版社;完成期限2011.3.14—2011.3.18指导教师专业负责人2011年3月13日电路图设计:单片机最小系统、LCD显示、时钟和按键电路电路原理:(1)LCD1602:2*16显示,16个引脚(4个接正负,1个偏压,3个控制和8个数据接口与单片机连接)(2)DS1302:8个引脚,内部有时钟功能,单线传输数据,2个控制接口,外接32.768khz晶振。(3)LM339:14个引脚,在负端接基准电压,正端接输入电压,输出端上拉电阻。当输入大于基准时,输出高电平,输入小于基准时输出低电平。(4)7
4、4LS11:3与门芯片,14个引脚。(5)VS1838B:红外接收器,接收波长950nm的波长,对接收的红外光要进行脉冲调制,使其频率在38Khz。程序设计:LCM_RSBITP3.7;//定义接口LCM_RWBITP3.6LCM_EBITP3.5LCM_DATAEQUP1;数据接口T_RSTBitP3.0;实时时钟复位线引脚T_CLKBitP3.1;实时时钟时钟线引脚T_IOBitP3.4;实时时钟数据线引脚SECONDEQU30HMINUTEEQU31HHOUREQU32HCISHUEQU40HJIANEQUP2ORG
5、0000H;从0000H处开始SJMPMAIN;跳转到MAIN处ORG0003H;外部0中断LJMPJIANWEIORG000BHLJMPLP2ORG0060H;主程序从0030H处开始MAIN:MOVSP,#70H;堆栈指针指向70HMOVJIAN,#0FHMOVP0,#0FHNOPNOPLCALLINITIAL;调用启动LCM子程序进行初始化LCALLCLS;调用清除LCM子程序MOVA,#80H;向A送立即数80H设定显示地址为第一行第一列LCALLWRITE_RS;调用写指令到LCM子程序MOVDPTR,#LINE
6、1;将第一行字符串的启始地址送如DPTR中LCALLDISP;调用显示字符串到LCM子程序CLRT_RSTCLRT_CLKMOVSECOND,#00H;初始时间设为12:00:00MOVMINUTE,#00HMOVHOUR,#01HLCALLSETDS1302MOVSECOND,#00H;初始时间设为12:00:00MOVMINUTE,#00HMOVHOUR,#12HLCALLGET1302LCALLDISPLAY0MOVR3,#25MOVTMOD,#01HMOVTH0,#70H;置定时器初值(定时40ms)MOVTL0,
7、#00HSETBIT0SETBEX0SETBET0SETBTR0;启动定时器0SETBEAMOVP0,#0FHNOPNOPL_P0:MOVR4,#20;红外调制检测程序LCALLDELAY0DJNZR4,L_P0MOVR4,#30L_P1:MOVR5,#12L_P2:MULABMULABDJNZR5,L_P2CLRP0.7MOVR5,#6L_P02:MULABMULABDJNZR5,L_P02SETBP0.7DJNZR4,L_P1JNBP0.4,L_P3CPLP0.0L_P3:JNBP0.5,L_P4CPLP0.0CPLP
8、0.1L_P4:JNBP0.6,L_P0CPLP0.1SJMPL_P0LP2:MOVTH0,#070H;重新置定时器初值MOVTL0,#00HDJNZR3,LP1;未到1S继续循环RETILP1:LCALLGET1302;每过1s从DS1302读取一次时间LCALLDISPLAY0;显示movr3,#2