#include <absacc.h>
#include <reg52.h>
/***********????********************************/
#define out P1
#define out1 P0
sbit dac_cs=P2^0;
sbit dac_wr=P2^1;
sbit dac_by=P2^2;
sbit dac_w2=P2^3;
#define uchar unsigned char
#define uint unsigned int
sbit S1 = P0^6;
sbit S2 = P0^7;
//00???;01??;10???;11???
unsigned int out_temp;
uchar code sin_tab[] = //??????
{
0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,
0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,
0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,
0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,
0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,
0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,
0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,
0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,
0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,
0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,
0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,
0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x7E
};
void Delay_MS(uint t);// delay
void stair(uint AMP);//???
void square(uint AMP, uchar THL,uchar TLL);//??
void trian(uint AMP);//???
void sin();//???
void scan();//????
void main()
{
while(1)
{
//????
//stair(200);
//square(200,10,10);
//trian(200);
//sin();
scan();//开关扫描
}
}
void scan()
{
if((0 == S1) &&(0 == S2))
stair(3000);//三角形 参数为 电压幅度
else if((1 == S1) && (0 == S2))
square(3000,20,20);//方波 参数为 幅度 高电平时间 低电时间
else if((0 == S1) && (1 == S2))
trian(3000);//梯形 参数为 电压幅度
else
sin();
}
void Delay_MS(uint n)
{
uint k;
for(n; n >0 ;n--)
for(k = 10; k > 0 ;k--);
}
void stair(uint AMP)//三角形
{
uint i;
for(i = AMP ;i >0; i--)
{
dac_by=1; //12位数据模式
out=i; //低8位
out1&=0xf0;//高4位
out1|=i/256;
dac_cs=0;
dac_wr=0;
dac_cs=1;
dac_wr=1;
}
}
void square(uint AMP, uchar THL, uchar TLL)//方波
{
dac_by=1;
out=4095-AMP;
out1&=0xf0;
out1|=(4095-AMP)/256;
dac_cs=0;
dac_wr=0;
dac_cs=1;
Delay_MS(THL);//低电平时间
out=255;
out1&=0xf0;
out1|=0x0f;
dac_cs=0;
dac_wr=0;
dac_cs=1;
dac_wr=1;
Delay_MS(TLL);//高电平时间
}
void trian(uint AMP)//梯形
{
uint i;
for(i = 4095 - AMP ;i < 4095; i++)
{
dac_by=1;
out=i;
out1&=0xf0;
out1|=i/256;
dac_cs=0;
dac_wr=0;
dac_cs=1;
dac_wr=1;
}
for(i-1 ;i>4095 - AMP; i--)
{
dac_by=0;
out=i;
out1&=0xf0;
out1|=i/256;
dac_cs=0;
dac_wr=0;
dac_cs=1;
dac_wr=1;
}
}
void sin()
{
uchar i;
for(i = 0; i < 255; i++)
{
dac_by=1;
out=sin_tab[i];
out_temp=(uint)sin_tab[i]*15;//放大15倍 变成12位的数据
out=out_temp;//低8位
out1&=0xf0;//高4位
out1|=out_temp/256;
dac_cs=0;
dac_wr=0;
dac_cs=1;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
51单片机 dac1210 三角波,矩形波,锯齿波,正弦波.zip (48个子文件)
51单片机 dac1210 三角波,矩形波,锯齿波,正弦波
PCS.lnp 54B
PCS1.build_log.htm 1KB
PCS1.__i 62B
PCS.plg 189B
Backup Of PCS.pdsbak 22KB
PCS1.LST 7KB
PCS.c 1KB
PCS.uvgui.zhangjinquan 69KB
PCS1 8KB
STARTUP.LST 14KB
PCS1.uvgui.zhangjinquan 69KB
Last Loaded PCS.pdsbak 22KB
PCS.uvproj 14KB
PCS.pdsprj.DESKTOP-O4BC62N.zhangjinquan.workspace 2KB
Objects
PCS1.build_log.htm 957B
PCS1.obj 7KB
PCS1 7KB
PCS1.lnp 115B
STARTUP.obj 819B
PCS1.hex 2KB
PCS1.plg 2KB
PCS1.uvgui.50544 89KB
PCS.M51 6KB
PCS1.lnp 41B
PCS.uvgui.50544 88KB
PCS 4KB
PCS1.OBJ 8KB
PCS.uvgui_zhangjinquan.bak 69KB
STARTUP.A51 6KB
PCS.build_log.htm 934B
PCS1.uvgui_zhangjinquan.bak 69KB
PCS.LST 3KB
Last Loaded PCS.fv8.21.pdsbak 22KB
Listings
PCS1.lst 7KB
STARTUP.lst 14KB
PCS1.m51 10KB
PCS1.c 4KB
PCS.__i 61B
PCS.pdsprj.DESKTOP-PP6R5OK.50544.workspace 2KB
PCS.OBJ 4KB
PCS1.uvproj 14KB
STARTUP.OBJ 749B
PCS.uvopt 5KB
PCS.pdsprj 22KB
PCS1.uvopt 5KB
PCS1.hex 2KB
PCS.hex 771B
PCS1.M51 10KB
共 48 条
- 1
持续行进中~
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android源码新基线代码更新的方法
- 1_二级程序设计题(34).rar
- 二级程序调试题(填空27+改错7).docx
- HM2314-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于深度学习的危险驾驶检测算法python源码+视频判断是否闭眼或者张开嘴哈欠和吸烟打电话等手势行为功能涵盖7类.zip
- Free-Fs 开源文件管理系统
- HM2314B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 毕业设计:Python高校学生学业预警系统(源码 + 数据库 + 说明文档)
- HM2312-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 毕业设计:Python的在线自主评测系统(源码 + 数据库 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0