dac0832三角波c语言程序,单片机控制DAC0832输出正弦波三角波汇编程序
org 0000h
LJMP MAIN
ORG 0003H
LJMP L0
MAIN: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,#00H
LOOP1: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,#00H
LOOP2: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,#00H
LOOP3: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,#00H
LD0: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.5V
LD1: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,LD2
LEND: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 ,04H
TABLE2:DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,0CH,0CH,0CH,0CH,0CH,0CH,0CH,0CH ,0CH
TABLE3:DB 00H,02H,04H,06H,08H,0AH,0CH,0AH,08H,06H,04H,02H,00H,02H,04H,06H,08H,0AH,0CH,0AH
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号
享受更多官方福利
推荐阅读
STC15单片机实验名称:使用NTC电阻测量温度实验内容: 使用NTC电阻测量温度并显示在数码管上 读取DS18B20模块测量温度作为参考实验器材: STC15W408AS_DIP16 x1 DS18B20 x1 TM1637数码管 x1
发表于 2020-12-17
/*一款电子钟程序,此电子钟是四位电子钟数码管组成的,功能分别有走时、响闹、走时间调整、闹钟时间调整等功能!调整部分分别由三个按键实现,一个功能键,一个+(加)键,另一个为-(减)键,其它功能键是复用功能!*/硬键介绍:数码管个位.十位.百位.千位.小数点分别接P0.0 P0.1 P0.2 P0.3 P0.4。蜂鸣器接P3.5脚,功能按键接P3.2 加按键接P3.3 减按键接P3.4以下是两张图片!!!#include //头文件#define uchar unsigned char//宏定义#define uint unsigned int//宏定义uchar shi,fen,nshi,nfen,ma
发表于 2020-12-17
51单片机做的温度显示,温度显示在LCD1602液晶屏上。然后按键可以调整温度阈值,温度高于或低于所设温度,蜂鸣器就会响……单片机源程序如下:/*************************************************************************************** 基于单片机的实时温度报警系统设计  
发表于 2020-12-17
当电机较大时,启动是个必须注意的问题。比较简单且用的很多的是星三角启动,这里写出了星三角启动的核心部分。每一个IO口接上继电器,再控制交流接触器,就OK了。但,要注意,星、角交流接触器一定要互锁,否则一旦某个交流接触器粘连,就造成短路了。#include sbit K1=P3^1; //按键1,控制第1个继电器启动sbit K2=P3^2; //按键2,控制第2个继电器启动sbit J1=P1^5; //星接继电器sbit J2=P1^6; //星点继电器sbit J3=P1^7; //角继电器void Delay_1ms(unsigned i
发表于 2020-12-16
、技术性能稳定等特点而受到广大用户和专业人士的欢迎。而本设计的电路包括硬件和软件两个部分。硬件部分包括红外感应部分与单片机控制部分。整个系统电路可划分为:电源部分、传感器模块部分、单片机控制电路,而单片机控制由最小系统和指示灯电路、报警电路等子模块组成。主要工作由热释电红外感应器完成信息采集、处理、数据传送经过单片机功能设定到达报警模块这一过程。就此设计的核心模块来说,单片机就是设计的中心单元。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是主要是工作的程序通过编写程序来控制输入的信号。二、设计任务分析1.该设计包括硬件和软件设计两个部分。模块划分为数据采集、按键设定、报警
发表于 2020-12-16
用一个按键控制四个继电器循环导通,程序由51单片机的程序改到STC15F104W上,第一次按键,第一个继电器吸合,第二次按键,第二个继电器吸合,第一个继电器释放,以此类推。最初的想法就是实现电风扇,三档开关,程序里面可以修改端口。#includesbit key = P3^4; //定义按键void delayms(void); //延时void led_refresh(unsigned char
发表于 2020-12-16
dac0832三角波c语言程序,单片机控制DAC0832输出正弦波三角波汇编程序相关推荐
- dac0832三角波c语言程序,单片机驱动dac0832输出方波三角波正玄波程序
电路图 仿真文件及完整的源代码下载地址:http://www.51hei.com/bbs/dpj-20395-1.html 下面是汇编程序源码,可以用按键来控制 org 0000h ajmp main ...
- 电子屏幕的51c语言程序,单片机控制LCD液晶显示器(含程序)
<单片机控制LCD液晶显示器(含程序)>由会员分享,可在线阅读,更多相关<单片机控制LCD液晶显示器(含程序)(16页珍藏版)>请在人人文库网上搜索. 1.液晶显示器一 实验目 ...
- 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边.doc
WORD格式.分享 精品.资料 单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过 ...
- 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边
单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的应该是这样的先奇数亮 ...
- 51单片机蜂鸣器演奏《小苹果》C语言程序,单片机控制蜂鸣器演奏音阶实例
单片机可以控制蜂鸣器发声音 蜂鸣器是非常常见的发音元器,音乐卡.报警装置.电子琴.各种小家电等都会用到.单片机的PWM功能可以设置输出不同频率的信号,所以我们可以利用单片机的PWM控制三极管的通断来推 ...
- 单片机三角波c语言程序,单片机产生方波、锯齿波、三角波程序
单片机产生方波.锯齿波.三角波程序 #include #define uchar unsigned char #define uint unsigned int unsigned char x=0,m ...
- 按钮查询方式控制交通灯c语言程序,单片机控制交通灯(内含程序和实物图)
模拟交通灯控制系统 摘要:随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题.因此,设计可靠.安全.便捷的多功能交通灯控制系统有极大的现实必要性.根据交通灯在实际控制中的 ...
- 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边,从两边向中间...
这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的 应该是这样的 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两 ...
- led交通灯c语言程序设计,单片机控制的交通灯C语言编程.doc
单片机控制的交通灯C语言编程 单片机控制的交通灯 红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换.四个方向各有一个红.黄.绿显示和两个数码管. 东西道为人行道(20秒),南北道为车行道(60秒),黄灯 ...
最新文章
- Elasticsearch 2.2.0 索引配置详解
- 初探云原生应用管理(二): 为什么你必须尽快转向 Helm v3
- href 一个正则表达式的解析 ? 号解析
- Top10 Web2.0在线生成器
- PHP(四)——性能优化
- luogu P3380 【模板】二逼平衡树(树套树)
- python函数拟合编程_Python应用实现双指数函数及拟合代码实例
- 【文章】浅相遇,薄相知,淡相守,终难忘
- 华为v5服务器安装操作系统,v5服务器
- js中定义变量加var与不加var的区别?
- 微信之微信支付(封装)--jsapi
- linux备份没有vmlinuz,解决file /isolinux/vmlinuz0 not found
- 2016年读书总结(一)
- 建筑专业规范大全 2020版_房屋建筑工程现行规范标准目录汇编(2020版)—防水工程...
- 2021年 最全面 软件测试工程师面试题及答案
- 数字时钟——FPGA
- iradon函数和radon函数
- 软件企业软件产品税收优惠政策
- fastjson 首字母大写问题
- 语音端点检测 php,几种语音端点检测方法简介