|
键盘使用说明:
1:按下 MODE 键,在键盘和旋钮之间切换
键盘模式
1:按下 SET 键
2:按下 0--9.99之间的电压值
3:按下 ENTER 键
旋钮模式
1:调节可调电阻,电压随之改变
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #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;
- }
复制代码
全部资料51hei下载地址:
可调直流电源键盘输入.zip
(144.19 KB, 下载次数: 132)
|
评分
-
查看全部评分
|