您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于单片机的可调电压设计
#includereg52.h//宏定义#defineucharunsignedchar#defineuintunsignedint//按键定义sbitKEY1=P2^0;sbitKEY2=P2^1;sbitKEY3=P2^2;sbitKEY4=P2^3;//数码管定义sbitW1=P2^4;sbitW2=P2^5;sbitW3=P2^6;sbitW4=P2^7;//DAC定义sbitCS_5615=P3^2;sbitCLK_5615=P3^3;sbitDAT_5615=P3^4;//报警指示定义sbitbeep=P3^6;sbitDuan=P3^7;uintU;bitflag=0;uinta=0;ucharcodetable[]={0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/};//共阳数码管段码表没有小数点0~9voiddelay_ms(uintz)//延时函数{uinta,b;for(a=z;a0;a--)for(b=125;b0;b--);}voidshuma(uintbuf){P0=table[buf%1000/100];W1=0;delay_ms(1);P0=0xff;W1=1;P0=table[buf%100/10]&0x7f;W2=0;delay_ms(1);P0=0xff;W2=1;P0=table[buf%10];W3=0;delay_ms(1);P0=0xff;W3=1;P0=0xC1;W4=0;delay_ms(1);P0=0xff;W4=1;}voidtlc_5615(uintbuf){uinta,c;c=buf;CS_5615=0;for(a=16;a0;a--){DAT_5615=c15;c=c1;CLK_5615=1;CLK_5615=0;}CLK_5615=1;CLK_5615=0;CLK_5615=1;CLK_5615=0;CS_5615=1;}//主函数voidmain(void){U=0;beep=0;delay_ms(300);beep=1;while(1){tlc_5615(U*10);shuma(U);if(flag==0){if(KEY1==0){delay_ms(5);if(KEY1==0){while(!KEY1);if(U120)U++;}}if(KEY2==0){delay_ms(5);if(KEY2==0){while(!KEY2);if(U0)U--;}}if(KEY3==0){if(KEY3==0){U=50;}}if(KEY4==0){if(KEY4==0){U=0;}}}if(Duan==0){delay_ms(10);if(Duan==0){flag=1;//过流标志置高beep=0;U=0;tlc_5615(0);}else{beep=1;}}}}
本文标题:基于单片机的可调电压设计
链接地址:https://www.777doc.com/doc-5007580 .html