找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4556|回复: 0
打印 上一主题 下一主题
收起左侧

单片机交通灯实验报告

[复制链接]
跳转到指定楼层
楼主
ID:298827 发表于 2018-3-29 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
交通灯实验报告
班级:
姓名:
.实验要求
使用单片机系统主机板和单片机系统I/O板设计一个硬件系统,最终实现一个交通路口红绿灯的控制。用两个数码管显示秒,8LED灯分成四组,分别作为十字交叉路口的红绿灯。亮灯的状态是:亮1s,灭1s

二.硬件连线方案见下表:
使用的并口
主机板插座
I/O板插座
功能
 P0
 P2
 P00
段码传送至数码管
 P1
 P3
 P20
 控制信号传送至数码管.段选DULA、位选G1、地址CBA
 P2
 P4
 P2
给指示灯传送数据

三.程序流程图可参考下图:

四:单片机源代码
  1. #include<reg51.h>  //包含特殊功能寄存器声明头文件
  2. sbit dula=P1^3;  // 特殊功能位定义,数码管段码控制信号
  3.             
  4. sbit g1=P1^4;  //数码管位选控制信号

  5. sbit c=P1^5;  //c表示P1.0口,地址最高位
  6. sbit b=P1^6;  //地址次高位
  7. sbit a=P1^7;  //地址最低位
  8. sbit sg=P2^0;  //特殊功能位
  9. sbit sr=P2^1;
  10. sbit eg=P2^2;
  11. sbit er=P2^3;
  12. sbit ng=P2^4;
  13. sbit nr=P2^5;
  14. sbit wg=P2^7;
  15. sbit wr=P2^6;
  16. char s=10,ms=0;

  17. unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定义无符号数组,定义的数据要放在ROM(程序存储区)里面              
  18. bit fang=0;

  19. void delay(){  //延时函数,通过for循环进行延时
  20.               unsigned char i;  //定义计数器变量
  21.               for(i=0;i<255;i++);
  22. }

  23. initial(){  //初始化函数
  24.               TMOD=1;  //设置定时器/计数器0工作方式1
  25.               TL0=0XF0;  //设置定时器/计数器0赋初值(低八位)
  26.               TH0=0XD8;  //设置定时器/计数器0赋初值(高八位)

  27.               TR0=1;  //启动定时器TO
  28.               ET0=1;  //允许定时器TO中断
  29.               EA=1;  //允许CPU中断
  30.               sr=1;
  31.               sg=0;
  32.               er=0;
  33.               eg=1;
  34.               nr=1;
  35.               ng=0;
  36.               wr=0;
  37.               wg=1;
  38.               g1=0;
  39. }

  40. display(){
  41.               P0=tab[s/10];dula=1;  //显示秒十位
  42.               c=1;b=1;a=0;g1=1;
  43.               delay();  //延时
  44.               g1=0;

  45.               P0=tab[s%10];dula=1;  //显示秒个位
  46.               c=1;b=1;a=1;g1=1;
  47.               delay();
  48.               g1=0;
  49. }

  50. main(){    //主函数
  51.               initial();
  52.               while(1){  //无限循环
  53.                             display();  //延时
  54.               }
  55. }

  56. t_0() interrupt 1{  //外部信号出发中断1中断服务函数
  57.               TL0=0XF0;  //设置定时器/计数器0赋初值(低八位)
  58.               TH0=0XD8;  //设置定时器/计数器0赋初值(高八位)
  59.               ms++;  //计数器加1
  60.               if(ms==50&&s<=3){
  61.                             wg=1;
  62.                             sg=1;
  63.                             eg=1;
  64.                             ng=1;
  65.               }
  66.               if(ms==100){  //判断计数器是否记满100
  67.                             if(fang==0){  //数码管显示0
  68.                                           ng=0;
  69.                                           sg=0;
  70.                             }
  71.                             else{
  72.                                           eg=0;
  73.                                           wg=0;
  74.                             }
  75.                             ms=0;
  76.                             s--;
  77.                             if(s==0){  //数码管显示0
  78.                                           s=10;
  79.                                           fang=~fang;
  80.                                           sr=~sr;
  81.                                           sg=~sg;
  82.                                           er=~er;
  83.                                           eg=~eg;
  84.                                           nr=~nr;
  85.                                           ng=~ng;
  86.                                           wr=~wr;
  87.                                           wg=~wg;
  88.                             }
  89.               }
  90. }
复制代码

五.实验总结:
最终实现一个交通路口红绿灯的控制。用两个数码管显示秒,8LED灯分成四组,分别作为十字交叉路口的红绿灯。相对双向绿灯的最后几秒时,绿灯要闪烁,即亮灭交替亮灭时间均为0.5秒,然后变成红灯。



完整的Word格式文档51黑下载地址:
交通灯实验报告2.docx (71.23 KB, 下载次数: 15)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表