发 帖  
原厂入驻New
[经验]

单片机控制DAC0832让LED亮灭

6 天前  119 单片机 LED
分享
3
  STC89C52单片机stc公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
  具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
  DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。adc0832与单片机连接会有怎么样的火花呢?透过单片机控制DAC0832让LED亮灭分析一下。
  单片机控制DAC0832让LED亮灭
  52控制DAC0832芯片输出电流,让发光二极管D12由灭均匀变到最亮,再有亮变灭,在最亮和最灭的时候蜂鸣器发出报警声,完成整个周期的时间是控制在5s左右。
  #include
  #define uchar unsigned char
  #define uint unsigned int
  sbit dula=P2^6;
  sbit wela=P2^7;
  sbit dawr=P3^6;
  sbit dacs=P3^2;
  sbit beep=P2^3;
  void delayms(uint xms)
  {
  uint i,j;
  for(i=xms;i》0;i--)
  for(j=110;j》0;j--);
  }
  void main()
  {
  uchar val,flag;
  dula=0;
  wela=0;
  dacs=0;
  dawr=0;
  P0=0;
  while(1)
  {
  if(flag==0)
  {
  val+=5;
  P0=val;
  if(val==255)
  {
  flag=1;
  beep=0;
  delayms(100);
  beep=1;
  }
  delayms(50);
  }
  else
  {
  val-=5;
  P0=val;
  if(val==0)
  {
  flag=0;
  beep=0;
  delayms(100);
  beep=1;
  }
  delayms(50);
  }
  }
  }
  使能D/A的片选,接着使能写入端。延时50ms,50*51=2551ms,忽略蜂鸣器占用的100ms,约为2.5s,另外半周期同样为2.5s,共计5s。

相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

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