版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.13 解:将3个中断源的中断请求经过与门连接到MCS-51的外部中断0的输入引脚INTO士 o3、2、1中断源的输入引脚分别接到PI.O、PI、P1.2引脚上,以备查询。程序如下:XI EQU 2000H;定义中断源 1的入口地址X2 EQU 2100H;定义中断源 2的入口地址X3 EQU 2200H;定义中断源 3的入口地址ORG 0000HLJMP STARTORG 0003HLJMP INTOOSTART:INTOO: JB P1.0, LP1;查询中断源,若此中断源无中断则转LP1UMP 2200H;转入相应的中断服务LP1: JB P1.1,LP2;查询中断源,若此中断源无中断
2、则转LP2LJMP 2100H;转入相应的中断服务LP3: LJMP 2000H;转入相应的中断服务XI:RETIX2:.RETIX3:RETI3.19 解:选用定时器/计数器TO作定时器,输岀为P1.0引脚,2ms的方波可由1ms的高低电平相间隔而成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。程序如下:ORG 0000HLJMP STARTORG 000BHLJMP TOINT;TO中断入口ORG 0030HSTART : MOV SP,#60H;初始化程序MOV THO, #0FEH;TO赋初值MOV TLO, #0BHMOV TMOD, #01H;定时器/计数器0工作于方式1
3、SETB TRO;启动TOSETB ETO;开TO中断SETB EA;开总允许中断SJMP $TOINT : CPL P1.0MOV TLO, #0BHMOV THO, #0FE0HRETIEND3.20 解:程序如下 :ORG 0000HLJMP STARTORGOIOOHSTART : MOV SP, #60HMOV TMOD, #02HMOVTHO, #0E7HMOV TLO, #0E7HCLRP1.2SETB TROHIGHO : SETB Pl.2HIGH1 : JBC TFO, LOWO ; 50|is 至 U 清 TFO, 转 LOWOAJMP HIGH1 ;50As 未到,转
4、HIGH1 等待LOWO : MOV R7, #7 ; 3503=7x50*CLRP1.2 ;Pl.2=0 输出 350ps 低电平LOW1 : JBC TFO, LOW2 ; 50ps 至 U 清 TFO, LOW2AJMP LOW1LOW2 : DJNZ R7, LOW1 ;7 次未到转 LOW 1AJMP HIGHO ;7 次到转 HIGHOEND 3.21 解:选择 TO 工作于方式 1 定时 500|is12 12-6机器周期 T =lgs fosc=12MHzA(2A16 -X ) xlp,S=500gsX=65036=0FE0CH程序如下:ORG 1000HMOVTMOD, #0
5、1HMOVTHO, #0FEHMOV TLO, #0CHSETB TRODEL : MOV R7, #4;2ms=4x500|isD500 : JBC TFO, D2; 500|is 到清 TFO, 转移AJMP D500; 50pts 未到,等待D2: CPL P1.0MOVTHO, #0FEH ;重装初值MOVTLO, #0CHDJNZ R7,D500;4 次未到,转 D500CPL Pl.1AJMP DEL;4次至! J,转DELSJMP$END3.22 解:程序如下:ORG 0000HLJMP STARTORG 0030H;设TO为方式1, GATE=1START : MOVTMOD,
6、 #09HMOV TLO, #00HMOVTHO, #00HMOV RO, #4EHJB P3.2, $SETB TROJNB P3.2, $JB P3.2, $;等待P3.2变低;启动TO工作;等待P3.2变高;等待P3.2再次变低CLRTR9 ;停止计数MOV R0, TLOINC RO存放计数的二进制数低字节入4EH存放计数的二进制数高字节入;BCD码首址MOVRO, THOMOVR1, #50HMOVR5, #3CLR ALOOP1 : MOVR1, A ;清存 BCD 码单元INCR14EH;BCD码字节数DJNZ R5, LOOP1MOV R7, #10H;二进制数位数LOOP2
7、: MOV RO, #4EH ;二进制数首址MOV R6, #2;二进制数字节数CLRCLOOP3 : MOV A, R0RLC AMOV RO, AINC RODJNZ R6, LOOP3 ;2字节二进制数左移 1位MOV R5, #3; BCD码字节数MOVR1, #50HLOOP4 : MOV A, R1ADDC A, R1; BCD码乘2力廿C运算DAAMOVR1, AINCR1DJNZ R5, LOOP4DJNZ R7, LOOP2SJMP$END3.32 解:主程序框图如下COOH. C DELAY OOH C, OOH BB #0011SBUF.ccMU 1 #OFFHAADEL
8、AY :MOVR7,#8DIMOVR6,#250D2MOVR5,#250D3DJNZR5,D3DJNZ R6,D2DJNZ R7,DIRETEND3.33 解:采用查询方式编写发送程序如下SETBMOVAA : ACALLCPL MOV JC KfOV SIMP BB : MOV CCi AJMPORG 0000HLJMP STARTORG 0030HSTART : MOV SCON, #80H ;设定方式 2 发送MOV PCON, #80HMOV RO, #20H ;给待发送数据块地址指针RO置初值MOV R7, #16 ;给数据块长度计数器R7置初值LS : MOV A, R0 ;取一字
9、节数据送 AMOV C, PMOV TB8, C ;?随 A 变,P TB8MOV SBUF, A ;启动发送JNB TL $ ;查询发送标志,等待一字节发送完CLRTI ;清TI标志位DJNZR7, LSRETEND3.34 解:程序如下:ORG 0000HLJMP STARTORG 01 OOHSTART : MOV TMOD, #20H;设定 Tl 为模式 2 定时MOV TH1, #0F3H;送时间常数MOV TL1, #0F3HSETB TRI ;启动定时器 TlMOV SCON, #0D0H ;串行接口设定为方式3,并允许接收MOV RO, #30HMOV R7, #16JNB R
10、I, $ ;查询等待接收CLR RIMOV A, SUBF ;从串行接口中读取数据JNBP, PN ;对该字节进行查错处理若P=RB8无错,否则有错JNB RB8, PER ; 若 P=l, RB8=0,有'错,转岀错处理LJMP RIG ;若P=l, RB8=1,无错,转保存数据PN : JB RB8, PER ;若 P=0, RB8=1,有'错,转岀错处理RIG : MOV R0, A ;若P=0, RB8=0,无错,保存接收到的数据INC RODJNZ R7, LOOP ;16字节未接收完,则继续CLR 7F ;正确接收完16位数据,清岀错标志位7FSJMP $PER:
11、SETB 7F ;校验有错,置位 7FSJMP $END4.9 解:硬件连接电路图如图4.9所示。各芯片的地址范围为:2764 (1#) :0000H-1FFFH2764 (2#) : 2000H-3FFFH6264 ( 1#) : 4000H-5FFFH6264 (2#) :6000H-7FFFH图4.9 4.9题硬件连接电路图5.19 解:硬件电路连接图如图5.19所示。当 V0=2.5V程序如下:ORG 0000HLJMP MAIN0RG 01 OOHMAIN : MOV DPTR, #7FFFHNEXT : MOV A, #80HMOVX DPTR, AAC ALL DELAYMOV
12、R4, #04HMOV A, #40HMOVX DPTR, ALOOP:AC ALL DELAYDJNZ R4, LOOPAJMP NEXTDELAY :RETEND5.20 解:硬件电路连接图如图 5.20所示。CF 00-07一讥-G-ADC0609IW700-07rWRTAt£0EFOC图 5.205.20题逻辑电路图设80C51的时钟频率为12MHz,程序如下:ORG 0000HLJMPMAINORG001BHLJMPTl_lORG01 OOHMAINMOV SP,#60H ;设堆栈指针MOVR7, #100 ;置采集次数MOVRl, #30H ;:片外RAM地MOVR0,
13、#00H ;;片外RAM地MOVR2, #20 ;置入初值20 (计Is)MOVR3, #60 ;置入初值60 (计1 min)MOVTOMD, #10H;定时器T1工作于模式MOVTH1, #3CH;计数器初值MOV_TL1, #0B0HSETB EA ;开中断SETB ET1 ;定时器T1允许中断SETB TRI ;启动定时器 T1LOOP : SJMP LOOP ;等待中断DJNZ R7, LOOP ;是否到 100 次?SJMP $ORG 0200HTl:MOV TH1, #3CH ;中断服务程序,重新赋计数器初值MOV TL1, #0B0HDJNZ R2, RETI_0 ; Is 未
14、到,返回MOV R2, #20 ;重新置“100 s计数器初值DJNZ R3, RETI_0 ;1 min 未到,返回MOV R6, #8 ;8个通道计数器初值MOV DPTR, #7FF8H ; IN0 地址LOOP1 : MOVX DPTR, A ;启动 A/D 转换JB P1.0, $ ;判转换是否结束MOVX A, DPTR ;读取转换结果PUSH DPH ;将通道地址压入堆栈PUSH DPLMOV DPH, R1 ;将片外 RAM 地址送 DPTRMOV DPL, R0MOVX DPTR, A ;将转换结果存入片外RAMINC DPTR ;片外 RAM 地址增1MOV Rl, DPH
15、 ;保存片外 RAM 地址MOV R0, DPLPOP DPL ;恢复通道地址POP DPHINC DPTRDJNZ R6, LOOP1 ;8个通道是否采集结束RETI_0 : RETI ;中断返回END6.11 解:硬件连接电路图如图 6.11所示。图6.11 6.11题扩展键盘电路图程序如下 :ORG 1000HSERKEY: MOVSCON, #00H ; 设置串行口MOV A, #00H; 键盘初始化,送 OOH 到列线上LCALL VARTO ; 发送数据CHK: JNB P1.0, CHK0 ; 检查是否有键按下JNB P1.1.CHK0 ;检查是否有键按下JNB P1.2,CHK
16、0 ; 检查是否有键按下AJMP CHK ; 无键按下,继续查找CHKO: LCALL DLY1:调用10ms延时子程序,去抖JNB P1.0, CHEN; 确实有键按下,转 CHENJNB Pl.l, CHENJNB P12, CHENAJMP CHK ; 无键按下,继续查找CHEN: MOV R2. #OFEH ;首列扫描字送 R2,查键号,最低MOV R4, #00H: 首列偏移值送 R4CHKN: MOV A, R2 ; 发送列扫描字LCALL VARTOJB P1.0, CHI ; 检查 P1.0 有无键按下;若无,转MOV A, #0; 第一行首列值送 A, 00H+ (R4)AJMP CKEY ; 转求键号CHI: JB P1.1,CH2: 检查 P1.1 有无键按下;若无,转MOV A, #8; 第二行首列值送 ACH2: JBPl.1, NEXT ; 检查 Pl.1 有无键按下;若无,转MOV A. #16 ; 第三行首列值送 AAJMP CKEY : 转求键号CKEY: ADD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度个人房产买卖绿色环保装修合同3篇
- 远足活动课程设计
- 安全用电运行管理制度模版(2篇)
- 2025年影剧院消防安全管理制度(2篇)
- 2024年青岛版六三制新必修5语文下册阶段测试试卷
- 二零二五年度承包土地种植与农业电商平台合作协议2篇
- 2025年投资公司年度工作计划范文(2篇)
- 二零二五年度交通基础设施PPP项目合同2篇
- 2025年外研版三年级起点九年级化学下册阶段测试试卷
- 二零二五年度国际贸易财务担保合同示范(国际贸易保障)
- 石化行业八大高风险作业安全规范培训课件
- 村老支书追悼词
- DB3302T 1131-2022企业法律顾问服务基本规范
- 2022年自愿性认证活动获证组织现场监督检查表、确认书
- 中南大学年《高等数学上》期末考试试题及答案
- 付款通知确认单
- 2022年中国城市英文名称
- 小龙虾高密度养殖试验基地建设项目可行性研究报告
- 《桥梁工程计算书》word版
- 中考《红星照耀中国》各篇章练习题及答案(1-12)
- 舒尔特方格55格200张提高专注力A4纸直接打印版
评论
0/150
提交评论