交通灯智能控制和电脑时钟实训报告.docx

上传人:b****6 文档编号:15464086 上传时间:2023-07-04 格式:DOCX 页数:31 大小:133.42KB
下载 相关 举报
交通灯智能控制和电脑时钟实训报告.docx_第1页
第1页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第2页
第2页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第3页
第3页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第4页
第4页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第5页
第5页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第6页
第6页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第7页
第7页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第8页
第8页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第9页
第9页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第10页
第10页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第11页
第11页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第12页
第12页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第13页
第13页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第14页
第14页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第15页
第15页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第16页
第16页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第17页
第17页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第18页
第18页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第19页
第19页 / 共31页
交通灯智能控制和电脑时钟实训报告.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

交通灯智能控制和电脑时钟实训报告.docx

《交通灯智能控制和电脑时钟实训报告.docx》由会员分享,可在线阅读,更多相关《交通灯智能控制和电脑时钟实训报告.docx(31页珍藏版)》请在冰点文库上搜索。

交通灯智能控制和电脑时钟实训报告.docx

交通灯智能控制和电脑时钟实训报告

信息工程学院实训报告

项目一交通灯智能控制

项目二电脑时钟(定时器、中断器综合应用)

 

学生姓名:

杨尚文

学号:

0967106427

专业:

自动化

班级:

自2009-4

指导教师:

贾玉瑛李爱莲

梁丽李琦陈波

内蒙古科技大学实训任务书

课程名称

微计算机应用及计控技术实训

实训地点

实训名称

数字电压表的设计

B307、B308

指导教师

贾玉瑛、李爱莲、梁丽、陈波、李琦

时间

第十九周

一、实训的基本要求

1、预习要求:

学生要根据实训题目要求查阅参考资料,提前进行认真的预习,初步弄懂实训内容、原理,并写出预习报告;预习报告应包括基本的实训内容和实训方案,基本实训步骤、过程以及数据记录,对于有设计内容的项目要提前做好设计方案。

2、操作要求:

学生要搞清本次实训需使用的仪器,每种仪器在实训中所起的作用,合理选择使用仪器,正确使用测量方法。

根据已设计的实训步骤并经老师同意后开始实训。

学生要认真观察分析实训现象,记录实训数据。

运用所学知识解决实训中发生的问题;每项实训结果,需经教师认可后,方可结束实训;实训后认真填写实训记录。

3、实训报告要求:

学生在做完实训后,科学地、真实地、完整地完成实训报告。

训报告应包括实训原理、实训方法的概述;实训步骤的描述;实训现象和实训数据的记载;最后应对实训结果进行分析,并回答相应实训项目后的思考题。

二、实训内容

1、设计硬件电路,计算A/D转换器的地址,

2、进行A/D转换,将转换输出的数据转换成相应的电压值,

3、完成LED的软、硬件设计并将相应的电压值在LED上显示出来。

4、要求数字电压表可以测量0-5V的电压,并在4位数码管上显示出来,测量的最小分辨率为0.019V,测量误差约为0.02V。

三、评分标准

实训成绩评定依据包括以下几点:

1、实训态度及出勤情况(10%)――态度是否认真,有无迟到早退等;

2、设计方案的合理性、可行性(20%)

3、操作的规范性或正确性(10%)――是否认真阅读操作说明书,是否严格按照规

程进行操作,是否具有严格的科学态度,有无明显的操作失误;

4、实训结果(20%)――实训内容的完整性,有无抄袭他人的现象;

5、实训报告提交时效性(10%)――是否及时提交实训报告;

6、实训报告内容(30%)——撰写是否认真,格式是否规范,内容是否完整,数据结论是否合理等。

分为优、良、中、及格、不及格五个等级或给分数。

考核方式:

实训期间教师现场检查;评阅实训报告。

四、建议参考资料

1、实训教材

2、参考书目:

《新编单片机原理与应用》潘永雄,西安电子科技大学出版社,2003.2第1版

《单片微型计算机大学读本》李勋,北京航空航天大学出版社,1998.11第1版

《基于proteus的单片机系统设计与仿真实例》蒋辉平,机械工业出版社,2009.7

五、自选设计题目

项目一交通灯智能控制

项目二电脑时钟(定时器、中断器综合应用)

 

摘要

项目一交通灯智能控制

交通灯在现代社会交通管理的作用毋庸置疑,但某些所需的功能仍然不具备,本文设计的交通灯实现了基本的倒计数功能。

设计以MCS-51单片机为核心,外接外围电路构成基本电路,编写C语言程序,在Dais仿真实验系统中仿真,基本实现了交通微控制器的模拟。

 

项目二电脑时钟(定时器、中断器综合应用)

