資源描述:
《基于單片機(jī)的可調(diào)電壓設(shè)計(jì).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、#include"reg52.h"http://宏定義#defineucharunsignedchar#defineuintunsignedint//按鍵定義sbitKEY1=P2^0;sbitKEY2=P2^1;sbitKEY3=P2^2;sbitKEY4=P2^3;//數(shù)碼管定義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;//報(bào)警指示定義sbitbeep=P3^6;sbitDuan=P3^7;uintU;bitflag
2、=0;uinta=0;ucharcodetable[]={0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/};//共陽數(shù)碼管段碼表沒有小數(shù)點(diǎn)0~9voiddelay_ms(uintz)//延時(shí)函數(shù){uinta,b;for(a=z;a>0;a--)for(b=125;b>0;b--);}voidshuma(uintbuf){P0=table[buf%1000/100];W1=0;delay_ms(1);P0=0xff;W1=1;P0=
3、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;a>0;a--){DAT_5615=c>>15;c=c<<1;CLK_5615=1;CLK_5615=0;}CLK_5615=1;CLK_5615=0;CLK_5615=1;CLK_5615=0;CS
4、_5615=1;}//主函數(shù)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(U<120)U++;}}if(KEY2==0){delay_ms(5);if(KEY2==0){while(!KEY2);if(U>0)U--;}}if(KEY3==0){if(KEY3==0){U=50;}}if(KEY4==0){if(KEY4==0){U=0;}}}
5、if(Duan==0){delay_ms(10);if(Duan==0){flag=1;//過流標(biāo)志置高beep=0;U=0;tlc_5615(0);}else{beep=1;}}}}