c51用汇编语言产生锯齿波,单片机产生四种波形并可任意切换的正弦波发生器汇编程序...
; Main.asm file generated by New Project wizard
; Created: 周五 5月 24 2019
; Processor: AT89C52
; Compiler: ASEM-51 (Proteus)
;=====================================
$NOMOD51
$INCLUDE (80C52.MCU)
;======================================
; DEFINITIONS
; VARIABLES
; RESET and INTERRUPT VECTORS
;======================================
; Reset Vector
org 0000h
jmp Start
;=======================================
; CODE SEGMENT
;=======================================
org 0100h
Start:
;***R4=0锯齿波R4=1三角波R4=2正弦波R4=3方波R4=梯形波***
;***********************
; 锯齿波
;***********************
MOV R4,#0
J0: MOV A,#0
J0next: CJNE R4,#0,S1 ;判断R4,不等0跳转产生三角波
MOV P2,A ;P2赋值
LCALL delay ;延时
INC A ;增加A的值,产生锯齿波上升沿
JB P1.0,J0p11 ;扫描检测按键给R4赋值选择输出信号波形
MOV R4,#0 ;产生锯齿波信号
J0p11: JB P1.1,J0p12
MOV R4,#1 ;产生三角波信号
J0p12: JB P1.2,J0p13
MOV R4,#2 ;产生正弦波信号
J0p13: JB P1.3,J0p14
MOV R4,#3 ;产生方波信号
J0p14: JB P1.4,J0p15
MOV R4,#4 ;产生梯形波信号
J0p15: SJMP J0next
;***************************
; 三角波
;***************************
S1: MOV A,#0
S1n1: CJNE R4,#1,Z3 ;判断R4,不等于1则跳转正弦波发生
MOV P2,A ;产生三角波的上升沿
LCALL delay ;调用延时
INC A ;增加A
JB P1.0,S11p11 ;扫描检测按键确定输出信号种类
MOV R4,#0 ;产生锯齿波信号
S11p11: JB P1.1,S11p12
MOV R4,#1 ;产生三角波信号
S11p12: JB P1.2,S11p13
MOV R4,#2 ;产生正弦波信号
S11p13: JB P1.3,S11p14
MOV R4,#3 ;产生方波信号
S11p14: JB P1.4,S1p1
MOV R4,#4 ;产生梯形波信号
S1p1: CJNE A,#255,S1n1
S1n2: CJNE R4,#1,Z3
MOV P2,A ;产生三角波的下降沿
LCALL delay
DEC A ;减小A
JB P1.0,S12p11 ;扫描检测按键状态确定输出信号波形
MOV R4,#0 ;产生锯齿波信号
S12p11: JB P1.1,S12p12
MOV R4,#1 ;产生三角波信号
S12p12: JB P1.2,S12p13
MOV R4,#2 ;产生正弦波信号
S12p13: JB P1.3,S12p14
MOV R4,#3 ;产生方波信号
S12p14: JB P1.4,S1p2
MOV R4,#4 ;产生梯形波信号
S1p2: CJNE A,#0,S1n2
SJMP S1n1
;**********************************
; 正弦波
;**********************************
Z3: MOV R0,#0
Z3NEXT: CJNE R4,#2,F4 ;判断R4,不等于2跳转输出方波
MOV A,R0
MOV DPTR,#TAB ;将正弦波的表头给DPTR,转到表格去查表
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
INC R0
JB P1.0,Z3p11
MOV R4,#0
Z3p11: JB P1.1,Z3p12 ;扫描检测按键选择输出波形
MOV R4,#1
Z3p12: JB P1.2,Z3p13
MOV R4,#2
Z3p13: JB P1.3,Z3p14
MOV R4,#3
Z3p14: JB P1.4,Z3next
MOV R4,#4
SJMP Z3NEXT
;*******************************
; 方波
;*******************************
F4: CJNE R4,#3,T5 ;判断R4,不等于3则跳转梯形波
MOV A,#0
MOV P2,A
CALL FBDELAY
MOV A,#255
MOV P2,A
CALL FBDELAY
F40: JB P1.0,F41 ;扫描检测按键分别选择输出波形
MOV R4,#0
F41: JB P1.1,F42
MOV R4,#1
F42: JB P1.2,F43
MOV R4,#2
F43: JB P1.3,F44
MOV R4,#3
F44: JB P1.4,F4
MOV R4,#4
JMP F4
;*******************************
; 梯形波
;*******************************
T5: MOV A,#0
T5b: CJNE R4,#4,T51b ;判断R4,不等4则跳转
JMP T51b1
T51b: JMP J0 ;跳转到锯齿波那一步
T51b1: MOV P2,a
LCALL delay
INC A ;产生梯形波的上升沿;
JB P1.0,T5b0 ;扫描检测按键选择输出波形
MOV R4,#0
T5b0: JB P1.1,T5b1
MOV R4,#1
T5b1: JB P1.2,T5b2
MOV R4,#2
T5b2: JB P1.3,T5b3
MOV R4,#3
T5b3: JB P1.4,T5b10
MOV R4,#4
T5b10: CJNE A,#255,T5b
LCALL fbdelay
T5b11: CJNE R4,#4,T52b
JMP T52b2
T52b: JMP J0
T52b2: MOV P2,a
LCALL delay
DEC A ;产生梯形波的下降沿
JB P1.0,T5b12 ;扫描检测按键选择输出波形
MOV R4,#0
T5b12: JB P1.1,T5b13
MOV R4,#1
T5b13: JB P1.2,T5b14
MOV R4,#2
T5b14: JB P1.3,T5b15
MOV R4,#3
T5b15: JB P1.4,T5b16
MOV R4,#4
T5b16: CJNE A,#0,T5b11
JMP T5
DELAY: MOV R6,#2 ;延时函数
D1: MOV R7,#20
DJNZ R7,$
DJNZ R6,D1
RET
fbdelay: MOV R1,#40 ;方波延时函数
D2: MOV R2,#255
DJNZ R2,$
DJNZ R1,D2
RET
;正弦波波形表
TAB:
DB 80H,83H,86H,89H,8DH,90H,93H,96H
DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H
DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H
DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H
DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH
DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH
DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H
DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH
DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH
DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H
DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H
DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H
DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H
DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H
DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H
DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH
DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H
DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H
DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH
DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H
DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H
DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H
DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H
DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H
DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H
DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH
DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H
DB 69H, 6CH, 6FH, 72H, 75H, 78H, 7bH, 7eH
Loop:
jmp Loop
;=============================================
END
c51用汇编语言产生锯齿波,单片机产生四种波形并可任意切换的正弦波发生器汇编程序...相关推荐
- 基于stm32单片机的四种波形发生器正弦波、方波、三角波、锯齿波
基于stm32单片机的四种波形发生器(源程序+仿真+设计报告)全套资料 资料编号:010 具体功能: (1) 可以实现四种波形:正弦波.方波.三角波.锯齿波: (2) 通过按键进行选择,频率可以调整: ...
- 单片机课设基于51单片机的波形发生器(公开资源)(四种波形)(同时输出两种波形)
单片机课设-波形发生器 前言 一.课设任务是什么? 二.如何解决这几个任务? 三.仿真原理图 四.代码 4.1 LCD1602代码 4.2 波形输出以及8*8点阵显示代码 4.3 波形选择 五.仿真源 ...
- 基于51单片机的波形发生器(四种波形)(毕业设计资料)
四种波形的产生,包括锯齿波.三角波.方波.正弦波.通过LCD液晶显示当前波形以及波形的频率.可以通过按键切换波形,并可以通过按键进行设置当前波形的频率大小,也可以设置频率设置不步进值.资料从主页链接中 ...
- 单片机的四种烧写方式
参考:单片机的四种烧写方式 作者:爱学习的小王呀 发布时间:2020-11-27 20:05:12 网址:https://blog.csdn.net/hongliwong/article/detail ...
- 25、基于51单片机函数信号发生器四种波形和频率显示系统设计
摘 要 本文所设计的系统是利用51单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,即采用STC89C51 单片机作为控制核心,而在外围采用数字/模拟转换电路(DAC0832).运放电 ...
- dac0832控制电机驱动流程图_dac0832锯齿波流程图
实验五DAC0832输出锯齿波_物理_自然科学_专业资料.实验报告五实验名称:DAC0832 生成锯齿波 [实验内容] 通过用单片机控制 DAC0832 输出锯齿波,让实验板上发光二极管...... ...
- 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机
功能介绍: 1.输出 正弦波.矩形波.三角波.锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波.矩形波.三 ...
- MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件
MATLAB绘制正弦波.方波.三角波.锯齿波的mif文件 % 对波形进行等间隔采样,以采样次数作为 ROM 存储 % 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间 % 采样次数为 ...
- Verilog 代码编写 DDS信号发生器(幅频相可调正弦波、方波、三角波、锯齿波)纯VIVADO编写仿真
DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短.分辨率高和相位连续性好等优点.较容易实现频率.相位以及幅度的数控调 ...
最新文章
- ActiveMQ在C#中的应用
- 剑指offer: 替换空格 python实现
- socket编程的select模型
- 动态创建html元素的几种方法
- MOS管的工作原理及常见的封装(看完必会)
- RabbitMQ基本概念(三)-Centos7下安装RabbitMQ3.6.1
- 4t硬盘实际容量是多少_SMR硬盘到底能用不?点进来看看避免踩雷
- 怎么安装python3.7 setuptools与pip_如何安装python到setuptools、pip工具安装
- Metal Framework基础使用教程
- 以后别写程序了,几个程序员很有用的源码网站奉献给大家
- OpenGL.tutorial06键盘和鼠标
- linux 用户与工作组
- appium +夜神模拟器 java代码sendkeys 无法在模拟器输入中文
- oeasy教您玩转vim - 28 - 水平移动
- ★ Android 各类依赖库文件 收藏 ★
- gfortran在linux下安装
- 判断一个对象是否属于某一类
- Google advertiser api开发概述——入门指南
- sqlplus的简单使用和常用命令
- 基于php农产品在线销售网站