单片机控制DAC0832输出正弦波三角波汇编程序_第1页
单片机控制DAC0832输出正弦波三角波汇编程序_第2页
单片机控制DAC0832输出正弦波三角波汇编程序_第3页
单片机控制DAC0832输出正弦波三角波汇编程序_第4页
单片机控制DAC0832输出正弦波三角波汇编程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机控制DAC0832输出正弦波三角波汇编程序org 0000hLJMP MAINORG 0003HLJMP L0MAIN:MOV R2,#0aH ;调幅倍数 MOV R4,#01H ;增减选择 MOV R5,#01H pp: SETB EA SETB EX0 ;延时计数个数 MOV A,#0FFH ;读取波形状态 MOV P1,A MOV A,P1 JNB ACC.0,ZXB ;P1.0=0 则选择正弦波 JNB ACC.1,SJB ;P1.1=0 则选择三角波 JNB ACC.2,FB ;P1.2=0 则选择方 波 AJMP PP ZXB:MOV R1,#00HLOOP1:MOV A,R1 MOV DPTR,#TABLE1 ;读取正弦波数据首地址 MOVC A,A+DPTR ;去表格数据 MOV B,R2 MUL AB ;幅度大小 INC R1 XCH A,R1 CLR C SUBB A,#0AH ;是否已采样半个周期 JNC LK1 ;C=0跳转,即R1大于0A,以采样半个周期以上 ADD A,#0AH XCH A,R1 ;还原R1 ADD A,#80H ;8OH为零点,取得正的幅度值 AJMP LK0 LK1:ADD A,#0AH XCH A,R1 MOV R3,A MOV A,#80H CLR C SUBB A,R3 ;80H为零点,取得负的幅度值 LK0:MOV DPTR,#8000H ;送DA转换入口地址 MOVX DPTR,A MOV A,R5 KD:DEC R5 ;调用延时 CALL DELAY CJNE R5,#00H,KD MOV R5,A CJNE R1,#12H,LOOP1 LJMP PP FB:MOV R1,#00HLOOP2:MOV A,R1 MOV DPTR,#TABLE2 ;读取方波数据首地址 MOVC A,A+DPTR ;去表格数据 MOV B,R2 MUL AB ;幅度大小 INC R1 XCH A,R1 CLR C SUBB A,#0AH ;是否已采样半个周期 JNC LK3 ;C=0跳转,即R1大于0A,以采样半个周期以上 ADD A,#0AH XCH A,R1 ;还原R1 ADD A,#80H ;8OH为零点,取得正的幅度值 AJMP LK2 LK3:ADD A,#0AH XCH A,R1 MOV R3,A MOV A,#80H CLR C SUBB A,R3 ;80H为零点,取得负的幅度值 LK2:MOV DPTR,#8000H ;送DA转换入口地址 MOVX DPTR,A MOV A,R5 KD0:DEC R5 ;调用延时 CALL DELAY CJNE R5,#00H,KD0 MOV R5,A CJNE R1,#12H,LOOP2 LJMP PP SJB:MOV R1,#00HLOOP3:MOV A,R1 MOV DPTR,#TABLE3 ;读取三角波波数据首地址 MOVC A,A+DPTR ;去表格数据 MOV B,R2 MUL AB ;幅度大小 INC R1 XCH A,R1 CLR C SUBB A,#0DH ;是否已采样半个周期 JNC LK5 ;C=0跳转,即R1大于D,以采样半个周期以上 ADD A,#0DH XCH A,R1 ;还原R1 ADD A,#80H ;8OH为零点,取得正的幅度值 AJMP LK4 LK5:ADD A,#0DH XCH A,R1 MOV R3,A MOV A,#80H CLR C SUBB A,R3 ;80H为零点,取得负的幅度值 LK4:MOV DPTR,#8000H ;送DA转换入口地址 MOVX DPTR,A KD1:MOV A,R5 DEC R5 ;调用延时 CALL DELAY CJNE R5,#00H,KD1 MOV R5,A CJNE R1,#18H,LOOP3 LJMP PP DELAY:NOP RET L0:CLR EA PUSH A PUSH PSW JB P1.3,L1 ;中断子程序 CJNE R4,#00H,KL0 INC R4 SJMP LD0 KL0:MOV R4,#00HLD0:JNB P1.3,LD0 ;判断键是否松开 LJMP LEND L1:JB P1.4,L2 MOV A,R4 JNZ KL1 ;判断幅度是增还是减 CJNE R2,#0AH,KK0 ;判断幅度是否达到最大 SJMP LD1 KK0:INC R2 ;幅度增加0.5V SJMP LD1 KL1:CJNE R2,#00H,KK1 SJMP LD1 KK1:DEC R2 ;幅度减小0.5VLD1:JNB P1.4,LD1 LJMP LEND L2:JB P1.5 ,LEND MOV A,R4 JNZ KL2 ;判断频率的增减 MOV A,#05H ;每次周期变化20微秒 CLR C ADD A,R5 JC LD2 MOV R5,A LJMP LD2 KL2:MOV A,R5 CLR C SUBB A,#05H JC LD2 MOV R5,A LD2:JNB P1.5,LD2LEND:POP PSW POP A SETB EA RETI TABLE1:DB 00H,04H,08H,0bH,0cH,0cH,0bH,08H,04H,00H,04H,08H,0bH,0cH,0cH,0bH,08H ,04HTABLE2:DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,0CH,0CH,0CH,0CH,0CH,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论