|
鍵盤使用說明:
1:按下 MODE 鍵,在鍵盤和旋鈕之間切換
鍵盤模式
1:按下 SET 鍵
2:按下 0--9.99之間的電壓值
3:按下 ENTER 鍵
旋鈕模式
1:調(diào)節(jié)可調(diào)電阻,電壓隨之改變
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei圖片_20210118154719.png (86.26 KB, 下載次數(shù): 90)
下載附件
2021-1-18 15:52 上傳
單片機(jī)源程序如下:
- #include <reg52.h>
- #include <string.h>
- #include <intrins.h>
- #include "global.h"
- #include "adcdac.h"
- sbit DACSCLK = P2^3;
- sbit DACCS = P2^4;
- sbit DACDIN = P2^5;
- sbit CS = P3^2;
- sbit CLK = P3^3;
- sbit DIO = P3^4;
- uchar Get_AD_Result(uchar ch)
- {
- uchar i,dat1=0,dat2=0;
- CS = 0;
- CLK = 0;
- DIO = 1; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0;
- DIO = 1; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0;
- if(ch)
- DIO = 1;
- else
- DIO = 0;
- _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0;
- DIO = 1; _nop_(); _nop_();
- for(i=0;i<8;i++)
- {
- CLK = 1; _nop_(); _nop_();
- CLK = 0; _nop_(); _nop_();
- if(DIO) dat1 |=0x80>>i;
- }
- for(i=0;i<8;i++)
- {
- if(DIO) dat2 |=0x01<<i;
- CLK = 1; _nop_(); _nop_();
- CLK = 0; _nop_(); _nop_();
- }
- CS = 1;
- if (dat1 == dat2)
- return dat1;
- else
- return 0x00;
- }
- void Set_DAC(uint dacvalue)
- {
- uchar i;
- uint dat;
- dat = dacvalue;
- dat &= 0x03ff;
- DACCS = 0;
- DACSCLK = 0;
- for(i=0;i<12;i++)
- {
- if(dat & 0x0200)
- DACDIN = 1;
- else
- DACDIN = 0;
- DACSCLK = 1;
- dat <<= 1;
- DACSCLK = 0;
- }
- DACCS = 1;
- }
復(fù)制代碼
51hei.png (8.26 KB, 下載次數(shù): 86)
下載附件
2021-1-18 21:55 上傳
全部資料51hei下載地址:
可調(diào)直流電源鍵盤輸入.zip
(144.19 KB, 下載次數(shù): 133)
2021-1-18 15:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|