p1口亮点实验c语言程序,《单片机原理及应用》实验指导书要点

四、实验说明

1、P0口作为通用接口时是一准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P0口用作输入口时必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。输出时需要接上拉电阻,P0口内部没有上拉电阻,若将外围电路设计为低有效,高无效,则无需再外接上拉电阻。

2、编写一个软件延时子程序,延时时间约0.5秒,采用三重循环实现,汇编语言程序如下:

DELAY: MOV R7, #198

DEL1: MOV R6, #50

DEL2: MOV R5, #23

DJNZ R5, $

DJNZ R6, DEL2

DJNZ R7, DEL1

RET

查指令表可知执行MOV指令需用1个机器周期,DJNZ指令需用2个机器周期,在11.0592MHz晶振时,一个机器周期时间长度为1.085μs,所以该段程序执行时间为:

[1+(1+2×23)×50]×198×1.085μs ≈ 500mS

3、若使用C语言,可用for循环实现延时,下面的程序延时约500mS。

void delay(void)

{ int i,j;

for(i=0;i<1000;i++)

for(j=0;j<50;j++)

{ _nop_(); _nop_();}

}

4、流水灯的主程序(汇编语言)为:

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: CLR P1.5 ; P1.5=0,关闭蜂鸣器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值