本系统是以单片机MCS-51为主要控制芯片,已显示和调节时间,通过单片机中的时钟脉冲计时,并在LED数码管上显示时间,通过按键调节实时时间。

 

关键词

单片机;交通灯;控制器;电脑时钟;定时器;CPU

项目一交通灯智能控制

项目二电脑时钟(定时器、中断器综合应用)

正文

项目一交通灯智能控制

第1章实训简介

1.1实训要求

本课程的任务是使学生通过“交通灯”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。

1.2实训目的

(1)利用单片机I/O口或以扩展锁存器的方式控制点阵显示。

(2)利用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

(3)根据交通流量实时改变红绿灯导通时间,用实验箱中6位LED显示倒计时时间,用键盘或开关设定交通灯导通时间。

1.3实训内容

用8255作输出口,控制12个发光二级管燃灭,模拟交通等管理,根据交通流量实时改变红绿灯导通时间,用实验箱中6位LED显示倒计时时间,用键盘或开关设定交通灯导通时间。

1.4实验说明

1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西绿灯通车,南北红灯。

过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。

再转状态3,南北绿灯通车,东西红灯。

过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。

最后循环至状态1。

第2章硬件设计

2.1编程提示

可编程并行通信接口8255A有3个8位数据端口,即端口A、端口B、端口C、通过软件在控制端口中设置控制字来决定它的工作方式。

为了适应多种数据传送方式的要求,8255A有3种基本工作方式。

方式0:

为基本输入输出方式;方式1:

为选通输入输出方式;方式2:

为双向传输方式

方式选择控制字的格式如下:

本实验用方式0,是一种基本的输入/输出方式。

它是把PA0-PA7、PB0-PB7、PC0-PC7、全部输入/输出线都用作传送数据。

设置方式选择控制字使各端口工作在输出方式。

A组方式选择控制端口A和端口C的高四位PC4-PC7的工作方式,B组方式选择控制端口B和端口C的低四位PC0-PC3的工作方式。

8255端口地址如下:

8255A口地址FFD8H8255B口地址FFD9H

8255C口地址FFDAH8255控制口地址FFDBH

2.2程序参考流程

2.3硬件电路图

2.4实训内容

2.4.1实验连线

(1)8255PA口接L12~L5,PB0~PB3接L4~L1.

(2)六位LED显示灯显示时间。

(3)三个模式切换键不停切换模式,模拟不同情况下的交通灯闪耀和灯亮切换情况。

2.4.2PC环境

在于PC联机状态下,编辑调试程序,编译、连接、下载,用联系方式运行程序。

2.4.3观察运行结果

在连续运行方式下,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的后口灯亮,东西路口方向通车。

延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。

闪耀若干次后,东西路口红灯亮,而同时南北路的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。

闪耀若干次后,再切换到东西路口方向,之后重复以上过程。

第3章软件设计

3.1编程语言选择

用C语言编写程序。

3.1.1中断源及中断源入口地址

3.1.1.1中断源

增强型MCS51是一个多中断的单片机,共有3类6个中断源,分别是两个外部中断、三个定时器中断和一个串行中断,如表1.1所列。

P0口功能:

P0口具有两种功能:

第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。

输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。

第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写

P1口功能 :

P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。

P2口的功能:

P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。

它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。

P3口功能:

P3口有两个功能:

第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。

3.1.1.2中断源入口地址

每一个中断源都有一个固定的中断处理入口地址,它们的地址如表1.2所示。

表1.2中断源入口地址

扩展名称

口地址

用处

控制方式

273(4)

0FFE3H

列代码1

扩展锁存器

273

(1)

0FFE0H

列代码2

扩展锁存器

273(3)

0FFE2H

行扫描1

扩展锁存器

273

(2)

0FFE1H

行扫描2

扩展锁存器

3.2程序设计流程图

附录

字形表

代码

D7

D6

D5

D4

D3

D2

D1

D0

字形

H

h

g

f

e

d

c

b

a

C0

1

1

0

0

0

0

0

0

0

F9

1

1

1

1

1

0

0

1

1

A4

1

0

1

0

0

1

0

0

2

B0

1

0

1

1

1

0

0

0

3

99

1

0

0

1

0

0

0

1

4

92

1

0

0

1

0

0

1

0

5

82

1

0

0

0

0

0

1

0

6

F8

1

1

1

1

1

0

0

0

7

80

1

0

0

0

0

0

0

0

8

90

1

0

0

1

0

0

0

0

9

88

1

0

0

0

1

0

0

0

A

83

1

0

0

0

0

0

1

1

B

C6

1

1

0

0

0

1

1

C

A1

1

0

1

0

0

0

0

1

D

86

1

0

0

0

0

1

1

0

E

8E

1

0

0

0

1

1

1

0

F

FF

1

1

1

1

1

1

1

1

无显示

0C

0

0

0

0

