|
這是我這個月做的單片機光照顯示電路
用了一個星期的時間
附件里包含源程序 原理圖 課程設計的要求
原理圖用proteus畫的
里面的放大電路不知道哪里用的上所以隨便添加了一個,放大倍數設成一倍
這只是個簡單的電路 適合剛做單片機課設的新手
0.png (36.53 KB, 下載次數: 69)
下載附件
2017-1-13 14:57 上傳
單片機源程序:
- #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();
- }
- }
復制代碼
0.png (50.15 KB, 下載次數: 64)
下載附件
2017-1-13 14:58 上傳
0.png (71.52 KB, 下載次數: 71)
下載附件
2017-1-13 14:58 上傳
所有資料下載:
原理圖及程序.zip
(155.66 KB, 下載次數: 69)
2017-1-13 11:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|