资源描述
- -
轻工业学院本科
单片机与接口技术课程设计
总结报告
设计题目:定时器控制交通灯(带故障报警)
学生: 忠良 王彦峰 王永亮 方庆刚
系别:计算机与通信工程学院
专业:通信工程
班级:通信工程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
第二章设计原理4
1.单片机概述4
2.STC89C52芯片简介5
3.定时器/计数器7
4.设计思路8
第三章程序流程图8
第四章源程序清单9
第五章硬件电路图及仿真结果12
第六章课程设计体会13
第七章参考资料14
第一章 设计容与要求
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 〕的低电压,高性能OS8的微处理器,俗称单片机。该器件采用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.7
P1口〔Pin1~Pin8〕:8位准双向I/O口线,名称为P1.0~P1.7
P2口〔Pin21~Pin28〕:8位准双向I/O口线,名称为P2.0~P2.7
P3口〔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种工作方式下的逻辑构造如表所示。
M1
M2
工作方式
0
0
方式0,为13位定时器/计数器
0
1
方式1,为16位定时器/计数器
1
0
方式2,为初值自动重装的8位定时器/计数器
1
1
方式3,仅T0有效,将T0分为两个8位定时器/计数器
4.设计思路
首先了解实际交通灯的变化情况及规律,假设一个十字路口如上图所示,为东南西北走向。初始状态1东西绿灯通车,南北红灯亮。经过一段时间后,转状态2,东西绿灯灭,黄灯闪几下,南北还是红灯。再转状态3,南北绿灯通车,东西红灯亮,过一段时间后转状态4,南北绿灯灭,闪几下黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。
第三章 程序流程图
开场
定时器及中断初始预置
开场执行红绿灯指示
是不是有按键按下?
否,
继续执行红绿灯指示
是,
播放报警铃声,同时熄灭所有灯
第四章 源程序清单
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit 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();
};
}
第五章 硬件电路图及仿真结果
第六章 课程设计体会
回忆起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅稳固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比拟简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
通过这次课程设计我发现单片机原理应用行很强,只有教师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的缺乏,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的困难和成功时的喜悦。
第七章 参考资料
〔1〕单片机典型系统设计实例精讲为,黄科,雷道仲编著 电子工业 2006.5〔3,4〕;
〔2〕单片机原理及应用建忠编著 电子科技大学2002;
〔3〕AT89系列单片机原理与接口技术王幸之,钟爱琴等编著 航空航天大学 2004;
〔4〕51单片机编程根底与开发实例详解 岂兴明,唐杰等编著 人民邮电;
〔5〕单片机原理及接口技术 毅刚,喜元 编著 人民邮电 2021.11;
- word.zl
展开阅读全文