1

1

0

0

P、

89

1

0

0

0

1

0

0

1

H

7F

0

1

1

1

1

1

1

1

BF

1

0

0

1

1

1

1

1

-

6位LED字位表

未用

未用

LED6

LED5

LED4

LED3

LED2

LED1

20H

10H

08H

04H

02H

01H

3.3软件程序:

#include

#include

#defineucharunsignedchar

#defineCON_8255XBYTE[0XFFDB]

#definePA_8255XBYTE[0XFFD8]

#definePB_8255XBYTE[0XFFD9]

#definePC_8255XBYTE[0XFFDA]

#defineled_zxXBYTE[0XFFDC]

#defineled_zwXBYTE[0XFFDD]

ucharcodeZX_TAB[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};

ucharcodeLA_TAB[]={0X5D,0X9E,0XDF,0XEB,0XF3,0XFB};

ucharcodeLB_TAB[]={0X7,0X7,0X7,0XA,0XC,0XE};

ucharcodeRE_TAB[]={45,35,55};

ucharre,gr,ye;

uchart_t;

ucharab;

ucharb;

uchard;

ucharaa;

ucharzz;

ucharkl;

ucharT0CNT0;

voidinit_sys();

voiddelay();

voidled_1();

voidled_2();

voidl_dx();

voidr_dx();

voidh_dx();

voidh_nb();

voidmode_0();

voidmode_1();

voidmode_2();

voidlight_m();

voidzz_z();

voidmain()

{

init_sys();

if(kl==1){ab=PC_8255&0X3;kl=0;}/*程序运行初始阶段交通灯方式的选择,只用一次*/

while

(1){

light_m();

}

}

voidinit_sys()/*初始化*/

{

IE=0X82;

TMOD=1;

TL0=0XB0;

TH0=0X3c;

TR0=1;

T0CNT0=10;

CON_8255=0X89;

t_t=92;

PC_8255=0;

PA_8255=0XDB;

PB_8255=0X6;

d=0;

ab=0;

aa=0;

b=5;

zz=0;

kl=1;

}

voiddelay()

{

ucharbb=200;

for(;bb>0;bb--);

}

voidled_1()/*LED数码管显示的是绿、红灯对应的时间*/

{

led_zx=ZX_TAB[gr/10];

led_zw=0x20;

delay();

led_zx=ZX_TAB[gr%10];

led_zw=0x10;

delay();

led_zx=ZX_TAB[re/10];

led_zw=0x2;

delay();

led_zx=ZX_TAB[re%10];

led_zw=0x1;

delay();

}

voidled_2()/*LED数码管显示的是红、绿灯对应的时间*/

{

led_zx=ZX_TAB[0];

led_zw=0x8;

delay();

led_zx=ZX_TAB[ye];

led_zw=0x4;

delay();

led_zx=ZX_TAB[re/10];

led_zw=0x2;

delay();

led_zx=ZX_TAB[re%10];

led_zw=0x1;

delay();

}

voidl_dx()/*东西向绿灯、及相应的LED数码管显示时间*/

{

PA_8255=LA_TAB[0];

PB_8255=LB_TAB[0];

led_1();

}

voidr_dx()/*东西向红灯、及相应的LED数码管显示时间*/

{

PA_8255=LA_TAB[3];

PB_8255=LB_TAB[3];

led_1();

}

voidh_dx()/*东西向黄灯、及相应的LED数码管显示时间,黄灯闪烁周期为2S*/

{

if(t_t%2==0)

{

PA_8255=LA_TAB[1];

PB_8255=LB_TAB[1];

led_2();

}

elseif(t_t%2==1)

{

PA_8255=LA_TAB[2];

PB_8255=LB_TAB[2];

led_2();

}

}

voidh_nb()/*南北向黄灯、及相应的LED数码管显示时间,黄灯闪烁周期为2S*/

{

if(t_t%2==1)

{

PA_8255=LA_TAB[4];

PB_8255=LB_TAB[4];

led_2();

}

elseif(t_t%2==0)

{

PA_8255=LA_TAB[5];

PB_8255=LB_TAB[5];

led_2();

}

}

voidmode_0()/*方式0*/

{

if(t_t>=51&&t_t<=90)

l_dx();

elseif(t_t>=46&&t_t<=50)

h_dx();

elseif(t_t>=6&&t_t<=45)

r_dx();

elseif(t_t>=1&&t_t<=5)

h_nb();

}

voidmode_1()/*方式1*/

{

if(t_t>=41&&t_t<=90)

l_dx();

elseif(t_t>=36&&t_t<=40)

h_dx();

elseif(t_t>=6&&t_t<=35)

r_dx();

elseif(t_t>=1&&t_t<=5)

h_nb();

}

voidmode_2()/*方式2*/

