資源簡介
本資源給出了使用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++;
評論
共有 條評論