最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于51单片机汇编程序波形发生器实训报告

来源:动视网 责编:小OO 时间:2025-09-29 23:37:44
文档

基于51单片机汇编程序波形发生器实训报告

单片机实训报告(波形发生器)一、设计方案(1)、硬件基本设计思路本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。其中,波形的切换采用矩阵键盘通过外部中断0来实现。(2)、软件基本设计思路首先,将基本波形通过程序进行编写,并调试成功;其次,再编写按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。(3)、程序说明略二、原理图波形发生器原理图三、程序JUCHIEQU50HSANJIEQU51HF
推荐度:
导读单片机实训报告(波形发生器)一、设计方案(1)、硬件基本设计思路本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。其中,波形的切换采用矩阵键盘通过外部中断0来实现。(2)、软件基本设计思路首先,将基本波形通过程序进行编写,并调试成功;其次,再编写按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。(3)、程序说明略二、原理图波形发生器原理图三、程序JUCHIEQU50HSANJIEQU51HF
单片机实训报告

(波形发生器)

一、设计方案

(1)、硬件基本设计思路

本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。其中,波形的切换采用矩阵键盘通过外部中断0来实现。

(2)、软件基本设计思路

首先,将基本波形通过程序进行编写,并调试成功;其次,再编写按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。

(3)、程序说明

二、原理图

波形发生器原理图三、程序

JUCHI E QU 50H

SANJI EQU 51H

FANGB EQU 52H

TIXIN EQU 53H

KU EQU 55H

ORG 0000H ;程序入口

AJMP MAIN ;指向主程序

ORG 0003H ;主程序入口地址

AJMP INTT0 ;指向按键中断程序

ORG 0030H ;中断程序入口地址

MAIN: ;主程序

MOV P2,#00H ;将P2口初始化为0

SETB EA ;开总中断

SETB EX0 ;开启外部中断0

SETB IT0 ;将外部中断0设置为下降沿有效

MOV DPTR,#00FFH ;设置输入寄存器地址

MOV JUCHI,#00H ;初始化

MOV SANJI,#00H

MOV FANGB,#00H;***************************************************

START:

MOV A,KU ;将键码送累加器A

CJNE A,#00H,W1 ;将累加器A和00H比较,如果相等,则00键按下顺序执行,否则跳到W1再判断01键是否按下

MOV SANJI,#00H ;屏蔽其他波形

MOV FANGB,#00H

MOV TIXIN,#00H

AJMP JCB ;跳转到锯齿波形

W1: CJNE A,#01H,W2 ;判断01键是否按下

MOV JUCHI,#00H ;屏蔽其他波形

MOV FANGB,#00H

MOV TIXIN,#00H

AJMP SJB ;跳转到三角波形

W2: CJNE A,#02H,W3 ;判断02键是否按下

MOV TIXIN,#00H

MOV JUCHI,#00H ;屏蔽其他波形

MOV SANJI,#00H

AJMP FB ;跳转到方波

W3: CJNE A,#03H,W4 ;判断03键是否按下,没有按下,跳转回去继续循环扫描

MOV JUCHI,#00H ;屏蔽其他波形MOV FANGB,#00H

AJMP TXB ;跳转到梯形波

W4: AJMP START

;**********************************************

INTT0: ;中断程序

;***********键盘扫描子程序KEY*****************

KEY: ACALL KS ;调按键查询子程序,判断是否有键按下JNZ K1 ;有键按下,转移 WEI1跳转

ACALL DELAY ;无键按下,调延时程序去抖

AJMP K4 ;继续查询按键

;***********键盘逐列扫描程序***********************************

K1: ACALL DELAY

ACALL KS ;再次判别是否有键按下

JNZ K2 ;有键按下,转移

AJMP K4

K2: MOV R3,#0FEH ;首列扫描字送R3

MOV R4,#00H ;首列号送R4

K3: MOV A,R3

MOV P2,A ;列扫描字送P2口

MOV P1,#0FFH ;初始化P1口

MOV A,P1 ;读取行扫描值JB ACC.0,L1 ;第零行无键按下转查第一行为1跳转

MOV A,#00H ;第零行有键按下,行首键号送A

AJMP LK ;转求键号

L1: JB ACC.1,NEXT ;第一行无键按下,转查下一列MOV A,#03H

AJMP LK ;键扫描结束,返回

;************************************************************

NEXT:

INC R4 ;修改列号

MOV A,R3

JNB ACC.2,KEY ;三列扫描完返回按键查询状态

RL A ;未扫描完,改为下列扫描字

MOV R3,A ;扫描字暂存R3

AJMP K3 ;转列扫描程序

LK: ADD A,R4 ;形成键码送A

MOV KU,A

PUSH ACC ;键码入栈保护

;**********************************************

K4:

ACALL KS ;等待键释放

JNZ K4

POP ACC ;键释放,弹栈送A

RETI ;中断返回

;**********按键查询子程序**************************************

KS: ;MOV A,#00H

MOV P2,#00H ;全扫描字送p2口

MOV P1,#0FFH

MOV A,P1 ;读入P1口状态

CPL A ;变正逻辑,高电平表示有键按下

ANL A,#0FH ;屏蔽高四位

RET ;子程序返回

;****************锯齿波***********************

JCB:

MOV A,JUCHI ;转换初值

WW: MOVX @DPTR,A ;D/A转换

INC A ;A自加1

NOP ;延时

CJNE A,#255,WW ;判断A是否加到255,若没有返回到WW继续加MOV JUCHI,A

AJMP START

;******************三角波********************

SJB:

MOV A,SANJI ;转换初值

EE: MOVX @DPTR,A ;D/A转换INC A

NOP

CJNE A,#255,EE

DEC A

QQ: MOVX @DPTR,A

DEC A

NOP

CJNE A,#00,QQ

MOV SANJI,A

AJMP START

;******************方波********************* FB:

MOV A,FANGB

MOVX @DPTR,A

ACALL DELAY3

ACALL DELAY3

CPL A

MOVX @DPTR,A

ACALL DELAY3

ACALL DELAY3

MOV FANGB,A

POP ACCAJMP START

;***************梯形波**********************

TXB:

MOV A,TIXIN

SS: MOVX @DPTR,A

INC A

ACALL DELAY3

CJNE A,#255,SS

ACALL DELAY3

ACALL DELAY3

DEC A

ZZ: MOVX @DPTR,A

DEC A

ACALL DELAY3

CJNE A,#00,ZZ

ACALL DELAY3

ACALL DELAY3

MOV TIXIN,A

AJMP START

;*******************************************************1ms DELAY3: MOV R0,#7DH

DEL7: NOPNOP

DJNZ R0,DEL7

RET

;*******************************************50毫秒延时子程序

DELAY2: MOV R0,#05

DEL5: MOV R1,#10

DEL4: MOV R2,7DH

DEL3: NOP

NOP

DJNZ R2,DEL3

DJNZ R1,DEL4

DJNZ R0,DEL5

RET

;******************************************

END

四、实训总结

通过两周的实训,我们对单片机有了一个基本的认识和了解,我们学到了怎样从一个设计课题入手去编写相关程序,并通过硬件实现。

文档

基于51单片机汇编程序波形发生器实训报告

单片机实训报告(波形发生器)一、设计方案(1)、硬件基本设计思路本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。其中,波形的切换采用矩阵键盘通过外部中断0来实现。(2)、软件基本设计思路首先,将基本波形通过程序进行编写,并调试成功;其次,再编写按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。(3)、程序说明略二、原理图波形发生器原理图三、程序JUCHIEQU50HSANJIEQU51HF
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top