call517.c

来自「单片机C语言教程」· C语言 代码 · 共 45 行

C
45
字号
/****************************************************************/
/* 这是调用MAX517的汇编程序(MAX517.ASM)的C51程序。            */
/* 文件名CALL517.C。                                            */
/* 功能:本程序是通过调用汇编语言程序实现MAX517芯片的D/A转换。  */
/*    本程序中转换的十六进制值依次为10H,20H,40H,80H,0FFH,00H,   */
/*    OUT脚输出转换后的模拟信号,它既可用万用表的直流电压档测试 */
/*    ,也可用示波器的探头点在此处观察。                        */
/****************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

void delay1(uint x);
extern  uchar chai;            //把全局变量chai声明为外部变量
extern  uchar a_func(uchar);   //把a_func 声明为外部函数
uchar i;

void delay1(uint x)           //延时程序
{
 uchar tw;
 while (x-->0){
 for (tw=0;tw<125;tw++){;}
 }
}

void main()                   //主程序
{
      SP=0xcf;
      delay1(1000);
      EA=0;
      chai=a_func(0x10);    // 将十六进制值0x10送MAX517芯片作D/A转换
      delay1(1000);         // 延时
      chai=a_func(0x20);    // 将十六进制值0x20送MAX517芯片作D/A转换
      delay1(1000);         // 延时
      chai=a_func(0x40);    // 将十六进制值0x40送MAX517芯片作D/A转换
      delay1(1000);         // 延时
      chai=a_func(0x80);    // 将十六进制值0x80送MAX517芯片作D/A转换
      delay1(1000);         // 延时
      chai=a_func(0xff);    // 将十六进制值0xff送MAX517芯片作D/A转换
      delay1(1000);         // 延时 
      chai=a_func(0x00);    // 将十六进制值0x00送MAX517芯片作D/A转换
      delay1(1000);         // 延时    
      while(1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?