找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6770|回复: 2
收起左侧

单片机产生方波 三角波 锯齿波 梯形波ADC0832程序及仿真

[复制链接]
ID:137190 发表于 2016-9-25 15:11 | 显示全部楼层 |阅读模式
0.png 0.png
51单片机利用ADC0832芯片产生方波 三角波 锯齿波 梯形波的简单仿真,全部资料下载:
信号发生器.rar (95.26 KB, 下载次数: 66)


源程序:
  1. #include<reg51.h>
  2. sbit S1=P1^3;
  3. sbit S2=P1^2;
  4. sbit S3=P1^1;
  5. sbit S4=P1^0;  
  6. #define uchar unsigned char
  7. #define uint unsigned int  
  8. #define DAdata P0
  9. uchar keyval;

  10. void delay(unsigned char i)
  11. {
  12. TR0=1;
  13. for( ;i>0;i--)
  14. {
  15.   while (!TF0);
  16.   TF0=0;
  17.   TH0=0Xec;
  18.   TL0=0X78;
  19. }
  20. TR0=0;
  21. }  

  22. void square()
  23. {
  24. DAdata=0xff;
  25. delay(100);
  26. DAdata=0x00;  
  27. delay(100);
  28. }  
  29. void jieti(void)
  30. {
  31. DAdata=0x00;
  32. delay(1);  
  33. DAdata=0x3f;
  34. delay(1);
  35. DAdata=0x7f;
  36. delay(1);
  37. DAdata=0xaf;
  38. delay(1);
  39. DAdata=0xff;  
  40. delay(1);
  41. }
  42.   
  43. void saw(void)
  44. {
  45. int i;
  46. for(i=0;i<255;i++)
  47. DAdata=i;
  48. }
  49.   
  50. void sanjiao()
  51. {
  52. int i;
  53. for(i=0;i<255;i++)
  54. DAdata=i;  
  55. for(i=255;i>0;i--)
  56. DAdata=i;
  57. }

  58. void key(void)
  59. {
  60. if((P1&0x0f)!=0x0f)     
  61.          delay(1);           
  62.       if((P1&0x0f)!=0x0f)
  63.           {
  64.            if(S1==0)
  65.              keyval=1;
  66.            if(S2==0)
  67.              keyval=2;
  68.            if(S3==0)
  69.              keyval=3;
  70.            if(S4==0)
  71.              keyval=4;
  72.           }
  73. }

  74.   
  75. void main()
  76. {
  77. keyval=0;
  78. while(1)  
  79. {
  80. key();
  81.   switch(keyval)
  82.    {
  83.            case 1 : square();
  84.                  break;
  85.            case 2 : saw();
  86.                  break;
  87.         case 3 : sanjiao();
  88.                  break;
  89.         case 4 : jieti();
  90.                  break;
  91.    }  
  92. }
  93. }
复制代码




回复

使用道具 举报

ID:288253 发表于 2018-3-13 16:40 | 显示全部楼层
如果要插入频率和占空比的调整,请问该如何编码呢
回复

使用道具 举报

ID:291647 发表于 2018-3-15 09:30 | 显示全部楼层
资料很好,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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