|
这是我这个月做的单片机光照显示电路
用了一个星期的时间
附件里包含源程序 原理图 课程设计的要求
原理图用proteus画的
里面的放大电路不知道哪里用的上所以随便添加了一个,放大倍数设成一倍
这只是个简单的电路 适合刚做单片机课设的新手
单片机源程序:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit st=P3^3;
- sbit eoc=P3^5;
- sbit OE=P3^4;
- sbit dian=P1^7;
- uchar code dt[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- uint data1,disi,disan,dier,diyi;
- /*********延时函数************/
- void delay(uint ms)
- {
- uint i,j;
- for(i=ms;i>0;i--)
- for(j=120;j>0;j--);
- }
-
- /*********AD转化函数************/
-
- void AD()
- {
- OE=0;
- st=0;
- delay(1);
- st=1;
- st=0;
- delay(5);// while(eoc==1);//等待转化完毕
- OE=1;//打开传送数据
- data1=P0;//数据送入P0口
- }
- /*********计算除法************/
- void chufa()
- {
- data1=data1*19.53125*2;
- disi=data1/1000;
- disan=data1%1000/100;
- dier=data1%1000%100/10;
- diyi=data1%1000%100%10;
- }
- /*********显示函数************/
- void xianshi()
- {
- P1=dt[disi];//整数部分
- P2=0x01;
- delay(1);
- P1=0xff;
- P1=dt[disan];//小数点后一位
- P2=0x02;
- delay(1);
- P1=0xff;
- P1=dt[dier];//小数点后两位
- dian=0;//打开小数点
- P2=0x04;
- delay(1);
- P1=0xff;
- P1=dt[diyi];//小数点后三位
- P2=0x08;
- delay(1);
- P1=0xff;
- }
- /*********主函数************/
- void main(void)
- {
- while(1)
- {
- AD();
- chufa();
- xianshi();
- }
- }
复制代码
所有资料下载:
原理图及程序.zip
(155.66 KB, 下载次数: 69)
|
|