找回密码
 立即注册

QQ登录

只需一步,快速开始

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

DAC0832+ADC0808+52单片机汇编与c语言仿真实验

[复制链接]
跳转到指定楼层
楼主
上课做的一个仿真,有电路图也有程序,可以实现三个功能的切换
第一个是ad,把模拟量变成数字量来显示
第二个是da,把数字量变成模拟量来表示,通过电机转速来实现
第三个是adda,先把模拟量变成数字量,然后再把数字量变成模拟量,通过双极性电机来表示出来
汇编的程序和C语言的程序都有,hex文件也有



单片机源程序如下:
  1. #include<reg52.h>
  2. sbit CLK=P3^1;
  3. sbit ST=P3^0;
  4. sbit EOC=P3^2;
  5. int a,b,c,d,sj=5000;

  6. void timer0() interrupt 1
  7. {
  8. CLK=~CLK;
  9. }

  10. void  choose() interrupt 2
  11. {a++;
  12. if(a==4)
  13.   a=1;
  14. }

  15. void gn1()
  16. {
  17. ST=0;
  18. ST=1;
  19. ST=0;
  20. while(!EOC);
  21. P2=0xff;
  22. b=P2;
  23. P1=b;
  24. }

  25. void gn2()
  26. { WR=0;
  27.   if(d==0)
  28.   {c++;
  29.    P0=c;
  30.    P1=c;
  31.    if(c==0xff)d=1;        
  32.    }
  33.   if(d==1)
  34.   {c--;
  35.    P0=c;
  36.    P1=c;
  37.    if(c==0x00)d=0;        
  38.    }
  39.          while(--sj);
  40.          sj=5000;
  41.                
  42. }

  43. void gn3()
  44. {WR=0;
  45. gn1();
  46. P0=b;
  47. }

  48. void main()
  49. {
  50. IE=0x82;
  51. IT1=1;
  52. EX1=1;
  53. EA=1;
  54. ET0=1;
  55. TR0=1;
  56. TMOD=0x02;
  57. TH0=0x14;
  58. TL0=0x00;
  59. TR0=1;
  60. a=0;
  61. d=0;      
  62. while(1)
  63. {switch(a)
  64. {case 1: gn1();continue;
  65.   case 2: gn2();continue;
  66.   case 3: gn3();continue;
  67.   default :  continue;        
  68.         }
  69. }
  70. }
复制代码


汇编语言源码:
  1. ORG 0000H
  2. LJMP START
  3. ORG 0013H
  4. LJMP ANJIAN
  5. ORG 1000H
  6. START:
  7.         SETB EA
  8.         SETB EX1
  9.         SETB IT1
  10.         MOV SP,#60H
  11.         MOV R0,#00H
  12. XUANZE:
  13.         CJNE R0,#01H,Z1
  14.         LJMP GN1
  15. Z1: CJNE R0,#02H,Z2
  16.         LJMP GN2
  17. Z2:        CJNE R0,#03H,Z3
  18.         LJMP GN3
  19. Z3: SJMP XUANZE
  20. ANJIAN:
  21.         CJNE R0,#03H,Z4
  22.         MOV R0,#00H
  23.         SETB P3.6
  24. Z4:        INC R0
  25.         RETI
  26. GN1:
  27.         SETB P3.0
  28.         CLR P3.0
  29. ZZ:        MOV SBUF,#00H         
  30.         JNB P3.2,ZZ  
  31.         MOV P2,#0FFH        
  32.         MOV A,P2
  33.         MOV P1,A
  34.         LJMP XUANZE
  35. GN2:
  36.         MOV A,#00H
  37. Z6:        CLR P3.6
  38.         MOV P0,A
  39.         MOV P1,A
  40.         INC A
  41.         LCALL DELAY
  42.         JNB P3.3,ZY
  43.         CJNE A,#0FFH,Z6        
  44. Z7:        MOV P0,A
  45.         MOV P1,A
  46.         DEC A
  47.         LCALL DELAY
  48.         JNB P3.3,ZY
  49.         CJNE A,#00H,Z7               
  50. ZY:        LJMP XUANZE
  51. GN3:
  52.         MOV P1,#00H
  53.         SETB P3.0
  54.         CLR P3.0
  55. Z5:        MOV SBUF,#0FFH         
  56.         JNB P3.2,Z5
  57.         MOV P2,#0FFH        
  58.         MOV A,P2
  59.         MOV P0,A
  60.         LJMP XUANZE

  61. DELAY:
  62.     MOV R6,#12
  63. D1: MOV R5,#20
  64. D2: MOV R4,#50
  65. D3: DJNZ R4,D3
  66.     DJNZ R5,D2
  67.     DJNZ R6,D1
  68.         RET
  69. END
复制代码


所有资料51hei提供下载:
adda.zip (32.88 KB, 下载次数: 81)




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

使用道具 举报

沙发
ID:448519 发表于 2019-11-26 17:35 | 只看该作者
感谢分享,资料有救想哭
回复

使用道具 举报

板凳
ID:799428 发表于 2020-7-8 23:33 | 只看该作者
PROTEUS图呢?
回复

使用道具 举报

地板
ID:495287 发表于 2020-7-9 07:58 | 只看该作者
数模互换功能全,
应用广泛亦方便,
测试电路照图画,
一边动手一边玩。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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