西工大微机原理实验课.ppt_第1页
西工大微机原理实验课.ppt_第2页
西工大微机原理实验课.ppt_第3页
西工大微机原理实验课.ppt_第4页
西工大微机原理实验课.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理实验课 西北工业大学计算机学院实验教学中心 MASM611使用简要说明 Microsoft宏汇编程序MASM611有建立汇编语言所需的全部工具 我们简要介绍其集成开发软件PWB PWB是集汇编程序的编辑 编译 连接 调试 运行于一体的综合软件 运行PWB在计算机C 盘上具体使用方法结合实例介绍 软件实验部分 本部分共进行4次实验 实验内容如下 实验一BCD码的运算 一 实验目的1 熟悉在MASM611集成环境下建立 汇编 链接 调试和运行汇编语言程序的全过程 2 掌握汇编语言程序结构中数据段 堆栈段 代码段定义及内存分配方法 3 学会DEBUG调试程序主要命令的使用方法 4 掌握用组合BCD码表示数据的方法 并熟悉其加 减 乘 除运算 二 实验内容1 多位十进制数加法 2 两位十进制数乘法 三 实验要求1 多位十进制数加法 在内存中以DATA1和DATA2为首址 各分配5个字节单元 分别存入两个8位组合BCD码数据 低位在前 将两数相加 结果送回到DATA2处 2 两位十进制数乘法 将被乘数和乘数以组合BCD码形式分别存放于DATA1和DATA2定义的节单元中 经乘法运算 乘积存入DATA3定义的两个内存单元中 3 用DEBUG调试程序 查看运算结果 进行手工验证 并且用DEBUG修改数据 重新执行 关于BCD码 十六进制数的说明 BCD码用4位二进制编码表示一个十进制数 又称二 十进制数 由于这4位二进制数的权值为8421 故也称BCD码为8421码 在计算机里 用一个字节的低4位表示一位十进制数 非组合BCD码 用一个字节表示两位十进制数 组合BCD码 在计算机里 所有的运算都是按二进制进行的 运算结果是二进制数 即十六进制数 为了把十六进制运算结果转换成十进制 汇编语言中引进了组合BCD码加法调整指令DAA和减法调整指令DAS DAA加法的十进制调整指令该指令之前要执行ADD或ADC 调整方法 若AF为1 或AL中的低4位是十六进制的A F 则AL内容加06H AF置1 若CF为1 或AL中的高4位是十六进制的A F 则AL内容加60H CF置1 AF 辅助进位标志CF 进位标志 多位十进制数加法 modelsmall datadata1db11h 22h 33h 44h 00hdata2db99h 88h 77h 66h 00h code startupmovsi offsetdata1 设指针movdi offsetdata2clc 清进位movcx 5 设加法次数lop moval si 取第一加数adcal di 取第二加数daa 十进制调整mov di al 结果存入指定单元incsi 指针加1incdilooplop 循环 exitend 流程图 开始 清进位 设加法次数 十进制调整 部分和回送 指向下单元数 ALAL 第二加数 CF CX 1 0 结束 Y N 两位十进制数乘法 modelsmall 586 datadata1db34hdata2db56hdata3dw1dup code startupmovbl data1 第一乘数转换成16进制数movbh blandbh 0fhandbl 0f0hmovcL 4shrbl cLmoval 10mulbladdal bhmovzxcx al 置加法次数计数器 movbl data2 第二乘数做BCD加法 加第一乘数次movax 0clclop addal bldaaxchgah aladcal 0daaxchgah allooplopmovdata3 ax 积送乘积存储单元nopnopnop exitend 两位十进制数乘法流程图 开始 分离出第一乘数的 个位 分离出第一乘数的 十位 第一乘数的 十位 移到 个位 后 再乘10 合成得到16进制的第一乘数 BCD码转换成16进制数 1 1 清进位 第二乘数做加法次数 十进制调整 AL与AH内容交换 AL与AH内容交换 十进制调整 CX 1 0 N Y 存储结果 结束 一 实验目的掌握循环结构程序的设计 调试 二 实验内容1 多字节无符号数加法 2 设计一软件延时器 并在屏幕上显示软件延时倒计时过程 三 实验要求1 多字节无符号加法 在DATAS中存放10个双字节无符号数 用循环结构设计程序 通过程序运算 把这10个双字节无符号数相加 其和存入紧邻加数之后的四个单元中 2 软件延时器 做一延时约1秒的软件延时器 在屏幕上按9 8 0顺序显示软件延时倒计时过程 实验三循环结构程序 有关问题的说明 循环程序的三个组成部分 循环初始状态设置 设置循环次数 为循环体正常工作建立初始状态等 循环体 循环工作的主体 包含循环的工作部分和修改部分 循环的工作部分是为完成程序功能而设计的程序段 循环的修改部分是为保证每一次重复时 参加执行的信息能发生有规律的变化而建立的程序段 循环控制部分 选择一个循环控制条件来控制循环的运行和结束 循环程序的结构 循环初始状态 循环控制条件 循环体 Y N 循环初始状态 循环体 循环控制条件 Y N DO WHILE结构 DO UNTIL结构 子程序结构 procedurenamePROCAttributeRETprocedurenameENDPAttribute NEAR调用程序和过程在同一个代码段中 FAR调用程序和过程不在同一个代码段中 系统功能调用 系统功能调用是DOS为方便汇编语言编写而提供的一组约80个功能调用的常用子程序 它分为设备管理 文件管理和目录管理等几类 DOS规定用软中断指令INT21H进入各功能调用子程序的总入口 再为每个功能调用规定一个功能号 以便进入相应各自子程序的入口 系统功能调用的使用方法 EX1 从键盘输入单字符MOVAH 01H 1号功能调用INT21H将键盘输入字符的ASCII码送到AL EX2 从键盘输入字符串BUFDB10DUP LEADX BUFMOVAH 0AH 0A号功能调用INT21H将键盘输入的字符串写到RAM中去 击回车键表示字符串结束 字符数与予留空间的关系为 少补零多丢失 EX3 输出单字符MOVDL M MOVAH 02H 2号功能调用INT21H将DL中字符从屏幕上显示出来 EX4 输出字符串BUFDB Thankyou MOVDX OFFSETBUFMOVAH 09H 9号功能调用INT21H将指定RAM缓冲区中的字符串从屏幕上显示出来 为字符串结束符 EX5 直接控制台输入 输出单字符MOVDL 0FFH DL 0FFH时 MOVAH 06H 6号功能调用INT21H 将键盘输入字符送到AL中 MOVDL M DL 0FFH时 MOVAH 06H 6号功能调用INT21H 将DL中字符送到屏幕上显示 多字节无符号数加法 MODELSMALL 586 DATADATASDW1111H 2222H 3333H 4444H 5555HDW6666H 7777H 8888H 9999H 0AAAAHRESULTDD1DUP CODE STARTUPMOVSI OFFSETDATAS 设指针MOVCX 10 累加次数MOVEAX 0 清累加器LOP MOVBX SI 取加数到BXMOVZXEBX BX 将BX扩展成32位ADDEAX EBX 加INCSI 改指针INCSILOOPLOP 循环加MOVRESULT EAX 存结果 EXITEND 开始 清进位 将BX扩展为32位 SI指向下一加数 CX 1 0 N Y 存结果 结束 软件延时器 modelsmall datadatadb20h 20h 20h 20h 20h 39h 0dh code startupmovcx 0Ah 设循环次数lop movah 09h 显示功能调用leadx dataint21hcallnearptrdelay 调用延时子程序decdata 5 修改显示数字looplop exitDelayprocnearusescx 延时子程序movbx 06ffh 设第二时常数Delay1 movcx 0hloop 自身循环CX次decbx 第二时常数减1jnzdelay1 不为零循环retDelayendpend 开始 字符串显示功能调用 延时子程序调用 显示数字修改 CX 1 0 N Y 结束 主程序流程 延时子程序流程 实验四排序程序 一 实验目的1 学习无符号数比较大小指令 2 掌握多重循环编程方法 3 掌握汇编语言编写排序程序的思路和方法 二 实验内容1 单字节无符号数排序 2 去极值滤波 三 实验要求1 单字节无符号数排序 DATANUM单元开始存放单字节无符号数 表示要排序数据的个数 DATAS单元开始存放要排序的数据 数据个数至少10个 程序运行之后 这些数据按照由小到大的顺序仍然存放于DATAS单元开始的位置 2 去极值滤波 某控制系统为了抗干扰 采用去极值滤波法处理采集数据 取连续6个A D采样值 12位 双字节 低12位 要求去掉最大值和最小值 将余下4个数求平均值 用该平均值代表当前时刻系统状态的真值 试编一程序完成这个滤波过程 单字节无符号数排序 流程图 开始 数据指针SI置0 前数与后数比较 前数 后数 前 后数交换 数据指针SI指向下一数 数据指针SI指向下一数 Y N BL 1 CX 1 0 CX 1 0 N N Y Y ZF 1 N 结束 Y modelsmall 586 datadatanumdb10datasdb21h 13h 4h 5h 7hdb6h 8h 20h 9h 11h code startupmovbl datanumdecbllop0 movzxcx blmovsi 0lop moval datas si cmpal datas si 1 jajhincsilooplopjmpnext jh xchgal datas si 1 movdatas si alincsilooplopnext decbljzfinishjmplop0finish nop exitend 去极值滤波 modelsmall 586 datadatanumdb6datasdw0123h 0abch 0234hdw0345h 0456h 0567h code startupcallpx 排序movsi offsetdatas 2 掐头去尾送指针movcx 4 送累加次数clc 清进位movax 0 取首数qh adcax si 累加incsiincsiloopqhshrax 2 除4mov datas ax 存结果到DATAS首位 exit pxprocnearmovbl datanum 取字长decbllop0 movzxcx bl 送比较次数movsi 0lop movax datas si 送前数cmpax datas si 2 与后数比较jajh 前大于后 转交换incsiincsi 指针加1looplop 循环比较jmpnext 一轮排序完jh xchgax datas si 2 交换movdatas si axincsiincsilooplopnext decbl 修改比较次数jzfinishjmplop0finish nop 结束retpxendpend 实验五分支程序 一 实验目的掌握分支程序编程方法 复杂分支程序的查表法等 二 实验内容1 学生课程成绩分段统计 2 键盘及屏幕显示功能调用 三 实验要求1 学生课程成绩分段统计 用单字节表示每个学生的学号 学生的课程成绩用两位十进制数表示 最低0分 最高99分 规定0F0H表示作弊 0F1H表示缺考 0FFH为一组学生成绩的结束符 学生成绩在内存的存放形式为 学号 成绩 每个学生占两个字节 从内存SCORE为首址开始存放 要求学生人数不少于10个 试编程序 按0 9 10 19 20 29 80 89 90 99及作弊 缺考等12种情况把学生的课程成绩进行分段统计 将统计结果存入以COUNT为首址的12个单元中 2 试编一程序扫描键盘 当B键按下时 在屏幕上显示0 9循环计数 S键按下时停止计数 再按B键继续计数过程 E键按下时退出程序 3 用DEBUG调试程序预置数据和查看程序运行结果 以验证程序正确性 学生课程成绩分段统计 开始 设置学号 成绩指针 取学号 取成绩 是结束标志 取十分位 并将十分值扩展为16位送DI 对DI所指统计区段统计值加1 是作弊 是缺考 修改指针 CX 1 0 1 1 作弊统计区段统计值加1 缺考统计区段统计值加1 结束 Y Y Y Y N N N N modelsmall 586 datascoredb1 10h 2 20h 3 30h 4 40h 5 50h 6 77h 7 70hdb8 80h 9 90h 10h 08 11h 0f0h 12h 0f1h 0ffhcountdb12dup code startupmovcx 30 送统计上限movsi 0 SCORE统计指针statistic moval score si 取学号cmpal 0ffh 判是否为结束jesta end 转统计结束movbl score si 1 取成绩cmpbl 0f0h 是否作弊jefake 是 转作弊处理cmpbl 0f1h 是否缺考jemiss 是 转缺考处理shrbl 4 取十分位movzxdi bl 将十分值扩展为16位送DIinccount di 相应区段统计值加1down incsi 改指针incsiloopstatistic 循环sta end nop 结束 exit fake movdi 10 作弊处理inccount di jmpdownmiss movdi 11 缺考处理inccount di jmpdownend 键盘及屏幕显示功能调用 开始 显示提示信息 置处理指针为 停止 调延时 键盘扫描程序 有键动 转处理指针处 B键 S键 E键 转处理指针处 结束 置处理指针为 计数 置处理指针为 停止 N Y Y Y Y N N N 处理指针为 计数 处理指针为 停止 计数显示 延时 键盘扫描程序 子程序定义 CX 1 0 N Y 监测键动 有键动 做键动标志BX 1 N Y modelsmall dataMess1db pressbbutton count 0dh 0ahmess2db presssbutton stop 0dh 0ahMess3db pressebutton exit 0dh 0ah countdb20h 20h 20h 20h 20h 30h 0dh code startupmovah 09h 显示提示信息movdx offsetmess1int21hmovsi stop 设处理指针scan callnearptrdelay 调延时 键扫程序orbx bx 判有无键动jnzscan1 有键动 转键处理jmpsi 无键动 转当前处理程序scan1 cmpal b 键处理程序jeb proccmpal s jes proccmpal e jee proccalldelayjmpsib proc movsi count B键处理jmpscans proc movsi stop S键处理jmpscane proc nop E键处理nop exit count inccount 5 修改显示数字moval 3ah 比较超限cmpal count 5jadown 若不超限 调显示movcount 5 30h 超限 设启始值down movah 09h 显示功能调用leadx countint21hjmpscanstop jmpscannopDelayprocnearusescx 延时子程序movbx 380h 设第二时常数delay1 movcx 0hloop 自身循环CX次movdl 0ffh 监测键动movah 06hint21hjnzkey ret 若有键动 延时终止 转键处理decbx 第二时常数减1jnzdelay1 不为零循环jmpdelay retkey ret movbx 1 做键动标志delay ret retDelayendpend 硬件实验部分 本部分共进行3次实验 实验内容如下 1实验六并行接口技术实验2实验七8254定时 计数器实验3实验九A D转换实验 下面根据实验台实物介绍实验台 特别说明 为了方便实验 实验台设计时已将实验用相关器件的地址线 数据总线及除片选 CS 外的控制线连接到位 并在每一个实验电路附近予留有若干信号连线插孔 或插针排 实验时只要将相应插孔用单股导线 或相应插针排用扁平电缆 对应相连即可组成完整的实验电路 在给出的实验电路图中 线路所带小圆圈即表示连线插孔 各芯片的片选 CS 可用单股导线连接 也可通过将8位铅笔开关的对应位置ON连接 硬件实验注意事项 1 在实验台断电条件下 才能用单股导线 或扁平电缆 连接电路 2 线路连接完成 检查确认没有错误后 再开通实验台电源 3 用单股导线连接电路时 要将单股导线线头整直 并确认线头没有断裂 4 实验完成后 关断实验台电源 再抓住导线 或扁平电缆 的根部 一根一根垂直拔掉连接导线 或扁平电缆 并把连接导线 电缆整好放入线盒 实验六并行接口技术实验 一 实验目的1 掌握8255A并行接口的基本使用方法 2 理解数码管扫描显示原理 学习数码管扫描显示方法 二 实验内容1 用8255A作为并行接口 从8255A的一个端口输入开关量到CPU或内存 再将这一数据通过数据总线和8255A的另一个端口扫描输出到数码管 设8255A的A口为输入方式 接逻辑电平开关 8255A的B口为输出方式 通过MC1413驱动器接数码管的位选端 数码管的字划端通过74HC573与数据总线相连 逻辑电平开关K1 K6按1 6编号 试编一程序 用一位数码管指示出逻辑电平开关为 0 状态的开关编号 即当1号逻辑电平开关为 0 时 所选数码管显示 1 2号逻辑电平开关为 0 时 数码管显示 2 6号逻辑电平开关为 0 时 数码管显示 6 所有逻辑开关的初始状态为 1 2 设8255A的B口为输出方式 通过MC1413驱动器接数码管的位选端 数码管的字划端通过74HC573与数据总线相连 试编一动态扫描程序 让6个数码管 同时 点亮 显示 1 2 3 4 5 6 三 实验电路及设计1 实验电路图 2 实验连线 1 逻辑电平开关输出孔K1 K6对应连接到8255A的PA0 PA5 2 8255A的PB0 PB5对应连接到数码管的位选端SM0 SM5 3 数据总线D0 D1 D2 D3 D4 D5 D6 D7对应连接到数码管的字划端a b c d e f g dp 4 8255A的片选端CS8255连到译码控制单元的CS1 0C800H 5 74HC573的使能端smglt CS573 连到译码控制单元的SMGLT C820H 3 8255A的端口地址PA口 C800H PB口 C801H PC口 C802H 控制寄存器 C803H 4 数码管编码表 0 3FH 1 06H 2 5BH 3 4FH 4 66H 5 6DH 6 7DH 7 07H 8 7FH 9 6FH A 77H B 7CH C 39H D 3EH E 79H F 71H 有关问题的说明 数码管 共阴 DP DP 共阴 地 不闭合 数码管就点不亮 多个数码管扫描显示 多个数码管扫描显示 限流电阻 锁存器 JM3 JM2 JM1谁为 谁连接的数码管就显示锁存器当前锁存的值 所谓扫描显示是 对 个数码管 给锁存器送第 个数码管显示内容 而后第 个数码管公共端接低 延时 给锁存器送第 个数码管显示内容 而后第 个数码管公共端接低 延时 给锁存器送第 个数码管显示内容 而后第 个数码管公共端接低 延时第 步后 再从 开始 周而复始 那么 JM3 JM2 JM1是互斥的了 连接数据总线D7 D0 驱动器 实验6 1 74HC573锁存器 A口 K6K5K4K3K2K1开关 ABCDEFGDP A口 开始 初始化8255 点亮一位数码管 读键盘 有 键 读开关量 并取反 位扫描 确定 开关 号 取对应 开关 号的字型码 输出对应的数字 结束 CS8255 CS1 CS573 SMGLT k1 k6 PA0 PA5 SM0 SM5 PB0 PB5 D0 D7 A B DP modelsmall 586p8255equ0C800h 片选地址p ctlequ90h 8255控制字s l aequ0C820h 573锁存地址 datatabledb3fh 06h 5bh 4fh 66h 0 1 2 3 4字型db6dh 7dh 07h 7fh 6fh 5 6 7 8 9 code startupmovdx p8255 3 8255初始化moval p ctloutdx almovdx p8255 1 点亮数码管SM0moval 01houtdx al lop movah 06h 键入 e 结束执行movdl 0ffhint21hcmpal e jescan endmovdx p8255 读开关inal dxnotalmovzxax albsfbx ax 从ax低位起扫描 将第一个 为1的位号存BXxchgal blmovbx offsettable 读字型码xlat 查表 BX AL 送ALmovdx s l a 输出对应的数字outdx aljmplop 循环扫描scan end exitend 实验6 2 限流电阻 DbusD7 D0 8255 MC1413驱动器 B口 DbusD7 D0 SMGLT CS8255 74HC573锁存器 ABCDEFGDP 开始 初始化 查表取显示数字字型码 显示字型码送锁存器 输出 取对应数码管字位 并输出 下一扫描位置 扫描位数 调延时 读键盘 有键动 结束 延时程序流程见前 CS8255 CS1 CS573 SMGLT SM0 SM5 PB0 PB5 D0 D7 A B DP modelsmallp8255equ0C800H 片选地址p ctlequ10010000B 8255控制字s l aequ0C820H 573锁存地址 datatabledb3FH 06H 5BH 4FH 66H 0 1 2 3 4db6DH 7DH 07H 7FH 6FH 5 6 7 8 9 code startupmovdx p8255 3 发控制字moval p ctloutdx almovcl 1 设扫描位置 lop moval cl 取显示数字movbx offsettable 读字型码xlatmovdx s l a 输出字型码outdx almoval 10000000brolal cl 左循环移位movdx p8255 1outdx al 送B口控制的数码管位incclcmpcl 6jbedown 若显示位置大于等于6 返回启始位置1movcl 1down calldelaymovah 06 判有键动 跳出循环movdl 0ffhint21hjnzscan endjmplop 循环扫描scan end nop exit delayprocnearusescx 延时子程序movbx 02hdelay1 movcx 0hloop decbxjnzdelay1retdelayendpend 实验七8254定时 计数器实验 一 实验目的1 掌握8254定时 计数器的基本使用方法 2 了解8254定时 计数器利用级连扩大计数范围的方法 3 了解多I O芯片协同工作的原理和方法 二 实验内容1 将8254定时器0设置为方式2 分频 定时器1设置为方式3 方波 定时器0的CLK0端接1M时钟 定时器0的输出脉冲作为定时器1的时钟输入 将定时器1的输出脉冲接在一个LED灯上或风鸣器上 编程使8254工作 观察灯的状态或风鸣器声响 2 用8254做秒信号源 用8255A控制交通灯的红绿变化 完成一交通灯控制系统 使每10秒切换一次通行方向 三 实验电路及设计1 实验电路图 2 实验内容1 实验连线 1 8254的GATE0 GATE1接高电平 2 8254T0的CLK0接1M时钟孔 3 8254T1的CLK1接T0的OUT0 4 8254的片选端CS8254连到译码控制单元的CS2 5 8254T1的OUT1接LED灯或风鸣器的输入端BJ孔 3 实验内容2 实验连线以下连线假设8255A的A口为输入方式 B口为输出方式 8255A的PA1连接8254T1的OUT1 8255A的B口控制交通灯的八只LED灯 1 连线同 实验内容1 的 1 4 2 8254T1的OUT1接8255A的PA1孔 3 8255A的PB7 PB0对应连接到交通灯的RW GW RN GN RE GE RS GS灯 4 8255A的片选端CS8255连到译码控制单元的CS1 5 JTD接高电平 4 8254和8255A的端口地址8254的端口地址 定时器0分频系数寄存器0C804H 定时器1分频系数寄存器0C805H 定时器2分频系数寄存器0C806H 控制寄存器0C807H 8255A的端口地址 PA口 0C800H PB口 0C801H PC口 0C802H 控制寄存器 0C803H 8254 OUTGATECLKT0 DbusD7 D0 CS8254 CLK 1MHz OUTGATECLKT1 OUTGATECLKT2 Vcc 实验 1 cs8254 CS2 clk0 1M out0 CLK1 out1 BJ或L1 gate0 K1 令k1 1 gate1 K2 令k2 1 MODELSMALLCS8254EQU0c804HT0 CTLEQU00110100B 对T0两次读写 先低后 高 T0为方式2 分频 T1 CTLEQU01110110B 对T1两次读写 先低 后高 T1为方式3 方波 DATAT0 DATADB0FFH 040HT1 DATADB0FFH 0 CODE STARTUPMOVDX CS8254 3 初始化T0MOVAL T0 CTLOUTDX ALMOVDX CS8254 给T0低字节装计数初值MOVAL T0 DATAOUTDX ALMOVAL T0 DATA 1 给T0高字节装计数初值OUTDX ALMOVDX CS8254 3 初始化T1MOVAL T1 CTLOUTDX ALMOVDX CS8254 1MOVAL T1 DATA 给T1低字节装计数初值OUTDX ALMOVAL T1 DATA 1 给T1高字节装计数初值OUTDX AL EXITEND 实验 开始 8254T0初始化 给8254T0装初值 8254T 初始化 给8254T 装初值 8255初始化为A口入 B口出 8255B口输出方向初值 读8255PA1 测试8255PA1 PA1 读8255PA1 测试8255PA1 PA1 控制换向8255B口输出方向值 检查键盘 有键盘动 结束 cs8254 CS2 clk0 1M out0 clk1 out1 8255的PA1 gate0 k1 令k1 1 gate1 k2 令k2 1 JTDCS k3 令k3 1 JTD k4 令k3 1 cs8255 CS1 8255 PB7 PB0 RW GW RN GN RE GE RS GS MODELSMALLT8254EQU0c804HT0 CTLEQU00110100BT1 CTLEQU01110110Bp8255equ0c800H 片选地址p ctlequ10010000B 8255控制字 DATAT0 DATADB0FFH 040HT1 DATADB0FFH 0dir dataDB5ah CODE STARTUPMOVDX T8254 3 8254T0初始化MOVAL T0 CTLOUTDX ALMOVDX T8254 给8254T0装初值MOVAL T0 DATAOUTDX ALMOVAL T0 DATA 1OUTDX ALMOVDX T8254 3 8254T1初始化MOVAL T1 CTLOUTDX ALMOVDX T8254 1 给8254T1装初值MOVAL T1 DATAOUTDX ALMOVAL T1 DATA 1OUTDX AL movdx p8255 3 8255为A口入 B口出moval p ctloutdx almovdx p8255 1 8255B口输出方向初值moval dir dataoutdx albit test0 扫描上升沿movdx p8255inal dxtestal 2 测试8255PA1 等待PA1 0jzbit test1 PA1 0转jmpbit test0 PA1 1再测 bit test1 movdx p8255inal dxtestal 2 测试8255PA1 等待PA1 1jnzdir ctl 有上升沿转jmpbit test1 上升沿没到再测dir ctl moval dir data 方向控制notal 换向movdir data almovdx p8255 1 8255B口输出方向值outdx almovah 06h 检查键盘movdl 0ffhint21horal al 有键盘输入转jnzdir endjmpbit test0dir end EXITEND 实验九A D转换实验 一 实验目的学习模 数转换器使用方法 理解模 数转换原理 二 实验内容1 给A D转换器输入一可调节的电压信号 假设该输入信号为一水塔的水位高度信号 请结合应用8255A接口芯片 编程完成以下功能 当水位低于PL时开报警 并打开水泵 点亮一指示灯 水位在PL PH之间时关闭报警 水位高于PH时开报警 并关闭水泵 指示灯熄灭 设PH 0B4H 约3 5V PL 66H 约2 0V 2 用A D转换器对电压信号V4连续采集4次 求出均值 放入指定单元 并把采集均值转换为电压 通过8255在数码管上显示 三 实验电路及设计1 实验电路图 实验内容1 实验连线以下连线假设8255A的A口为输出方式 8255A的PA6控制一LED灯 8255A的PA7控制报警风鸣器 1 A D转换单元的AD S连接译码控制单元的AD S c828H c82FH 2 A D转换单元的AD OE连接译码控制单元的AD OE c828H c82FH 3 A D转换器的IN0输入端连接到直流电压单元的Vdc孔 直流电压单元的旋钮WA顺时针旋转Vdc输出增大 逆时针旋转减小 4 8255A的片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论