标题: 新拿到一个原理图分不清端口,尝试一整天还是只能点亮其他部件点亮不了数码管新手... [打印本页]

作者: T型骨头    时间: 2015-4-10 22:31
标题: 新拿到一个原理图分不清端口,尝试一整天还是只能点亮其他部件点亮不了数码管新手...
新拿到一个原理图分不清端口,尝试一整天还是只能点亮其他部件点亮不了数码管·······求大神写一段最简单的程序点亮数码管让我学习,谢谢!

原理图.pdf

550.6 KB, 下载次数: 15


作者: yesonjob    时间: 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这个数字。


作者: liaolinhui    时间: 2015-4-11 00:43
你得把你的图发出来来好写程序
作者: T型骨头    时间: 2015-4-11 10:58
liaolinhui 发表于 2015-4-11 00:43
你得把你的图发出来来好写程序

发出来了呀,上面附件里的原理图
作者: T型骨头    时间: 2015-4-11 13:58
问题出在哪?
作者: T型骨头    时间: 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();
   }

}
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1