找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2241|回复: 5
收起左侧

交通灯编码问题

[复制链接]
ID:375094 发表于 2018-7-20 22:23 | 显示全部楼层 |阅读模式
  • #include<reg51.H>                                         // 对单片机的口进行了定义
  • #define uint unsigned int
  • #define uchar unsigned char
  • uchar code a[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//段码组合,共阳极
  • uchar code b[4]={0x01,0x02,0x04,0x08}; //位码组合
  • uchar code c[4]={0xcc,0xd4,0x78,0xb8};/*P1 绿红、黄红、红绿、红黄*/
  • 这是交通灯的开头几行,看不懂后面三行编码

回复

使用道具 举报

ID:164602 发表于 2018-7-21 08:53 | 显示全部楼层
我也看不懂,试了一下段码,搞不出来。
所以,我要知道电路才行。
回复

使用道具 举报

ID:376436 发表于 2018-7-21 10:14 | 显示全部楼层
所以,我要知道电路才行
回复

使用道具 举报

ID:111634 发表于 2018-7-21 10:47 | 显示全部楼层
找看得懂的程序(有注释的)。
回复

使用道具 举报

ID:372402 发表于 2018-7-21 11:06 | 显示全部楼层
有电路图吗?这样看不懂,个人理解是用单片机的I/O口来控制LED灯的一个极,另一个极(阳极)上拉接电源,如果阴极则接地,单片机根据不同时间段控制相应的LED灯导通显示不同的颜色。
回复

使用道具 举报

ID:366559 发表于 2018-7-21 13:34 | 显示全部楼层
a[10]是数码管的数据,7段显示10个数
b[4]是用来移位的
比如让A端口的第3位为高电平:PORTA |= 1 << 3;
用b数组就写作:PORTA |= b[3];
类似地,让D端口的第0位为低电平:PORTD &= ~b[0];
(这是AVR的寄存器名,51我不懂)
c[4]是信号灯的数据,原理和a数组相同
0xCC 11001100
0xD4 11010100
0x78 01111000
0xB8 10111000
对应:绿黄红绿黄红XX(MSB -> LSB, X = N.C.)
共阳极接法,0亮1不亮
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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