​ ASM10_DAC0832:    DAC0832输出各种波形

(注意代码显示不全,最下面有Keil源码和Proteus工程)

/**
******************************************************************************
*   @file      Timer.asm
*   @author    Alex——小白
*   @version   V1.0
*   @date      2019.9.1
*   @brief     DAC0832输出各种波形
*   @store     有家Proteus仿真店子
*   @Link      https://shop484534014.taobao.com/
*   @Email     844545015@qq.com
******************************************************************************
*   @attention  All Rights Reserved
**/
​Count  EQU    31H    ;定义定时器自加变量
​ORG     0000H      ;程序执行的起始地址        LJMP    Main      ;跳转到main函数ORG   000BH      ;外部中断0起始地址LJMP   Timer0      ;声明Timer0是外部中断0函数名称ORG     0100H      ;程序跳转到0100H开始执行Main:  MOV    TMOD,#01HMOV    TH0,#3CHMOV    TL0,#0B0H    ;3CB0H,65536-15536=50000us=50msSETB  ET0        ;time0CLR    TR0        ;默认不打开定时器,等方波按钮触发后打开SETB   EA        ;总中断打开MOV    Count,#00HWhile:            JNB    P1.0,P10    ;如果按键P1.0=0,则跳转到P10,一下类似JNB    P1.1,P11    ;按键切换波形JNB    P1.2,P12JNB    P1.3,P13SJMP  While      ;While循环
​Timer0:MOV    TH0,#3CH  ;定时器赋值MOV    TL0,#0B0HMOV    A,CountCPL    A      ;翻转A,即让变量count翻转构成高低电平,也就是方波MOV    Count,ARETI
​P10:  MOV     R7,#00H    ;根据不同按键跳转到不同的波形生成函数LCALL   SQU      ;调用方波函数LJMP    WhileP11:  MOV     R7,#01HCLR    TR0      ;关闭定时器LCALL   SAW      ;调用锯齿波LJMP    WhileP12:  MOV     R7,#02HCLR    TR0      ;关闭定时器LCALL   TRI      ;调用三角波LJMP    WhileP13:  MOV     R7,#03HCLR    TR0      ;关闭定时器LCALL   SIN      ;调用正弦波LJMP    While
​SQU:  JNB    P1.1,N1    ;方波,并在此判断按键是否切换,不切换执行方波JNB    P1.2,N2JNB    P1.3,N3LJMP   SSQUN2:   MOV    R7,#02HLJMP   TC0N3:   MOV    R7,#03HLJMP   TC0SSQU: CJNE   R7,#00H,TC0  ;比较R7内的值是否为0,不是则跳转TC0SETB  TR0     ;方波定时器使能MOV    P0,Count    ;给P0=Count,由定时器反转CountLJMP   SQUTC0:  RET
​
​SAW:  JNB    P1.0,N4    ;锯齿波,同理继续判断是否有其他按键切换JNB    P1.2,N5JNB    P1.3,N6LJMP   SSAWN4:   MOV    R7,#00H    LJMP   TC1N5:   MOV    R7,#02HLJMP   TC1N6:   MOV    R7,#03HLJMP   TC1SSAW: CJNE   R7,#01H,TC1   MOV    R0,#00HK10: MOV    P0,R0    ;将寄存器R0中数值变换0-255给P0输出,R3延时MOV    R3,#00HL10:  INC    R3CJNE   R3,#255,L10CJNE   R0,#255,K10  ;如果R0!=255,则跳转K10,如果等于继续执行LJMP   SAWTC1:  RET
​TRI:  N7:   MOV    R7,#00HLJMP   TC2N8:   MOV    R7,#01HLJMP   TC2N9:   MOV    R7,#03HLJMP   TC2    TTRI: CJNE   R7,#02H,TC2  ;R0的数值先从0-255,然后在从255-0,R3用于延时MOV    R0,#00HK20:  MOV    P0,R0MOV    R3,#00HL20:  INC    R3CJNE   R3,#255,L20INC    R0      ;R0的数值先从0-255,R3用于延时CJNE   R0,#255,K20K21:  MOV    P0,R0    ;R0赋值给P0MOV    R3,#0FFHL21:  DEC    R3CJNE   R3,#0,L21DEC    R0      ;R0的数值先从255-0,R3用于延时  CJNE   R0,#0,K21LJMP   TRITC2:  RET
​SIN:  N11:  MOV    R7,#01HLJMP   TC3N12:  MOV    R7,#02HLJMP   TC3SSIN: CJNE   R7,#03H,TC3   MOV   R0,#00HL30:  INC    R3CJNE   R3,#255,L30CJNE   R0,#255,K30LJMP   SINTC3:  RET
​TAB:  DB 80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EHDB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H,0B2H,0B4H,0B6H,0B7H,0B9H,0BAHDB 0BCH,0BDH,0BFH,0C0H,0C1H,0C3H,0C4H,0C5H,0C6H,0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEHDB 0CEH,0CFH,0D0H,0D1H,0D1H,0D2H,0D2H,0D3H,0D3H,0D4H,0D4H,0D4H,0D4H,0D5H,0D5H,0D5HDB 0D5H,0D5H,0D5H,0D5H,0D4H,0D4H,0D4H,0D4H,0D3H,0D3H,0D2H,0D2H,0D1H,0D1H,0D0H,0CFHDB 0CEH,0CEH,0CDH,0CCH,0CBH,0CAH,0C9H,0C8H,0C6H,0C5H,0C4H,0C3H,0C1H,0C0H,0BFH,0BDHDB 0BCH,0BAH,0B9H,0B7H,0B6H,0B4H,0B2H,0B1H,0AFH,0ADH,0ABH,0AAH,0A8H,0A6H,0A4H,0A2HDB 0A0H,9EH,9CH,9AH,98H,96H,94H,92H,90H,8EH,8CH,8AH,88H,86H,84H,82HDB 80H,7DH,7BH,79H,77H,75H,73H,71H,6FH,6DH,6BH,69H,67H,65H,63H,61HDB 5FH,5DH,5BH,59H,57H,55H,54H,52H,50H,4EH,4DH,4BH,49H,48H,46H,45HDB 43H,42H,40H,3FH,3EH,3CH,3BH,3AH,39H,37H,36H,35H,34H,33H,32H,31HDB 31H,30H,2FH,2EH,2EH,2DH,2DH,2CH,2CH,2BH,2BH,2BH,2BH,2AH,2AH,2AHDB 2AH,2AH,2AH,2AH,2BH,2BH,2BH,2BH,2CH,2CH,2DH,2DH,2EH,2EH,2FH,30HDB 31H,31H,32H,33H,34H,35H,36H,37H,39H,3AH,3BH,3CH,3EH,3FH,40H,42HDB 43H,45H,46H,48H,49H,4BH,4DH,4EH,50H,52H,54H,55H,57H,59H,5BH,5DHDB 5FH,61H,63H,65H,67H,69H,6BH,6DH,6FH,71H,73H,75H,77H,79H,7BH,7DHEND

