找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C51单片机超级简单的交通灯模拟

[复制链接]
跳转到指定楼层
楼主
ID:298460 发表于 2018-3-28 18:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include "reg51.h"

  2. sbit  dula=P1^3;
  3. sbit  g1=P1^4;

  4. sbit  c=P1^5;
  5. sbit  b=P1^6;
  6. sbit  a=P1^7;

  7. char s=6,ms=0;

  8. unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  9. bit flag=0;

  10. void  delay()
  11. {
  12.         unsigned char i;
  13.         for(i=0;i<255;i++);
  14. }

  15. initial()
  16. {
  17.         TMOD=1;
  18.         TL0=0XF0;
  19.         TH0=0XD8;
  20.        
  21.         TR0=1;
  22.         ET0=1;
  23.         EA=1;
  24.         P2=0x0f;
  25.         g1=0;

  26. }

  27. display()
  28. {

  29. //        P0=tab[ms/10];dula=1;
  30. //        c=1;b=1;a=0;g1=1;
  31. //        delay();
  32. //        g1=0;

  33. //        P0=tab[ms%10];dula=1;
  34. //        c=1;b=1;a=1;g1=1;
  35. //        delay();
  36. //        g1=0;

  37.         P0=tab[s%10];dula=1;
  38.         c=1;b=1;a=1;g1=1;
  39.         delay();
  40.         g1=0;

  41.         P0=tab[s/10];dula=1;
  42.         c=1;b=1;a=0;g1=1;
  43.         delay();
  44.         g1=0;




  45. }

  46. main()
  47. {
  48.         initial();
  49.         while(1)
  50.         {
  51.                 display();
  52.         }
  53. }

  54. t_0()  interrupt 1
  55. {
  56.         TL0=0XF0;
  57.         TH0=0XD8;
  58.         ms++;
  59.         if(ms==50&&s<=3)
  60.         {
  61.                 P2=0x55;
  62.         }
  63.                
  64.                 if(ms==100)
  65.                 {
  66.                         if(flag==0){
  67.                         P2=0x0f;
  68.                         }else{
  69.                         P2=0xf0;
  70.                         }
  71.                         ms=0;
  72.                         s--;
  73.                         if(s==0)
  74.                         {
  75.                         s=6;
  76.                         flag=~flag;
  77.                         P2=~P2;
  78.                         }
  79.                 }
  80. }
复制代码
P0口接LED灯(所以有上拉电源(power)),共阴极,代码中的a,b,c是用3-8译码器定位LED,方式一中断
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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