找回密码
 注册会员
img_loading
智能检测中
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于ACC,CY的问题

[复制链接]
admin 发表于 2012-8-24 11:05:37 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
请问51单片机控制DAC8031:
CY = DO; //取数据SO
CY = ACC & 0x80; //存数据至ACC.0

这句话什么意思啊


整个程序是这个

#include <AT89X52.H>
#include <AT89X521.H>
#include <intrins.h>
#define uchar unsigned char
//#define _rlca_() CY = ACC & 0x80
uchar ADdata=0; // 输入电压数据
uchar disbuffer[6]; // 显示缓冲区
sbit CS=P1^0; // ADC片选端
sbit CLK=P1^1; // ADC时钟
sbit DO=P1^2; // ADC数据输出

void disdata() // 显示缓冲区数据处理
{
unsigned long j,k=500,l=255;
j=ADdata*k/l; // 显示数据标度变换
disbuffer[0]=10 ; // 前面3位数码管消隐
disbuffer[1]=10 ;
disbuffer[2]=10 ;
disbuffer[3]=j/100 ; // 拆分电压数据
disbuffer[4]=(j%100)/10 ;
disbuffer[5]=j%10 ;
}


void dt_display() // 显示程序
{
uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
uchar i,j, x=0x01;
disdata(); // 拆分数据至显示缓冲区
for (i=0;i<6;i++)
{
P2=0;
if (i!=3) P0=table[disbuffer[i]]; // 输出数据
else P0=table[disbuffer[i]]+0x80; // 输出数据与小数点
P2=x; x=_crol_(x,1); // 锁存数据,指向下一位
for (j=0;j<255;j++) ;
}
}

unsigned char AD_cont()
{
unsigned char i;
CLK=0;CS=0;_nop_();
for (i = 9; i > 0; i--) // 1个启动脉冲,8个输入数据
{
CLK = 1;
_nop_();_nop_(); //延时
CLK = 0; //下降沿启动或读入数据
CY = DO; //取数据SO
CY = ACC & 0x80; //存数据至ACC.0
}
CS=1;
return ACC;
}

void main()
{
while(1)
{
ADdata=AD_cont(); // 晶振:12MHz 时间常数计算
dt_display() ; // 显示
}
}
您需要登录后才可以回帖 登录 | 注册会员

*滑块验证:
img_loading
智能检测中
本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-6-19 11:57 , Processed in 0.056358 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表