经典常用的单片机c程序 - 深圳led背光源生产厂家,lcd显示屏,lcm液晶显示模块|模组厂-欧陆娱乐


  • 欧陆娱乐



  • 


  •  深圳市欧陆娱乐产品分类列表

    联系我们

    公司名称:深圳市欧陆娱乐光电有限公司
    厂址 :中国.广东省.深圳市宝安西乡臣田工业区

    营销专线
    吴先生 手机:13538278608
    胡先生 手机:13823360976
    固定电话:86-0755-28246146/
    28246906/28246536/28247229
    电话传真 :86-0755-89715671
    投诉与售后咨询 黄小姐:13823217679
    胡先生:13928021976

    Email:bly@sdgfj.net

    公司网址:https://www.sdgfj.net/

    经典常用的单片机c程序

    经典常用的单片机c程序

    //16进制<->10进制互换程序

    unsigned char d[10]; //用于显示的10位显示缓存

    //========================================================

    //16进制to10进制输出子程序:显示数据,起始位,结束位,有无小数点

    //========================================================

    void output(unsigned long dd,unsigned char s,unsigned char

    e,unsigned char DIP) {

    unsigned long div;

    unsigned char tm[8],i,j;

    div=10000000;

    for (i=0;i<8;i++) {

    tm[i]=dd/div;

    dd%=div;

    div/=10;

    }

    for (i=0;i<6;i++) {

    if (tm[i]!=0) break;

    tm[i]=nul;

    }

    tm[5]|=dip; //小数点控制,请看“串行LED数码管显示驱动程序”

    j=7;

    for (i=s;i d[i]=tm[j];

    j–;

    }

    }

    //把显示位5-9位的10进制数转换成为16进制数

    unsigned int input(void) {

    unsigned int dd,dat;

    dd=10000;dat=0;

    for (i=5;i<10;i++) {

    dat+=dd*temp;

    dd/=10;

    }

    return(dat);

    }

    /* 89C51系列CPU编程器接收CPU程序*/

    #i nclude

    #i nclude

    #i nclude

    #define e 8

    #define p 9

    #define l 10

    sbit led=P3^2;

    sbit p27=P2^7;

    sbit p26=P2^6;

    sbit p36=P3^6;

    sbit p37=P3^7;

    sbit rst=P3^3;

    sbit ale=P3^5;

    sbit vpp=P3^4;

    bit b_break;

    unsigned int adds;

    // 13.8mS

    void int_t0(void) interrupt 1 {

    TH0=-100;

    b_break=1;

    }

    void wait(unsigned char w) {

    unsigned int t=w*184;

    b_break=0;

    TL0=-t%256-1;TH0=-t/256;

    while (b_break==0) {}

    }

    void nop(void) {

    _nop_();_nop_();_nop_();_nop_();

    _nop_();_nop_();_nop_();_nop_();

    _nop_();_nop_();_nop_();_nop_();

    _nop_();_nop_();_nop_();_nop_();

    _nop_();_nop_();_nop_();_nop_();

    }

    unsigned char command(void) {

    TH0=-100;b_break=0;

    while (RI==0) {if (b_break==1) return(0);}

    RI=0;

    return(SBUF);

    }

    void earsure(unsigned char cpu) {

    switch (cpu) {

    case 1: //89C51

    case 2:rst=p26=1;p27=p36=p37=0;nop();vpp=1;nop();

    ale=0;wait(110);ale=1;nop();

    break;

    case 3:

    case 4:break;

    case 5:

    case 6:break;

    }

    }

    void program(unsigned char cpu) {

    unsigned int bdata adds=0;

    unsigned char d;

    switch (cpu) {

    case 1: //89C51

    case 2:

    p36=p37=1;rst=1;

    while (1) {

    TH0=-100;b_break=0;

    while (RI==0) {if (b_break==1) return;}

    RI=0;

    d=SBUF;

    //address

    P0=adds%256;

    P2=adds/256;

    p27=1;

    //data

    P1=d;

    nop(); //48clcl

    //vpp

    vpp=1;

    nop(); //48clcl

    //ale

    ale=0;

    wait(1);//100uS

    ale=1;

    nop(); //10uS

    vpp=0;

    nop(); //48clcl

    p27=0;

    nop(); //48clcl

    P1=0xff;

    TH0=-100;b_break=0;

    while (d!=P1) {if (b_break==1) return;} //data

    polling

    SBUF=d;

    adds++;

    }

    break;

    case 3:

    case 4:

    case 5:

    case 6:break;

    }

    }

    void LOCk(unsigned char cpu) {

    unsigned char i;

    switch (cpu) {

    case 1: //89c51

    case 2:

    //lock 1

    rst=p26=p36=p27=p37=1;nop();

    vpp=1;

    nop();

    ale=0;

    // for (i=0;i<6;i++) wait(100);

    wait(1);

    ale=1;

    nop();

    vpp=0;

    nop();

    //lock 2

    rst=p26=p27=1;p36=p37=0;nop();

    vpp=1;

    nop();

    ale=0;

    // for (i=0;i<6;i++) wait(100);

    wait(1);

    ale=1;

    nop();

    vpp=0;

    nop();

    //lock 3

    rst=p26=p36=1;p27=p37=0;nop();

    vpp=1;

    nop();

    ale=0;

    // for (i=0;i<6;i++) wait(100);

    wait(1);

    ale=1;

    nop();

    vpp=0;

    nop();

    break;

    case 3:

    case 4:

    case 5:

    case 6:break;

    }

    }

    void main(void) {

    unsigned char disp,flash,temp,cpu;

    EA=1;

    SCON=0xd8;PCON=0×80;

    TMOD=0×21;

    TL1=TH1=0xff;TR1=1;

    TH0=-100;ET0=TR0=1;

    flash=0×80;

    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实时时钟驱动程序

    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;

    }

    
    首 页 | 公司简介 | 企业荣誉 | 产品中心 | 新闻中心 | 联系我们 | 集团首页

    版权所有 深圳市欧陆娱乐光电有限公司     粤ICP备08129267号-1


  • XML地图