找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2165|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于自定義字符集的一些問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:261593 發(fā)表于 2017-12-27 14:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

#include "Data.h"
#include "DS1302.h"
#include "AT24C02.h"

sbit COUNT_IN=P3^2;

//定義1602相關(guān)管腳
sbit rs=P1^4;
sbit en=P1^0;

//鍵盤(pán)定義
sbit K1=P3^4;        //設(shè)置時(shí)間
sbit K3=P3^6;        //減按鍵
sbit K2=P3^5;        //加按鍵
sbit K4=P3^7;        //設(shè)置半徑安全距離
sbit BEEP=P3^0;

uint count;
unsigned long Velocity,Mileage;

uchar code tab1[]={"  /  /     :    "}; //14/09/10 16:34 3          
uchar code tab2[]={"  0.000km 00km/h"};        //000.000km 00km/h
uchar code tab3[]={"Wheel Radius  cm"};
uchar code tab4[]={"Safe Speed  km/h"};
uchar code tab5[]={"Sec :           "};
                                                  
uchar Mode=0;
uchar bike_set=0;
uchar a;
char RADIUS,SAFE_SPEED;
bit LED_SEC;
uchar before_sec;       

//自定義字符
uchar code num[]={
                                                0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//1         
                                                0x1f,0x01,0x01,0x1f,0x10,0x10,0x1f,0x00,//2
                                                0x1f,0x01,0x01,0x1f,0x01,0x01,0x1f,0x00,//3         
                                                0x11,0x11,0x11,0x1f,0x01,0x01,0x01,0x00,//4
                                                0x1f,0x10,0x10,0x1f,0x01,0x01,0x1f,0x00,//5         
                                                0x1f,0x10,0x10,0x1f,0x11,0x11,0x1f,0x00,//6
                                                0x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x00,//7        
};
void READS();
void SETS();
void delay(uint x)
{
        uint i,j;
        for(i=0;i<x;i++)
        for(j=0;j<110;j++);
}
void init()
{
        IT0=1;        //INT0負(fù)跳變觸發(fā)       
    TMOD=0x01;//定時(shí)器工作于方式1
        TH0=0x3c;          //50ms
        TL0=0xb0;
        EA=1; //CPU開(kāi)中斷總允許
        ET0=1;//開(kāi)定時(shí)中斷
        EX0=1;//開(kāi)外部INTO中斷
    TR0=1;//啟動(dòng)定時(shí)
}
/********液晶寫(xiě)入指令函數(shù)與寫(xiě)入數(shù)據(jù)函數(shù),以后可調(diào)用**************/

void write_1602com(uchar com)//****液晶寫(xiě)入指令函數(shù)****
{
        rs=0;//數(shù)據(jù)/指令選擇置為指令
        P0=com;//送入數(shù)據(jù)
        delay(1);
        en=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備
        delay(1);
        en=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令

}


void write_1602dat(uchar dat)//***液晶寫(xiě)入數(shù)據(jù)函數(shù)****
{
        rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
        P0=dat;//送入數(shù)據(jù)
        delay(1);
        en=1; //en置高電平,為制造下降沿做準(zhǔn)備
        delay(1);
        en=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}
//自定義字符集
void Lcd_ram()      
{
        uint i,j,k=0,temp=0x40;
        for(i=0;i<7;i++)
        {
           for(j=0;j<8;j++)
           {
            write_1602com(temp+j);
            write_1602dat(num[k]);
            k++;
           }
           temp=temp+8;
        }
}

void lcd_init()//***液晶初始化函數(shù)****
{
        Lcd_ram();
        write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
        write_1602com(0x0c);//開(kāi)顯示不顯示光標(biāo)
        write_1602com(0x06);//整屏不移動(dòng),光標(biāo)自動(dòng)右移
        write_1602com(0x01);//清顯示

        write_1602com(0x80);//顯示固定符號(hào)從第一行第1個(gè)位置之后開(kāi)始顯示
        for(a=0;a<16;a++)
        {
                write_1602dat(tab1[a]);//向液晶屏寫(xiě)固定符號(hào)部分
        }
        write_1602com(0x80+0x40);//顯示固定符號(hào)寫(xiě)入位置,從第2個(gè)位置后開(kāi)始顯示
        for(a=0;a<16;a++)
        {
                write_1602dat(tab2[a]);//寫(xiě)顯示固定符號(hào)
        }
}
上面是前部分代碼 想請(qǐng)教自定義字符里的
uchar code num[]={
                                                0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//1         
                                                0x1f,0x01,0x01,0x1f,0x10,0x10,0x1f,0x00,//2
                                                0x1f,0x01,0x01,0x1f,0x01,0x01,0x1f,0x00,//3         
                                                0x11,0x11,0x11,0x1f,0x01,0x01,0x01,0x00,//4
                                                0x1f,0x10,0x10,0x1f,0x01,0x01,0x1f,0x00,//5         
                                                0x1f,0x10,0x10,0x1f,0x11,0x11,0x1f,0x00,//6
                                                0x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x00,//7        
};

void Lcd_ram()      
{
        uint i,j,k=0,temp=0x40;
        for(i=0;i<7;i++)
        {
           for(j=0;j<8;j++)
           {
            write_1602com(temp+j);
            write_1602dat(num[k]);
            k++;
           }
           temp=temp+8;
        }
}
是什么功能 那個(gè)備注1234567的是ds1302需要用到的嗎


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:97438 發(fā)表于 2017-12-27 16:28 | 只看該作者
uchar code num[],自定義圖形描點(diǎn)。void Lcd_ram()    將自定義圖形寫(xiě)入到1602的Ram中
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表