logo资料库

单片机红绿灯实验报告.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
实验项目名称:交通灯控制 一、实验目的: 1. 对所学的电子线路、单片机原理等方面知识的综合训练,巩固所学知识提高应用能力。 2. 培养独立分析问题和解决问题的能力,提高用所学知识解决实际问题的能力。 3. 提高设计及动手操作能力,对今后的学习及将来工作起到促进作用。 二、实验内容与原理: 设计电路、完成电路连接、调试、设计程序、完成程序调试及软硬件综合调试,程序 固化等过程,达到脱机运行目的。(样机单独运行) 要求实现设一个十字路口,1、3 为南北方向;2、4 为东西方方向;每个方向设有 东西方向 南北方向 1 2 3 4 红 20S 20S 绿 黄 红 绿 黄 4S 20S 4S 16S 红、黄、绿信号灯共 12 个。单片机控制 4 个路口亮灭的规律:设初态为 4 个路口的红灯 全亮,之后 1、3 路口的红灯灭,绿灯亮,2、4 路口的红灯亮,1、3 路口方向通车。延 迟一段时间后,1、3 路口的绿灯灭,而黄灯开始闪烁若干次后熄灭,点亮 4 个路口的红 灯,之后再点亮 2、4 路口的绿灯,红灯熄灭,2、4 路口方向开始通车。延迟一段时间 后,2、4 路口绿灯熄灭,黄灯开始闪烁若干次后熄灭,而红灯点亮,然后再切换到 1、3 路口方向。之后重复上述过程。 三、实验器材(设备、元器件、软件工具、平台):
平台:windows xp 软件工具:EasyPRO80B、MedwinV3.0、Proteus 元器件:面包板、AT89S51 单片机、7407 芯片、12MHz 晶振、20pF 电容、 300Ω电阻、1KΩ电阻、10μF 电解电容、蜂鸣器、手动开关、led 数码管、发光二极管 插线若干 设 备:微机、AT89S51、微机一台 2. ME-52HP 仿真器 一台、开关电源一台、 万用表一台、EasyPRO80B 写入器一台 四、实验步骤: 电路设计
程序设计: #include typedef unsigned char u8; typedef unsigned int u16; sbit red1 =P0^0; sbit red2 =P0^3; sbit gre1=P0^1; sbit gre2=P0^4; sbit yel1=P0^2; sbit yel2=P0^5; sbit sw=P0^6; sbit swp=P0^7; code u8 table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(u16 n) { //延时程序 for(mm=50;mm>0;mm--) display(n); yel2=~yel2; } } u16 i,j; for(i=n;i>0;i--) for(j=1180;j>0;j--); } void display(u8 nn) { u8 n,m; n=nn / 10; m=nn % 10; sw =1; swp =0; P2=~table[n]; delay(1); sw=0; swp=1; P2=~table[m]; delay(1); } void dis()//显示 16 倒计时 { u8 n,mm; for(n=16;n>0;n--) { for(mm=50;mm>0;mm--) display(n); } } void diss()//显示 4 倒计时 { u8 n,mm; for(n=4;n>0;n--) {
void diss2()//显示 4 倒计时 { u8 n,mm; for(n=4;n>0;n--) { for(mm=50;mm>0;mm--) display(n); yel1=~yel1; } } void zero() { } void first() { red1=0; red2=0; gre1=0; gre2=0; yel1=0; yel2=0; zero(); red1=1; gre2=1; dis(); zero(); red1=1; yel2=1; diss(); zero(); red2=1; gre1=1; dis(); zero(); red2=1; yel1=1; diss2(); } void main() { P0=0x00; P0=0xff; delay(400); while(1) { first(); display(12); } }
正确进行电路连接(电路布局、芯片管角、正负极、短路 、断路) 运用仿真器调试程序:(进行汇编、调试、运行。目的:达到所设计任务的要求) 写入器写入程序(一个是写入过程,另一个是写入后的芯片插入电路中完成设计功能) 五、实验数据及结果分析: 实验结果:开机所有灯全亮 4 秒后;南北开始绿灯计时 16 秒,东西红灯亮;后黄灯 闪烁间隔 1 秒并倒计时;南北红灯,东西绿灯亮,倒计时 16 秒;后黄灯闪烁间隔 1 秒并 倒计时显示。 红绿灯两路用 P0^0 ~P0^6 控制南北 RED,GREEN,YELLOW,东西 RED,GREEN, YELLOW;数码管采用扫描方式显示,段选接 P2 口并上拉电阻,P0^6,P0^7 接位选信 号。 六、实验结论: 与实验要求相符,实现所有要求。 七、思考题 1、红绿灯点亮时间如何控制? 答:调用 10ms 延时 delay(),点亮对应 led 后延时调用 delay(1600);即可实现 16 秒 延时,根据要求设置延时时间,达到控制 led 的目的。 八、实验总结 总的来说实验完成的还是不错的,只是在插线时有与连接不紧密,导致多次重新插装, 浪费太多时间,因此下次做实验应认真插线完成快速实验。
分享到:
收藏