如需下载Proteus仿真文件和Keil工程,请关注公众号:

Proteus仿真店子

(若需Proteus和keil安装包,后台回复:安装包;若需Proteus教学视频,后台回复:Proteus视频;若需其它设计,后台回复:51汇编设计

51单片机汇编学习例程(10)——DAC0832篇相关推荐

  1. 51单片机汇编学习例程(9)——ADC0809篇

    ASM9_ADC0808:    ADC0808采集ADC参数,数码管显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** ************************** ...

  2. 51单片机汇编学习例程(7)——74HC595数码管篇

    7.ASM7_Seg_595:    74HC595控制数码管静态显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** **************************** ...

  3. 51单片机汇编学习例程(16)——AT24C02篇

    ​ASM16_AT24C02:EEPROM数据读写,LED显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /*********************************** ...

  4. 51单片机汇编学习例程(17)——KeyPad4X4篇

    ​ASM17_KeyPad4X4:矩阵键盘,LCD1602显示按键值. (注意代码显示不全,最下面有Keil源码和Proteus工程) 仿真视频 /** *********************** ...

  5. 51单片机汇编学习例程(13)——DC-Motor篇

    ​ ASM13_DCMotor:    DC-Motor电机控制 (注意代码显示不全,最下面有Keil源码和Proteus工程) /********************************** ...

  6. 51单片机汇编学习(一)点亮你的LED灯

    本帖为使用汇编编写51单片机的学习笔记,本帖使用软件为keil5,因为没有实际硬件,所以选择porteus仿真软件,因为是第一篇,所以内容多有赘述,详细说明了工程建立等,因为文章太长所以编程和仿真分开 ...

  7. 51单片机汇编学习10——串口通讯

    这一小节写一下串口通讯. 建议先去了解一下什么串行通讯. 推荐一个视频3分钟理解通信协议之串口UART到底是个啥?_哔哩哔哩_bilibili 因为串口通讯涉及的寄存器相对较多.所以尽量要自己去看看S ...

  8. 51单片机汇编学习笔记9——定时计数器

    这一小节介绍一下51单片机的一个重要外设定时计数器. 顾名思义定时计数器主要是两种功能:定时.计数. 定时:就是当你开启定时器后到了设定的时间他会触发中断,然后去执行中断服务函数里面的程序. 计数:主 ...

  9. 51单片机汇编学习11——扩展原理与接口技术

    终于到这一小节了.这一节讲扩展原理与接口技术. 那么什么是扩展原理&接口技术呢?其实主要是3种. 1.扩展一个程序存储器 2.扩展一个数据存储器 3.扩展IO口 1.扩展程序存储器 其实这个扩 ...

最新文章

  1. Angular CLI在线安装和离线安装
  2. golang reflect 反射 简介
  3. 第七天2017/04/14(C++对C的扩充,C++与C的区别,C++的基础知识)
  4. STM32L1X系列GPIO运用
  5. java方法6_6. java 方法
  6. HTTP一次完整的http请求所经历的步骤
  7. spring事物管理(配置文件方式)
  8. Android官方开发文档Training系列课程中文版:后台服务之响应IntentService的处理结果
  9. Tomcat软连接访问配置(symbol link)
  10. Chrome网页性能分析工具
  11. 使用Atlas进行元数据管理之Glossary
  12. 计算机机房空调设计规范,计算机机房空调设计规范
  13. linux能解锁小米手机吗,【BL锁】还在为小米手机如何解锁及解锁后如何加锁而烦恼吗?...
  14. Python爬虫:使用Appium在移动端抓取微博数据
  15. 大数据对于企业的价值,主要体现在哪几个方面?
  16. ssh连接openwrt_如何将SSH无密码连接到OpenWrt路由器?
  17. PS学习笔记(88天和我一起学会PS)(5/88)
  18. 【新闻推荐系统】(task3)自动化构建用户及物料画像
  19. python输出古诗词_python爬虫——爬取古诗名句
  20. 最新彩虹易支付全解版疑似hack易支付整站源码打包

热门文章

  1. pytho发送http请求Broken pipe
  2. related work 怎么写
  3. cassandra-stress 压测使用介绍
  4. 高压电缆感应式取电电源分析及设计
  5. 漏洞已破解 你手中的IC卡一卡通还安全吗?
  6. HTML-head标签详解
  7. DLVD模型的鲁棒性研究
  8. A069_店铺入驻_FastDfs_邮件
  9. 如何将歌词显示到MAC的touchbar
  10. vue中elementUi筛选后分页页码恢复到第一页