- 9
- 0
- 约1.26千字
- 约 4页
- 2018-03-08 发布于河南
- 举报
使用DAC0832调电压
使用dac0832调出0-5v原理图如下:程序如下:#includereg52.h#define uchar unsigned char#define uint unsigned intsbit step_add10=P1^0;sbit step_reduce10=P1^1;sbit step_add1=P1^2;sbit step_reduce1=P1^3;sbit wei1=P1^4;sbit wei2=P1^5;sbit wei3=P1^6;sbit wei4=P1^7;void delay(uint num);void scan();void display();uchar table1[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };int num1=0;void main (){while(1){ display(); scan();}}void scan(){if(step_add10==0){delay(5);if(step_add10==0){ num1+=10; if(num1255)num1=255;}while(step_add10==0);}if(step_reduce10==0){delay(5);if(step_reduce10==0){ num1-=10; if(num10)num1=0;}while(step_reduce10==0);}if(step_add1==0){delay(5);if(step_add1==0){ num1+=1; if(num1255)num1=255;}while(step_add1==0);}if(step_reduce1==0){delay(5);if(step_reduce1==0){ num1-=1; if(num10)num1=0;}while(step_reduce1==0);}}void display(){int count=0;int qian=0,bai=0,shi=0,ge=0;count=20*num1; qian=count/1000; bai=count%1000/100; shi=count%100/10; ge=count%10; P2=num1;wei2=1;wei3=1;wei4=1;wei1=0 ;P0=table1[qian];delay(2);wei1=1 ;wei3=1;wei4=1;wei2=0;P0=table1[bai];delay(2);wei1=1 ;wei2=1;wei4=1;wei3=0;P0=table1[shi];delay(2);wei1=1 ;wei2=1;wei3=1;wei4=0;P0=table1[ge];delay(2);}void delay(uint num){ uint i; while(num--)for (i=125;i0;i--);}
原创力文档

文档评论(0)