數控直流電源0V~10V功能說明 (1)系統可調節(jié)直流穩(wěn)壓電源,調節(jié)范圍0V~10V; (2)步進調節(jié),每次0.1V; (3)數碼管顯示輸出的電壓; (4)設置了加,減和歸零按鍵
183950wt2gnd5ndcltwtlv.jpg (1.3 MB, 下載次數: 196)
下載附件
2016-5-25 13:07 上傳
0.png (27.77 KB, 下載次數: 179)
下載附件
2016-6-3 15:33 上傳
51單片機做的數控源仿真原理圖(仿真文件請下載本帖最后的51黑附件)
單片機數控源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint aa,b,bb;
- sbit p1=P2^7;
- sbit p2=P2^6;
- sbit p3=P2^5;
- sbit p4=P2^4;
- sbit dp=P0^7;
- sbit an1=P1^4;
- sbit an2=P1^5;
- sbit an3=P1^6;
- sbit CLK=P1^2;/*定義DAC控制端口*/
- sbit CS=P1^1;
- sbit DIN=P1^3;
- uchar code SegCode[12] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xc1};
- int moshi=0;
- void DelayMs(uchar n)
- {
- uchar j;
- while (n--)
- {
- for (j = 0; j < 113; j++);
- }
- }
- void keyscan1() /*復位*/
- {
- if(an1==0)
- { aa=0;
- bb=0;
-
- }
- while(an1==0);
- }
- void keyscan2() /*按鍵1進行加1*/
- {
- if(an2==0)
- {
- if(aa<100)
- {
- aa=aa+1;
- bb++;
- }
- }
- while(an2==0);
- }
- void keyscan3() /*按鍵2進行減1*/
- {
- if(an3==0)
- {
- if(aa>0)
- {
- aa=aa-1;
- bb--;
- }
- }
- while(an3==0);
- }
- /*顯示函數*/
- void display(void)
- { p1=0;p2=0;p3=0;p4=0;
- if(bb/100%10==0)
- P0=SegCode[10];
- else
- P0=SegCode[bb/100%10];
- p1=1;p2=0;p3=0;p4=0;
- DelayMs(3);
-
- p1=0;p2=0;p3=0;p4=0;
- P0=SegCode[bb/10%10];
- dp=0;
- p1=0;p2=1;p3=0;p4=0;
- DelayMs(3);
-
- p1=0;p2=0;p3=0;p4=0;
- P0=SegCode[bb%10];
- p1=0;p2=0;p3=1;p4=0;
- DelayMs(3);
- p1=0;p2=0;p3=0;p4=0;
- P0=SegCode[11];
- p1=0;p2=0;p3=0;p4=1;
- DelayMs(3);
- p1=0;p2=0;p3=0;p4=0;
- }
-
- void DA_Conver(unsigned int DAValue)
- {
- unsigned char i;
- DAValue <<= 6;
- CS = 0;
- CLK = 0;
-
- for(i = 0; i < 12; i++)
- {
- DIN = (bit)(DAValue & 0x8000);
- CLK = 1;
- DAValue <<= 1;
- CLK = 0;
- }
- CS = 1;
- CLK = 0;
- }
-
- float zh (float k)
- {
- float DA;
- DA=k*1024/500; /*2.5v參考電壓!*/
- return DA; }
- void init_timer()
- {
- TMOD=0x01;
- TH0=(65536-3500)/256;
- TL0=(65536-3500)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void main()
- {long DAValue=0;
- aa=0;
-
-
- init_timer();
- while(1)
- {
- DAValue=zh(aa); /*輸出電壓*/
- DA_Conver(DAValue);
- keyscan1();
- keyscan2();
- keyscan3();
-
- }
- }
-
- void time0() interrupt 1
- { TH0=(65536-3500)/256;
- TL0=(65536-3500)%256;
- b++ ;
- if(b==2)
- {b=0;
- display(); }
- }
復制代碼
全部資料下載:
程序設計.rar
(5.31 KB, 下載次數: 263)
2016-5-25 13:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
電路仿真.rar
(56.33 KB, 下載次數: 279)
2016-5-25 13:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|