您的位置 首页 数字

51单片机体系使用

应用1:设有51应用系统连接如附图。试说明该系统分别执行如下程序段A和程序段B时,与P10端口连接的LED如何显示变化?对应程序段A和程序段B

使用1:设有51使用体系衔接如附图。试阐明该体系别离履行如下程序段A和程序段B时,与P1.0端口衔接的LED怎么显现改变?对应程序段A和程序段B的显现改变有何差异?

程序段A:

LP: CPL P1.0

MOV R0,#0

DJNZ R0,$

JMP LP

程序段B:

LP: SETB P1.0

DJNZ R0,$

CLR P1.0

DJNZ R0,$

DJNZ R0,$

JMP LP

答:对应程序段A和程序段B,LED都将周期性改换亮灭状况。每个亮灭改换周期内,对程序段A,LED持续亮的时刻与持续灭的时刻长度相同;对程序段B,LED持续亮的时刻是持续灭的时刻长度的2倍。程序段B时的LED亮灭周期约为程序段A时的LED亮灭周期的1.5倍。

使用2:设有51使用体系衔接如使用1附图,且体系所用晶振频率为12MHz。试编写程序段使用51单片机的守时/计数器1完成衔接在P1.0上的LED的显现状况每隔10秒钟翻转一次。

答:

MOV TMOD,#20H;T1守时方法2:8位主动重装入

MOV TH1,#(256-250) ;守时周期250us(对应12MHz晶振,每个机器周期=1us)

MOV TL1,TH1

CLR TF1;清T1溢出标志

SETB TR1;发动T1计时

MOV R0,#0;R0用于累计T1溢出的次数

MOV R1,#0;R1用于累计R0到达200的次数

LP:JBC TF1,L1;假如TF1为1则清零TF1并转去进行溢出次数累计

JMP LP;循环等候T1溢出

L1:INC R0;累计T1溢出次数

CJNE R0,#200,LP;未到达200次则转去等候下一次溢出

MOV R0,#0;保证R0的值在0~199之间

INC R1;累计时刻到达50ms的次数(250us*200=50ms)

CJNE R1,#200,LP;累计时刻未到达10s则转去等候下一次溢出

MOV R1,#0;保证R1的值在0~199之间

CPL P1.0;累计时刻已到达10s,则翻转P1.0状况1次(50ms*200=10s)

JMP LP;持续循环累计时刻

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/258256.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部