7219显示 点击:821 | 回复:0



很想学

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 11回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2005年10月06日
发表于:2007-04-12 09:06:00
楼主
#include "reg52.h"
typedef unsigned char uchar;
sbit DIN_7219=P0^0;/*定义管脚*/
sbit LOAD_7219=P0^1;
sbit CLK_7219=P0^2;
#define addr_0        0x1 /*显示数据1的寄存器地址*/
#define addr_trans    0x9 /*译码方式寄存器地址*/
#define addr_light    0xA /*亮度寄存器地址*/
#define addr_scan     0xB /*扫描界线寄存器*/
#define addr_close    0xC /*掉电寄存器*/
#define addr_showtest 0xF /*显示测试寄存器*/
void send_7219(uchar da)
{
  uchar i;
  for(i=0;i<8;i++)
  {
   CLK_7219=0;
   DIN_7219=(bit)(da&0x80);
   da<<=1;
   CLK_7219=1;
  }
}
void write_7219(uchar addr,uchar dat)
{
 LOAD_7219=0;
 send_7219(addr);
 send_7219(dat);
 LOAD_7219=1;
}

//-----------------------------------------
void ini_7219()
{
 write_7219(addr_trans,0xff);/*译码方式选择,1111 1111 最高位选择小数点,低四位数据选择*/
 write_7219(addr_light,0x08);/*亮度方式选择,17/32;*/
 write_7219(addr_scan,0x02);/*扫描界限服务器*/
 write_7219(addr_close,0x01);/*掉电寄存器*/
 write_7219(addr_showtest,0x00);/*测试寄存器,正常模式为0*/
}

main()
{
  ini_7219(); 
  while(1)
  {
  write_7219(addr_0,0x1);
  }
}
这是我的程序,但是接通后数码管不亮,如果给p00高电平的时候,显示为8小数点也亮,数码管是共阴的,各位看看是程序的问题吗,谢谢,本人非常着急


热门招聘
相关主题

官方公众号

智造工程师