找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2786|回复: 0
打印 上一主题 下一主题
收起左侧

单片机波形发生器+Proteus仿真程序设计 正弦波、三角波、矩形波

[复制链接]
跳转到指定楼层
楼主
本设计可产生正弦波、三角波、矩形波。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)





单片机源程序如下:
  1. #include<reg51.h>
  2. #include<absacc.h>
  3. #define DAC0832 XBYTE[0x7fff]  
  4. sbit a=P3^0;
  5. sbit b=P3^1;
  6. sbit c=P3^2;
  7. sbit e=P3^3;

  8. unsigned char code juxing[64]={255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  9.                                                                                                 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  10.                                                                                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  11.                                                                                         };                                                
  12. unsigned char code sanjiao[64]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,
  13.                                                                                                 248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0,};


  14. void delay(unsigned int x)         
  15. {         
  16.         unsigned char i;
  17.         while(x--)
  18.         for(i=0;i<=140;i++);      
  19. }
  20. void square(void)               
  21. {  
  22.         unsigned char i;
  23.         for(i=0;i<64;i++)                           
  24.         DAC0832=juxing[i];
  25. /*        for(i=0;i<255;i++)
  26.         DAC0832=0xff;
  27.         */
  28. }
  29. void sanjiaobo()         
  30. {   
  31.         unsigned char i;
  32.         for(i=0;i<64;i++)
  33.         {   
  34.         DAC0832=sanjiao[i];
  35.         }
  36. //  for(i=255;i>0;i--)
  37. //        {
  38. //        DAC0832=i;
  39. //        }  
  40. }
  41. void juchibo()
  42. {
  43.         int i;
  44.         unsigned char code sin[64]={135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,
  45.                                                                                                                         254,253,251,247,243,237,230,222,213,204,193,182,170,158,146,133,
  46.                                                                                                                         121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,
  47.                                                                                                                         36,45,55,66,78,90,102,114,128
  48.                                     };//??????
  49.         for(i=0;i<64;i++)
  50.         {
  51.                 DAC0832=sin[i];
  52.         }

  53. }

  54. void main(void)
  55. {
  56.         e=0;  //???E1?????
  57.         while(1)
  58.         {
  59.                 switch(P1)
  60.                 {  
  61.                         case 0xfe:
  62.                                                                 delay(10);
  63.                                                                 while(P1==0XFF)
  64.                                                                 {square();}break;
  65.                         case 0xfd:
  66.                                         delay(10);
  67.                                                                 while(P1==0XFF)  
  68.                                                                 {sanjiaobo();} break;
  69.                         case 0xfb:
  70.                                         delay(10);
  71.                                                                 while(P1==0XFF)
  72.                                                           {juchibo();}break;
  73.                         default:break;   
  74.                 }
  75.         }
  76. }
复制代码
仿真程序51hei下载地址:
谐波发生器.zip (57.95 KB, 下载次数: 45)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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