?? 0832-02.c
字號:
#include <reg51.h>
#include <stdio.h>
#define DAC0832Addr0 0XFEFF //0832地址1
#define DAC0832Addr1 0XFFFF //0832地址2
#define DAC0832Addr 0X7FFF //0832地址
#define uchar unsigned char //單個字節無符號數
#define uint unsigned int // 輸出口初始化
//sbit P10=P1^0; //默認值為0
//sbit P12=P1^2;
void TransformData1 ( uchar c0832data1)//轉換數據
{
*((uchar xdata *)DAC0832Addr0)=c0832data1; //向0832輸出待轉換數字量c0832data
/* 在C語言中 訪問外部寄存器時要先進行類型轉換。用(uchar xdata *)轉化位指針型數據,再間接尋址*/
}
void TransformData2 ( uchar c0832data2)//轉換數據
{
*((uchar xdata *)DAC0832Addr1)=c0832data2; //向0832輸出待轉換數字量c0832data
/* 在C語言中 訪問外部寄存器時要先進行類型轉換。用(uchar xdata *)轉化位指針型數據,再間接尋址*/
}
void StartTransform( uchar c0832data)//轉換數據
{
*((uchar xdata *)DAC0832Addr)=c0832data; //向0832輸出待轉換數字量c0832data
/* 在C語言中 訪問外部寄存器時要先進行類型轉換。用(uchar xdata *)轉化位指針型數據,再間接尋址*/
}
// void TransformData1 ( uint DAC0832,uchar c0832data1)//轉換數據
// {
// *((uchar xdata *)DAC0832)=c0832data1; //向0832輸出待轉換數字量c0832data
/* 在C語言中 訪問外部寄存器時要先進行類型轉換。用(uchar xdata *)轉化位指針型數據,再間接尋址*/
// }
void Delay ()
{
uint i;
for (i=0; i<200;i++);
}
main ()
{
// uchar cDigtial;
P0=0xff; //端口初始化,其實不用 上電后自動置高
P1=0xff; //端口初始化,其實不用 上電后自動置高
P1=0xff; //端口初始化,其實不用 上電后自動置高
P3=0xff; //端口初始化,其實不用 上電后自動置高
Delay();
//TransformData1(0XFEFF ,0XE0); //進行數模轉換
// TransformData1(0X7FFF ,0XE0);
// Delay () ;
TransformData2(0X20); //進行數模轉換
StartTransform(0x20) ;
Delay () ;
// printf("increment\n") ; //調試輸出信息
} //可以用一個函數來實現數模的轉換,關鍵事把參數改成UINT才可以,不然選通不了。0X7FFF為2字節..
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -