发表于: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小数点也亮,数码管是共阴的,各位看看是程序的问题吗,谢谢,本人非常着急