光敏強度來控制路燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
5646.PNG (100.37 KB, 下載次數: 31)
下載附件
仿真圖
2019-3-18 17:02 上傳
0.png (8.49 KB, 下載次數: 29)
下載附件
2019-3-18 22:18 上傳
源代碼如下:
- #include <reg51.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- //共陽極/*0,1,2,3,4,5,6,7,8,9,A,b,C,*/
- uchar code SEG7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6};
- //顯示緩沖
- uchar num[]={0,0,0,0,0,0};
- //位碼定義
- sbit q2=P2^1;
- sbit q1=P2^0;
- //按鍵
- sbit key1=P2^3;
- //燈
- sbit led0=P3^6;
- sbit led1=P3^7;
- sbit led2=P1^0;
- sbit led3=P1^1;
- sbit led4=P1^2;
- sbit led5=P1^3;
- sbit led6=P1^4;
- sbit led7=P1^5;
- sbit led8=P1^6;
- sbit led9=P1^7;
- uchar pep=0;
- sbit Clk= P2^4;
- sbit DATI=P2^6;
- sbit DATO= P2^6;
- sbit CS= P2^5;
- uint dat = 0x00; //AD值
- //AD轉換子程序
- uint adc0832(unsigned char CH)
- {
- uchar i,test,adval;
- adval = 0x00;
- test = 0x00;
- //初始化
- Clk = 0;
- DATI = 1;
- _nop_(); _nop_();
- CS = 0;
- _nop_();
- Clk = 1;
- _nop_(); _nop_();
- //通道選擇
- if(CH == 0x00)
- {
- Clk = 0;
- DATI = 1; //通道0的第一位
- _nop_();
- Clk = 1;
- _nop_(); _nop_();
- Clk = 0;
- DATI = 0; //通道0的第二位
- _nop_(); _nop_();
- Clk = 1;
- _nop_();
- }
- else
- {
- Clk = 0;
- DATI = 1; //通道1的第一位
- _nop_(); _nop_();
- Clk = 1;
- _nop_(); _nop_();
- Clk = 0;
- DATI = 1; //通道1的第二位
- _nop_();
- Clk = 1;
- _nop_();
- }
- Clk = 0; _nop_();
- DATI = 1;
- for( i = 0;i < 8;i++ ) //讀取前8位的值
- {
- _nop_();
- adval <<= 1;
- Clk = 1;
- _nop_(); _nop_();
- Clk = 0; _nop_();
- if (DATO)
- adval |= 0x01;
- else
- adval |= 0x00;
- }
- for (i = 0; i < 8; i++) //讀取后8位的值
- {
- test >>= 1;
- if (DATO)
- test |= 0x80;
- else
- test |= 0x00;
- _nop_();
- Clk = 1;
- _nop_(); _nop_();
- Clk = 0; _nop_();
- }
- 限于篇幅請下載附件,附件可直接仿真
復制代碼
全部資料51hei下載地址:
光敏強度控制路燈.zip
(67.8 KB, 下載次數: 173)
2019-3-18 17:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|