不同频率的方波发生器8086和8253的Proteus仿真
时钟信号的频率为307.2kHz。
通过按钮可以选择输出不同频率的方波。
DATAS SEGMENT;此处输入数据段代码 IOYO equ 0C400h;对应的端口地址IOY1 equ 0C440hMY8253_COUNT_0 equ IOYO+00H*4;8253计数器0端口1地址MY8253_COUNT1 equ IOYO+01H*4;8253计数器1端口2地址MY8253_COUNT2 equ IOYO+02H*4;8253计数器2端口3地址MY8253_MODE equ IOYO+03H*4;8253控制器地址MY8255_A equ IOY1+00H*4;8255计数器端口1地址MY8255_B equ IOY1+01H*4;8255计数器端口2地址MY8255_C equ IOY1+02H*4;8255计数器端口3地址MY8255_MODE equ IOY1+03H*4;8255控制器地址
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;此处输入代码段代码mov dx,MY8255_B;输入信号in al,dx;这里确定的D1位为1说明PB端口是输入端口,用来输入按键输入信号;D4位为0,说明PA端口作为输出信号mov dx,MY8255_MODEmov al,82h;1000 0010out dx,al
K:;k的作用是用于轮询读入按键的输入信号mov dx,MY8255_B;输入信号in al,dxcmp al,0FEhje K1cmp al,0FDhje k2cmp al,0FBhje k3cmp al,0f7hje k4;若无输入跳转到K继续读入信号jmp k
wait_a:;这个地方的作用是用于如果按键的输入不改变则信号显示不改变一直在这个逊汗中,例如当al=0FEh时,跳转到k1,然后输出了对应频率的波形;之后不断检查按键的输出是否改变如果改变则跳出k1,否则一直输出对应波形mov ah,almov dx,MY8255_B;输入信号in al,dxcmp ah,alje exitjne k
k1:mov di,100;call out_frejmp wait_a
k2:mov di,200;call out_frejmp wait_a
k3: mov di,300;call out_frejmp wait_a
k4:mov di,500;call out_frejmp wait_aOut_fre proc nearmov dx,MY8253_MODE;8253初始化mov al,0b6h;10通道2,11先读写高字节,后读写低字节011方式3,0二进制计数out dx,almov dx,1mov ax,000;307.2KHzdiv dimov dx,MY8253_COUNT2out dx,almov al,ahout dx,alret
Out_fre endpexit:;退出MOV AH,4CHINT 21H
CODES ENDSEND START
结果:
从上到下按按钮波形逐渐变密。
方波发生器可以产生利用8253的方式三模式产生不同的频率的方波,具体频率我没有测。我的Proteus中的频率计没有测出来,大家可以试试。
补充:运行时各个信号参考:
时钟信号设置
不同频率的方波发生器8086和8253的Proteus仿真相关推荐
- 音乐发生器8086和8253通过Proteus仿真
图中脉冲信号的频率为307.2KHz. 我这里实现了不同的乐曲分别是小星星,友谊地久天长和卖报歌,按下开关一是小星星,开关二是友谊地久天长,开关三是卖报歌: DATAS SEGMENT;此处输入数据段 ...
- da转化输出不同波形8086和DAC0832的Proteus仿真
DATAS SEGMENT;此处输入数据段代码 DAC0832 equ 0C400h IOY1 equ 0C480hb8255 equ IOY1+01H*4m8255 equ IOY1+03H*4bu ...
- 8086之8253芯片仿真
8086之8253芯片仿真 汇编语言 微机原理 8086 题目1 问题描述 实现开关闭合后5s后点亮发光二极管 方式0 解答 使用1HZ频率输入给定时器0 工作模式为0 电路图 题目1 电路图 程序 ...
- 8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真
8086+DAC0832产生方波.三角波及正弦波波形Proteus仿真 仿真截图 代码 CODE SEGMENTDATA SEGMENT SQURE DB 0,0,0,0,0,0,0,0,0,0,25 ...
- 【Proteus仿真8086】将IO接口电路封装成子电路CCT001
本次实验内容来自于顾晖老师<微机原理与接口技术 基于8086和Proteus仿真 第3版>的[例7-2],但老师使用的方法是将IO接口电路封装成子电路CCT001,这部分在章节没有讲述,于 ...
- 【Proteus仿真8086】简单IO接口实验——无条件传输和查询方式
本次实验内容来自于顾晖老师<微机原理与接口技术 基于8086和Proteus仿真 第3版>的[例7-1]和51CTO课程的讲解内容第七章输入输出接口0704程序查询方式 https://e ...
- 【Proteus仿真8086实验一】RAM存储器62256
建议把存储器设计和简单IO接口放在第一次实验,重点了解锁存器273和缓冲器373是怎样将数据和地址线进行分离的,具体Proteus的实验操作比如设置内存大小和快速命名接口(属性赋值工具)可以参考这个老 ...
- Arduino与Proteus仿真实例-简单信号频率计数仿真
简单信号频率计数仿真 Arduino 可用于测量电量(如电压.电流.功率等)或物理量(如温度.湿度.光强.湿度等)或电子元件值等. 本文将演示演示了如何使用 Arduino 测量脉冲的频率和占空比. ...
- 8086+ADC0808+8255A电压测量数码管显示Proteus仿真
8086+ADC0808+8255A电压测量数码管显示Proteus仿真 Proteus仿真截图 代码 CODE SEGMENT DATA SEGMENT PORT_ADC EQU 80H PORT_ ...
最新文章
- 搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务
- 一些常用字符串操作函数的内部实现
- 马斯克的脑机接口,距离我们还有多远?
- ubuntu c++ 实现自动回车键功能_特斯拉已实现完全自动驾驶功能?是噱头还是技术的突破?...
- Python 中使用 for、while 循环打印杨辉三角练习(列表索引练习)。
- python递归求5!_用Python解数独[6]:递归获得最终答案
- [web性能优化] - 使用在线工具对html、js、css进行压缩
- PostGIS之路——几何对象编辑(二)
- thinkphp mysql cache_thinkPHP5框架数据库连贯操作之cache()用法分析
- 网易云深度学习第二课notebook1
- Java基础学习总结(99)——Java代码性能优化总结
- 给你个选择Mac的理由,浅谈Macos系统的优点
- [转] - 浅谈数据分析和数据建模
- win7 便签快捷键
- linux卸载espeak,eSpeak:Linux下的“语音精灵”
- 自知、自胜、知足、强行,不失其所
- pm2 for linux
- php图片素描化,ps怎么把图片变成素描图片
- mysql 创建存储过程语法_mysql存储过程语法及实例
- 名帖157 王徽之 行楷《新月帖》