找回密码
 立即注册

QQ登录

只需一步,快速开始

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

新拿到一个原理图分不清端口,尝试一整天还是只能点亮其他部件点亮不了数码管新手...

[复制链接]
ID:76071 发表于 2015-4-10 22:31 | 显示全部楼层 |阅读模式
8黑币
新拿到一个原理图分不清端口,尝试一整天还是只能点亮其他部件点亮不了数码管·······求大神写一段最简单的程序点亮数码管让我学习,谢谢!

原理图.pdf

550.6 KB, 下载次数: 15

最佳答案

查看完整内容

你这个型号的单片机没用过,74hc245也没用过,但是可以大概说下思路,实际应该还要调试的但思路应该没错的。原理图中P55引脚是控制两个74hc245芯片的,该脚写0,就可以给数码管写数据了,P0口写数据让数码管显示什么内容,P2口写数据让哪个数码管亮。 假设原理图中的数码管是共阴极的,假如我想让8个数码管同时显示0,那么应该首先让P55口写0,使能74hc245,才能把单片机的数据写到数码管上,反之写1就不能写数据。然后P2=0x00就 ...
回复

使用道具 举报

ID:74245 发表于 2015-4-10 22:31 | 显示全部楼层
本帖最后由 yesonjob 于 2015-4-11 23:23 编辑

你这个型号的单片机没用过,74hc245也没用过,但是可以大概说下思路,实际应该还要调试的但思路应该没错的。原理图中P55引脚是控制两个74hc245芯片的,该脚写0,就可以给数码管写数据了,P0口写数据让数码管显示什么内容,P2口写数据让哪个数码管亮。
假设原理图中的数码管是共阴极的,假如我想让8个数码管同时显示0,那么应该首先让P55口写0,使能74hc245,才能把单片机的数据写到数码管上,反之写1就不能写数据。然后P2=0x00就是选中8个数码管都亮,P0=0x3f就是显示0这个数字。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:58502 发表于 2015-4-11 00:43 | 显示全部楼层
你得把你的图发出来来好写程序
回复

使用道具 举报

ID:76071 发表于 2015-4-11 10:58 | 显示全部楼层
liaolinhui 发表于 2015-4-11 00:43
你得把你的图发出来来好写程序

发出来了呀,上面附件里的原理图
回复

使用道具 举报

ID:76071 发表于 2015-4-11 13:58 | 显示全部楼层
问题出在哪?
回复

使用道具 举报

ID:76071 发表于 2015-4-11 13:58 | 显示全部楼层
                                                                                  /*********************************************************************************

* 【函数功能】: 数码管静态显示-0123                                                                                           
* 【使用说明】: 跳帽短接数码管跳线J1
**********************************************************************************/

#include <reg51.h>
#define uchar unsigned char
sbit P2_0 = P2^6;
sbit P2_1 = P2^5;
sbit P2_2 = P2^4;
sbit P2_3 = P2^3 ;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
                        0xf8,0x80,0x90};
void delay(uchar i)
{
  uchar j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}

void display()
{
  
   P0=table[0];
   P2_0 = 0;
   delay(5);
   P2_0 = 1;

   P0=table[1];
   P2_1 = 0;
   delay(5);
   P2_1 = 1;

   P0=table[2];
   P2_2 = 0;
   delay(5);
   P2_2 = 1;

    P0=table[3];
   P2_3 = 0;
   delay(5);
   P2_3 = 1;
   
}

/*演示主程序*/
void main(void)
{
    unsigned int  a;
   
while(1)
{

   for(a=100;a>0;a--)
   {
     display();
   }

}
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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