{

if(t_t>=61&&t_t<=90)

l_dx();

elseif(t_t>=56&&t_t<=60)

h_dx();

elseif(t_t>=6&&t_t<=55)

r_dx();

elseif(t_t>=1&&t_t<=5)

h_nb();

}

voidlight_m()/*方式的选择*/

{

if(zz==1)ab=PC_8255&0X3;

if((ab==0)||(ab==3))d=0;

elseif(ab==1)d=1;

elseif(ab==2)d=2;

if(zz==1){re=t_t-RE_TAB[d];gr=re-5;zz=0;}

switch(d)

{

case0:

mode_0();break;

case1:

mode_1();break;

case2:

mode_2();break;

default:

mode_0();break;

}

}

voidtimer1()interrupt1/*产生0.1S的延时*/

{

TL0|=0XB0;

TH0=0X3C;

T0CNT0--;

if(T0CNT0==0)

{T0CNT0=10;

t_t--;

if(t_t<91)zz_z();

}}

voidzz_z()/*中断函数*/

{

if(aa==0)re=(t_t-RE_TAB[d]);

elsere=t_t;

if(re>0)

{gr=(re-5);

if(gr==0||gr>70)ye=b--;

}

else

{if(t_t==0){t_t=90;zz=1;aa=0;}

else{re=t_t;gr=re-5;aa=1;}

b=5;

ye=b;

}

}

3.4运行结果

结果运行显示十字路口交通灯的控制情况正常。

第4章实训心得

4.1实训体会

通过本次试验,对单片机方面的知识有了更深一步的了解,对C语言有了更深刻的理解,初步具备了独立编程的能力。

4.2实训建议

希望以后有更多机会提高实践能力。

4.3实训总结

交通灯模拟程序成功运行,实现了正常情况下绿灯变红灯时,要求黄灯先亮5秒,黄灯亮时,绿灯灭。

在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)时均有倒计时显示。

基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。

可以在有紧急情况时,使东西、南北的绿灯亮以利于特种车辆通行。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能比较强大,可以随时的更新系统,进行不同状态的组合。

该系统还存在某些不足,譬如红灯和绿灯的切换不够迅速,红绿灯规则效率不是很高,而且这些都没有考虑到一些特殊人群如盲人与色盲,应该再加一些语音提示等等措施,相信如果这样可以大大降低交通事故率。

参考文献

[1]林毓梁.单片机原理及应用[M].机械工业出版社,2007.

[2]周力,陈跃东,江明.城市智能交通信号控制系统设计[J].自动化与仪器仪表,2006,(6):

37-40.

[3]何立民.单片机高等教程[M].北京:

航空航天大学出版社,2008.

[4]杨汉祥,刘良福,邬喜辉.利用单片机改进交通灯控制系统[J].北京电子科技学院学报,2005,13(4):

68-71.

[5]蔡美琴,张为民,毛敏.MCS-51系列单片机系统及其应用[M].北京:

高等教育出版社,2006.

[6]杨汉祥,刘良福,邬喜辉.利用单片机改进交通灯控制系统[J].北京电子科技学院学报,2005,13(4):

68-71.

[7]蔡军,曹慧英.智能交通灯控制系统的设计与实现[J].重庆邮电学院学报,2004,16(3):

129-132.

[8]胡伟,季晓衡.单片机C程序设计及应用实例[M].北京:

人民出版社,2003,8.

项目二电脑时钟(定时器、中断器综合应用)

第1章实训简介

1.1实训目的

熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。

1.2实训内容

编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

第2章硬件设计

2.1实训步骤

在与PC联机状态下,编写、调试程序,实现电脑钟功能。

第3章软件设计

3.1程序设计流程图

3.2软件程序:

#include

#include

#include

#defineled_zxXBYTE[0XFFDC]

#defineled_zwXBYTE[0XFFDD]

#definen_tabXBYTE[0XFFDE]

#defineucharunsignedchar

UcharcodeG_TAB[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,

0x88,0x83,0xc6,0xa1,0x86,0x8e};

ucharcodezx_TAB[]={0XB0,0x8e,0XA4,0XC0,0XF9,0xa1,0xc6,0x86,0X90,0X92,0X80,0X99,0XF8,0x83,0x88,0X82};

uchartab[6]={0XC0,0XC0,0XC0,0XC0,0XC0,0XC0};

uchart_ab[6]={0};

voidinit_sys1();

voidinit_sys2();

voiddelay(ucharab);

voids_tab();

voidp_tab();

voidp_s();

voidz_h();

voidLED_D();

ucharx,xx;

uchara,b,c;

ucharm;

uchart_h,t_m,t_s;

ucharT0CNT;

voidmain()

{

init_sys1();/*初始化*/

for(;x<6;)

{

p_tab();

m=0x

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2