标题: 单片机+DAC0832三角波的产生和输出程序与Proteus仿真 [打印本页]

作者: cangyuan    时间: 2021-7-19 14:55
标题: 单片机+DAC0832三角波的产生和输出程序与Proteus仿真
       本实验介绍三角波的产生和输出。并且可以通过本次实验加深定时器的应用。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include "reg51.h"
  2. #define u8 unsigned char
  3. u8 i=0;
  4. bit up=1;//up=1向上,0向下
  5. void delay(long d){while(d--);}
  6. //三角波    改成  正弦波
  7. void T0_init(void)
  8. {
  9.     TMOD = 0x01;
  10.     TH0 = 0x0FC;
  11.     TL0 = 0x18;
  12.     EA = 1;
  13.     ET0 = 1;
  14.     TR0 = 1;
  15. }

  16. void main (void)
  17. {
  18.         u8 k=0;
  19.         T0_init();
  20.         while(1)
  21.         {
  22.                 P1=k++;
  23.                 delay(10000);
  24.         }
  25. }

  26. void Timer0Interrupt(void) interrupt 1//1ms
  27. {
  28.     TH0 = 0x0FC;
  29.     TL0 = 0x18;
  30.        
  31.                 if(up==1)
  32.                 {
  33.                         P2=i++;
  34.                         if(i==255)up=0;
  35.                 }
  36.                 else
  37.                 {
  38.                         P2=i--;
  39.                         if(i==0)up=1;
  40.                 }
  41. }
复制代码

所有资料51hei提供下载:
定时器三角波.7z (99.93 KB, 下载次数: 26)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1