新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 16進制與10進制轉化程序

        16進制與10進制轉化程序

        作者: 時間:2012-08-12 來源:網絡 收藏

        while (1) {
        temp=command();
        switch (temp) {
        case 0:
        case 1: //89c51
        case 2: //89C52
        case 3: //80f51
        case 4: //80F52
        case 5: //87F51
        case 6:cpu=temp;SBUF=temp;break;//87f52
        case e:SBUF=temp;earsure(cpu);break; //erasure
        case p:SBUF=temp;program(cpu);break; //program
        case l:lock(cpu);SBUF=temp;break; //lock
        default:SBUF=temp;break;
        }
        b_break=0;
        if ((++disp)>flash) {disp=0;led=!led;}
        }
        }
        //HT1380實時時鐘驅動

        本文引用地址:http://www.104case.com/article/171053.htm

        sbit clock_dat=P0^1;
        sbit clock_clk=P0^2;
        sbit clock_rst=P0^3;

        sbit a0=ACC^0;
        sbit a1=ACC^1;
        sbit a2=ACC^2;
        sbit a3=ACC^3;
        sbit a4=ACC^4;
        sbit a5=ACC^5;
        sbit a6=ACC^6;
        sbit a7=ACC^7;

        void clock_out(unsigned char dd) {
        ACC=dd;
        clock_dat=a0;clock_clk=1;clock_clk=0;
        clock_dat=a1;clock_clk=1;clock_clk=0;
        clock_dat=a2;clock_clk=1;clock_clk=0;
        clock_dat=a3;clock_clk=1;clock_clk=0;
        clock_dat=a4;clock_clk=1;clock_clk=0;
        clock_dat=a5;clock_clk=1;clock_clk=0;
        clock_dat=a6;clock_clk=1;clock_clk=0;
        clock_dat=a7;clock_clk=1;clock_clk=0;
        }
        unsigned char clock_in(void) {
        clock_dat=1;
        a0=clock_dat;
        clock_clk=1;clock_clk=0;a1=clock_dat;
        clock_clk=1;clock_clk=0;a2=clock_dat;
        clock_clk=1;clock_clk=0;a3=clock_dat;
        clock_clk=1;clock_clk=0;a4=clock_dat;
        clock_clk=1;clock_clk=0;a5=clock_dat;
        clock_clk=1;clock_clk=0;a6=clock_dat;
        clock_clk=1;clock_clk=0;a7=clock_dat;
        return(ACC);
        }
        unsigned char read_clock(unsigned char ord) {
        unsigned char dd=0;
        clock_clk=0;
        clock_rst=0;
        clock_rst=1;
        clock_out(ord);
        dd=clock_in();
        clock_rst=0;
        clock_clk=1;
        return(dd);
        }
        void write_clock(unsigned char ord,unsigned char dd) {
        clock_clk=0;
        clock_rst=0;
        clock_rst=1;
        clock_out(ord);
        clock_out(dd);
        clock_rst=0;
        clock_clk=1;
        }
        /*單個漢字庫字摸提取,tc2.0編譯*/
        #i nclude stdio.h
        #i nclude dos.h
        #i nclude process.h
        #i nclude string.h


        void main(void) {
        long int num_bytes,qm,wm;
        unsigned char d,i,j,k,a[132],b[132];
        unsigned char * data;
        unsigned char * hz;
        static unsigned char dd[103];
        FILE *fp;

        if ((fp=fopen(hzk16f,rb))==NULL) {
        printf(can't open hzk16n);
        exit(1);
        }
        clrscr();
        while (1) {

        data=(unsigned char *) malloc(33);
        printf(please input:n);
        scanf(%s,dd); /*輸入一個漢字*/

        qm=* dd; /*通過區位碼計算其在hzk16f文件中的偏移地址*/
        qm=qm-161;
        if (qm>87) exit(0);
        wm=* (dd+1);
        wm=wm-161;
        if (wm>94) exit(0);
        num_bytes=((long)qm*94+wm)*32;
        fseek(fp,num_bytes,SEEK_SET);
        fgets(data,33,fp);
        for (i=0;i32;i++) b[i]=* data++;
        for (i=0;i32;i+=2) a[i/2]=b[i];
        for (i=0;i32;i+=2) a[i/2+16]=b[i+1];
        for (i=8;i16;i++) b[i]=a[i];
        for (i=8;i16;i++) a[i]=a[i+8];
        for (i=8;i16;i++) a[i+8]=b[i];

        /*轉換,hzf16f在電腦的儲存格式是以行為字節計算的,一般的lcd都采用以列為字節計算*/
        for (k=0;k32;k+=8) {
        for (j=0;j8;j++) {
        d=0;
        for (i=0;i8;i++) {
        if (a[i+k]>=0x80) {
        switch (i) {
        case 0:d+=1;break;
        case 1:d+=2;break;
        case 2:d+=4;break;
        case 3:d+=8;break;
        case 4:d+=0x10;break;
        case 5:d+=0x20;break;
        case 6:d+=0x40;break;
        case 7:d+=0x80;break;
        }
        }
        }
        for (i=0;i8;i++) a[i+k]=1;
        b[j+k]=d;
        }
        }
        clrscr();
        printf(/*%s:*/n,dd); /*輸出0x00格式的16數*/
        for (k=0;k32;k+=8) {
        for (j=0;j8;j++) printf(0x%x,,b[j+k]);
        printf(n);
        }
        getch();
        }
        }
        //按鍵掃描驅動

        unsigned char key,key_h,kpush;
        unsigned int key_l;

        //按鍵連接到p1.0、p1.1、p1.2

        void int_t0(void) interrupt 1 {
        unsigned char dd,i;
        TL0=TL0+30;TH0=0xfb; //800
        /* 按鍵判別 */
        if ((P10x7)==0x7) {
        if ((key_l>30)(key_l800)(key_h>30)) {
        //釋放按鍵,如果之前按鍵時間少于1秒,讀入鍵值
        key=kpush;
        }
        if ((++key_h)>200) key_h=200;
        key_l=0;
        if (key>=0x80) key=0;
        //如果之前的按鍵為長按1秒,清除鍵值
        } else {
        kpush=P10x7;
        key_l++;
        if ((key_l>800)(key_h>30)) {
        //如果按鍵超過1秒,鍵值加0x80標志長按鍵
        key=kpush|0x80;
        key_h=0;
        key_l=0;
        }
        }
        }
        void main(void) {
        TMOD=0x1;TR0=1;ET0=1;EA=1;
        while (1) {
        while (!key) {}
        switch (key) {
        case 1:break;
        case 2:break;
        }
        }
        //串行驅動led顯示,
        //一個74hc595位移寄存器驅動三極管驅動led位,
        //兩個74hc595驅動led段,方式位5位x8段x2=10個數碼管
        //5分頻,每次掃描時間位1.25ms


        //定義特殊符號

        #define nul 0xf
        #define qc 0xc
        #define qb 0xb
        #define q_ 0xa
        #define q__ 0xd
        #define q___ 0xe
        #define qp 0x10
        #define qe 0x11
        #define qj 0x12
        #define qn 0x13
        #define qf 0x14
        #define qa 0x15
        #define qr 0x16
        #define qd 0x17
        #define qu 0x18
        #define ql 0x19
        #define qh 0x1a
        #define qwen 0x1b
        #define qt 0x1c
        #define qla 0x1d
        #define qlb 0x1e
        #define qlc 0x1f
        #define qld 0x20
        #define qle 0x21
        #define qlf 0x22
        #define qlg 0x23
        #define qldp 0x24



        關鍵詞: 進制 程序 轉化

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西昌市| 安义县| 虹口区| 乐山市| 连州市| 绥滨县| 永顺县| 同心县| 大港区| 青川县| 灵武市| 贡觉县| 巴里| 石林| 常山县| 岢岚县| 山阴县| 会宁县| 喜德县| 峡江县| 马关县| 临湘市| 宝清县| 扶风县| 宁化县| 阿荣旗| 九寨沟县| 婺源县| 甘谷县| 郑州市| 明星| 海安县| 潞西市| 满城县| 莆田市| 上林县| 曲水县| 波密县| 霍城县| 平定县| 阿拉善右旗|