第九讲——总线应用(DAC0832)

总线具有很多优势,例如可以挂很多外围的器件,比如DAC,ADC等等芯片。另外一个
优点就是很多外围器件就是为单片机总线结构设计的,比如8279这样的键盘,数码管驱
动芯片。总线操作简单,或者说很简单——再简单不过了。

下面以DAC0832为例讲述总线的基本操作方式,代码如下:

#include<reg52.h>
#include<absacc.h>  //用于XBYTE,外围器件寻址

#define DAC0832 XBYTE[0x0100]    //DAC0832地址
#define INTERRUPT_EXTERNAL_0 0   //外部中断0向量号

typedef unsigned int uint;
void Delay_Nms(uint N);

void main()
{
    unsigned char vol = 0xFF;
    EX0 = 1;
    IT0 = 1;    //外部中断使能,低电平触发

    EA = 1;        //开全局中断
    while(1)
    {
        DAC0832 = vol;  //转换
        P1 = vol;        //LED同时显示当前电压的二进制代码
        vol >>= 1;      //电压减半
        if(vol == 0x00) vol = 0xFF; //为0时电压恢复到最大值
        Delay_Nms(1000);//为观察仿真效果,延时1秒
    }        
}

void Hardware_Delay_1ms(void)
{
   TMOD &=0xF0;
   TMOD |=0x01;

   TH0 = 0xFC;
   TL0 =0x18;
  
   TF0=0;
   TR0=1;
   while(TF0==0);
   TR0=0;
}

void Delay_Nms(uint n)      //延时n毫秒函数,采用硬件定时器实现
{
    uint i;
    for(i=0;i<n;i++)
    Hardware_Delay_1ms();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岛上码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值