轻工业学院本科单片机与接口技术课程设计总结报告设计题目:定时器控制交通灯(带故障报警)学生:忠良王彦峰王永亮方庆刚系别:计算机与通信工程学院专业:通信工程班级:通信工程08-1班学号:9指导教师:晓雷副教授2011年1月7日轻工业学院课程设计任务书题目定时器控制交通灯(带故障报警)专业班级通信工程08-1班学号忠良59号主要容、基本要求、主要参考资料等:1. 课程设计目的(1) 加强对所学理论知识的理解,提高综合应用、分析能力;(2) 掌握MCS51单片机开发系统的使用;(3) 学习与掌握程序设计方法及硬件电路的设计还有联调仿真最终成所选择课题的设计;(4) 利用简单的应用系统,培养应用系统的开发能力。
2. 课程设计要求(1)完成LED灯的显示、按键识别、电铃发出响声等,并完成模拟交通灯的功能;(2)从源程序、软件模拟、调试方面完成软件系统;(3)利用开发系统完成系统的总体调试、程序烧写,实现应用系统功能,并能对系统运行中的问题进行分析。
3. 参考资料(1)单片机典型系统设计实例精讲为,黄科,雷道仲编著电子工业出版发行2006.5(3,4);(2)单片机原理及应用建忠编著电子科技大学;(3)AT89系列单片机原理与接口技术王幸之,钟爱琴等编著航空航天大学出版发行2004;(4)51单片机编程基础与开发实例详解岂兴明,唐杰等编著人民邮电出版发行。
完成期限:2011-1-7指导教师签名:晓雷课程负责人签名:晓雷2011年01月3日目录第一章设计容与要求4第二章设计原理51.单片机概述52.STC89C52芯片简介63.定时器/计数器84.设计思路10第三章程序流程图10第四章源程序清单11第五章硬件电路图及仿真结果17第六章课程设计体会18第七章参考资料19第一章设计容与要求1. 设计题目:定时器控制交通灯(带故障报警)2. 课程设计目的(1) 加强对所学理论知识的理解,提高综合应用、分析能力;(2) 掌握MCS51单片机开发系统的使用;(3) 学习与掌握程序设计方法及硬件电路的设计还有联调仿真最终成所选择课题的设计;(4) 利用简单的应用系统,培养应用系统的开发能力。
3. 课程设计要求(1)完成LED灯的显示、按键识别、电铃发出响声等,并完成模拟交通灯的功能;(2)从源程序、软件模拟、调试方面完成软件系统;(3)利用开发系统完成系统的总体调试、程序烧写,实现应用系统功能,并能对系统运行中的问题进行分析。
第二章设计原理1.单片机概述单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。
单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,部资源在增多,引角的多功能化,以及低电压底功耗。
2.STC89C52芯片简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL 搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
STC89C52具体介绍如下:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片振荡电路的输入端XTAL2(Pin20):片振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的外部选通,接低电平从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。
④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7 单片机总控制电路如下图4—1:3.定时器/计数器定时器/计数器工作方式寄存器(TMOD),字节地址89H,不可进行位寻址。
定时器/计数器工作方式寄存器(TMOD)的8位分为两组,高4位控制T1,低4位控制T0。
TMOD每一位的功能如下。
GATE:门控位。
GATE=0,仅由运行控制位TRX(X=0,1)=1来启动定时器/计数器运行;GATE=1,由运行控制位TRX(X=0,1)=1和外部中断引脚上的高电平共同来启动定时器/计数器运行。
C/T:定时器模式和计数器模式选择位。
C/T=0,为定时器模式;C/T=1,为计数器模式。
M1、M0:工作方式选择位。
M1、M0的4中编码对应4种工作方式。
定时器/计数器的4种工作方式下的逻辑结构如表所示。
4.设计思路首先了解实际交通灯的变化情况及规律,假设一个十字路口如上图所示,为东南西北走向。
初始状态1东西绿灯通车,南北红灯亮。
经过一段时间后,转状态2,东西绿灯灭,黄灯闪几下,南北还是红灯。
再转状态3,南北绿灯通车,东西红灯亮,过一段时间后转状态4,南北绿灯灭,闪几下黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。
第三章程序流程图第四章源程序清单#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit RED_A = P1^0;sbit YELLOW_A = P1^1;sbit GREEN_A = P1^2;sbit RED_B = P1^3;sbit YELLOW_B = P1^4;sbit GREEN_B = P1^5;sbit K2 = P3^5;sbit BEEP = P2^3;uchar Time_Count = 0, Flash_Count = 0, Operation_Type = 1;void T0_INT() interrupt 1{TH0 = -195;TL0 = -80;switch(Operation_Type){case 1:RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;if(++Time_Count != 100) return;Time_Count=0;Operation_Type = 2;break;case 2:if(++Time_Count != 8) return;Time_Count=0;YELLOW_A=!YELLOW_A;GREEN_A=1;if(++Flash_Count != 10) return;Flash_Count=0;Operation_Type = 3;break;case 3:RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;if(++Time_Count != 100) return;Time_Count=0;Operation_Type = 4;break;case 4:if(++Time_Count != 8) return;Time_Count=0;YELLOW_B=!YELLOW_B;GREEN_B=1;if(++Flash_Count !=10)return;Flash_Count=0;Operation_Type = 1;break;}}uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126, 129,169,190,119,119,126,159,142,159,0};uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0 };void DelayMS(uint ms){uchar t;while(ms--){for(t=0;t<240;t++);}}void PlayMusic(){uint i =0,j,k;while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) {for(j=0;j<SONG_LONG[i]*20;j++){BEEP = ~BEEP;for(k=0;k<SONG_TONE[i]/3;k++);}DelayMS(10);i++;}}void main(){while(1){TMOD = 0x01;IE = 0x82;TR0 = 1;if(K2==0)PlayMusic();};}第五章硬件电路图及仿真结果第六章课程设计体会回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。
同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。
在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。
因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
通过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。
从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。