资源简介
本资源给出了使用MCS51单片机对HT1622的控制代码,可以简单移植到其他单片机中。
代码片段和文件信息
#include
sbit cs=P3^0;
sbit wr=P3^1;
sbit sid=P3^2;
char code char_0_0[]={0x000x00};/*-- 文字: 空 --*/
char code char_0[]={0xa00xf0};/*-- 文字: 0 --*/
char code char_1[]={0xa00x00};/*-- 文字: 1 --*/
char code char_2[]={0xc00xb0};/*-- 文字: 2 --*/
char code char_3[]={0xe00x90};/*-- 文字: 3 --*/
char code char_4[]={0xe00x40};/*-- 文字: 4 --*/
char code char_5[]={0x600xd0};/*-- 文字: 5 --*/
char code char_6[]={0x600xf0};/*-- 文字: 6 --*/
char code char_7[]={0xa00x80};/*-- 文字: 7 --*/
char code char_8[]={0xe00xf0};/*-- 文字: 8 --*/
char code char_9[]={0xe00xd0};/*-- 文字: 9 --*/
/*=======延时================*/
void delay(int i)
{
int jk;
for(j=0;j for(k=0;k<110;k++);
}
/*=======等按键================*/
void Switch()
{
repeat:
if (P2&0x01) goto repeat;
else ;
if (P2&0x01) goto repeat;
else delay(400);
}
/*模式选择*/
void mode_select(int data1)
{
int i;
for(i=0;i<3;i++)
{
wr=0;
if(data1&0x80) sid=1;
else sid=0;
//delay(20);
wr=1;
data1=data1<<=1;
}
}
/*=========写指令===============*/
void wcom(int data1)
{
int i;
cs=0;
mode_select(0x80);
for(i=0;i<8;i++)
{
wr=0;
if(data1&0x80) sid=1;
else sid=0;
//delay(2);
wr=1;
wr=0;
data1=data1<<=1;
}
wr=0;
wr=1;
cs=1;
}
/*=========写数据===============*/
void wdata(int data1)
{
int i;
for(i=0;i<4;i++)
{
wr=0;
if(data1&0x80) sid=1;
else sid=0;
wr=1;
data1=data1<<=1;
}
}
/*写地址*/
void select_address(int data1)
{
int i;
cs=1;
cs=0;
mode_select(0xa0);/*模式选择*/
data1=data1<<=1;
data1=data1<<=1;
for(i=0;i<6;i++)
{
wr=0;
if(data1&0x80) sid=1;
else sid=0;
wr=1;
data1=data1<<=1;
}
}
/*清屏*/
void clear()
{
int i;
select_address(0x18);
for(i=0;i<4;i++)
{
wdata(0x00);
wdata(0x00);
}
}
/*全显示*/
void full_display()
{
int i;
select_address(0x18);
for(i=0;i<4;i++)
{
wdata(0xf0);
wdata(0xf0);
}
}
/*显示数字*/
void char_disp(int data1)
{
unsigned char *dp; //define data pointer
int i;
dp=char_0;
for(i=0;i {
dp++;
dp++;
}
wdata(*dp);
dp++;
评论
共有 条评论