- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湘潭大学单片机编程题1.doc
编程题:
1.把8031片内RAM中起始地址为dada的数据串传送到外部RAM以buffer(16位地址)为首地址的区域,直到发现“$”字符的ASCII码(24H)为止。设数据串长度为32个字节,请编程实现。
2.设8031时钟频率f=6MHz,要求利用定时器T1工作方式1产生周期为500(s的等宽脉冲,并在P1.0端输出。请编写采用中断方式完成的程序.
解:1、 ORG 0000H
MOV R0 ,#dada
MOV DPTR ,#buffer
MOV R2,#20H
LOOP: MOV A,@R0
MOVX @DPTR,A
CJNE A ,#24H,NEXT
SJMP TORET
NEXT: INC R0
INC DPTR
DJNZ R2 ,LOOP
TORET: RET
3、用8255扩展8031的I/O口,8255的PB口接八位发光二极管,PC口接八位拨动开关。试编写一程序,将8255的PB口编程为输出口,8255的PC口编程为输入口,当开关为全“ON”(00H)时PB口上的发光二极管轮流点亮,当开关处于非全“ON”时,则把开关状态在发光二极管上显示出来。已知条件和有关要求:单片机晶振为6MHz,8255的控制口地址为FF2BH,发光二极管点亮时间为0.5秒,采用软件延时,且计数器统一用R6和R7。提示: DJNZ direct,rel为3字节,2机器周期指令,NOP为1机器周期空指令。
解: ORG 0000H
BEGIN:LJMP START
ORG 0030H
START:MOV A,#82H
MOV DPTR,#0FF2BH
MOVX @DPTR,A
MOV B,#01H
LOOP: MOV DPTR,#0FF29H
MOVX A,@DPTR
ANL A,#0FFH
CJNE A,#00H,SK1
MOV A,B
2.试以一片2764 和一片6264与8031单片机组成存储器扩展系统,要求采用全译码的方法,请画出逻辑连接图,并说明各芯片的地址范围。
解:
2764的地址范围:0000~1FFFH;6264的地址范围:2000H~3FFFH
2、串行口方式1异步通信的字符格式:
五、应用(第1小题16分,第2、3小题各10分,共36分)
1.根据某要求编写的程序清单给出如下:
ORG 8000H
BEGIN: LJMP START
ORG 8003H
LJMP INT-P
ORG 8030H
START: SETB IT0 ;外部中断0边沿触发
MOV A,#01H
MOV IE, #81H ;开外部中断
LOOP: MOV P1,A ;P1口计数方式输出
INC A
MOV R6, #0FFH ;延时
DEL: MOV R7, #0FFH
DEL1: DJNZ R7,DEL1
DJNZ R6,DEL
SJMP LOOP ;等待中断
INT-P: MOV DPTR,#0CFFFH ;中断服务
MOVX A, @DPTR ;读开关状态
RETI
END
程序中CFFFH为外设74LS244的口地址。要求:
(1)阅读程序,给程序加适当的注释; (2)依照该程序,编写符合以下要求的程序:
将8031的P1口作输入口,74LS377(地址为CFFFH)作输出口,8031的INT1接一单脉冲发生器,外部中断设置为边沿触发方式,累加器A作为计数器、复位的初态为1,每隔0.1秒计数器加1。计数器的值通过377输出到八位LED上显示出来。当INT1有单脉冲输入时产生一次中断,中断处理程序从P1口上读入新的值作为计数基值,以后在此值基础上计数 (fosc=6MHZ) 。
2、设8155扩展芯片的Tin端输入脉冲频率为2MHZ,试编写程序,使得在Tout输出端输出周期为1ms的方波程序,假定8155命令状态口地址为100H。
解:8155定时器预置初值计算如下:
8155定时器为减一计数器,预置
文档评论(0)