单片机课程设计报告

发布 2022-10-06 07:46:28 阅读 1005

目录。一、课程设计的目的。

二、课程设计用的仪器和器件。

三、课程设计的具体内容。

1、总体报告。

2、硬件设计。

3、软件流程和程序。

4、调试结果。

四、课程设计的体会和发生的问题。

参考文献。一、课程设计的目的。

单片机系统课程设计是《单片机原理与接**术》课程与实验结束后的一门综合性实践课。所选题目《交通灯控制系统》紧密结合所学的主要内容,加深巩固所学知识,同时对所学内容进行扩展,有一定的深度和广度,能充分发挥学生的能动性和想象力。通过电路设计、安装、调试等一系列环节的实施,提高学生的单片机应用系统的设计能力。

二、课程设计用的仪器和器件。

实验设备:试验台、电烙铁、焊锡丝、支架、吸枪、剪刀、pc机一台、**仪一台。

实验材料:电路板(12*8 cm 1块)、发光二级管(红、黄、绿各4只)、发光二级管插座(4只)、接线排座(7针)、电阻(300ω 12只)、导线(红、黄、绿各0.5米)

三、课程设计的具体内容。

1、总体报告

本次单片机课程设计的任务是以单片机为核心设计一个完整的交通灯模拟系统,用p1.0、p1.1、p1.

2控制南北通道的红、黄、绿灯;用p1.3、p1.4、p1.

5控制东西通道的红、黄、绿灯。开始时,南北红灯亮并保持25秒,同时东西绿灯亮,保持20秒,20秒钟到了之后,东西绿灯闪亮3次(每周期1秒)后熄灭。继而东西黄灯亮并保持2秒,到2秒后,东西黄灯灭,东西红灯亮并保持25秒,同时南北红灯灭,南北绿灯亮20秒,20秒到了之后,南北绿灯闪亮3次(频率为0.

5秒)后熄灭。继而南北黄灯亮并保持2秒,到2秒后,南北黄灯灭,南北红灯亮,同时东西红灯灭,东西绿灯亮。到此完成一个循环。

紧急状况由按键产生,两个方向的交通灯全为红(10s),急救车通过后恢复正常信号。

此次设计中,我重新熟悉了用protel99se画系统原理图的步骤与方法,重点复习了用汇编语言编程的相关细节与法则。硬件部分要画出电路的原理图和**图,软件部分要细心编程,实现交通灯的基本功能和紧急情况,学会如何调试、运行程序,发现其中的错误并进行修改,通过这次课程设计,加强了动手、思考和解决问题的能力。

2、硬件设计。

设计出单片机最小控制系统,在12*8cm的万用版上,布局好格局,并且将发光二极管插座焊接到万用版上,然后将12个发光二极管,其中红色4个、黄色4个、绿色4个插入其中。每个发光二极管与电源之间接一个阻值300欧姆的电阻,作为限流,以防止因电流过大烧毁发光二极管。发光二极管的控制输入由xl400开发板提供,倒计时时间显示在xl400的8位数码管上,紧急按键由xl400提供。

硬件电路中交通灯的连接方式:相同方向的相同颜色的灯并联在一起,即东西方向的绿色led灯并联在一起, led灯的正极接电压为+5v的电源,负极串联一个300ω的电阻与排针的其中一根针脚串联起来,东西方向实际用3个电阻。其他方向,其他颜色连接方法相同。

在只有红黄绿三种颜色led灯的情况下,需用6个i/o端口来控制led灯的亮灭。

protel硬件原理图。

proteus**图。

3、软件流程和程序。

1)软件流程图。

软件流程图。

2)源程序。

#include<> 包含头文件。

#define uint unsigned int //用uint表示unsigned int

#define uchar unsigned char //用uchar表示unsigned char

void delay0_5s1();0.5秒延时函数。

void delay_t1(uchar t); 延时时间为1s*t的延时函数。

void display();数码管显示函数。

uchar counter=0,sec=0,n,c, t0,t1;//定义全局变量。

uchar code led=共阳0~9字型码。

void int_0() interrupt 0 //紧急情况中断。

uchar h, i, j, k, l, m, o, p, q;

h=counter; /保护现场,暂存counter 、p1口、t0、t1、th1、tl1、th0、tl0、sec*/

i=p1;j=t0;

k=t1;l=th1;

m=tl1;

o=th0;

p=tl0;

q=sec;

sec=15;

th0 = 0xd8;

tl0 = 0xf0;

p1=0xf6; /东西、南北都是红灯。

delay_t1(10); 延时10s

counter=h; /恢复现场,恢复进入中断前counter 、p1口、t0、t1、th1、tl1、th0、tl0、sec*/

p1=i;t0=j;

t1=k;th1=l;

tl1=m;

th0=o;

tl0=p;

sec=q;

void time0_int() interrupt 1 //定时器0中断类型号为1

th0 = 0xd8; /10ms定时初值。

tl0 = 0xf0;

counter中断次数增1

if(counter ==100) /若中断次数到100次。

display();调用数码管显示函数。

void display() 数码管显示函数。

if(sec>=0&sec<25) /控制前25秒数码管显示。

else /控制后25秒数码管显示。

switch(n)

if (n= =2) n=0;

void main主函数。

ea=1; /开总中断允许位。

ex0=1; /开外部中断0中断允许位。

it0=1; /设置外部中断0为下降沿触发。

et0=1; /允许t0中断。

tr0=1; /启动t0

tmod=0x11; /设置t0、t1为方式1

ip=0x02; /设置定时器t0中断优先于外部中断0

while(1) /死循环。

p1=0xee; /南北红灯亮、东西黄灯亮2s

delay_t1(2);

p1 = 0xf3; /东西红灯、南北绿灯亮20秒。

delay_t1(20);

for(y=0;y<3;y++)东西红灯亮、南北绿灯闪亮3次(每周期1秒)

p1=0xf5; /东西红灯亮、南北黄灯亮2s

delay_t1(2);

void delay0_5s1() 用t1的工作方式1实现0.5s延时。

for(t0=0;t0<0x0a;t0++)设置10次循环次数。

th1=0x3c设置定时器初值为3cb0h

tl1=0xb0;

tr1=1启动t1

while(!tf1查询计数是否溢出,即定时50ms时间到,tf1=1

tf1=050ms定时时间到,将t1溢出标志位tf1清零。

void delay_t1(uchar t) /实现1s*t延时。

for(t1=0;t1

4、调试结果。

检测步骤:第一步:目测。检查外部的各种元件或者是电路是否有断点。

第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

单片机课程设计报告

单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....

单片机课程设计报告

韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...

单片机课程设计报告

南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...