80C51 的晶振频率为6Mhz 设计延时1分钟的子程序

[复制链接]
查看11 | 回复2 | 2011-12-21 18:33:17 | 显示全部楼层 |阅读模式
这个如果你要精确定时,必须用定时器。定时器的初始化,你自己查下资料。用一个定时器就可以。然而,定时器的最大定时值只有65536×2us。也就是130ms左右。所以需要处理下,才能定时1分钟。你设置定时器的方式为16位定时器。定时长度为65536-50000.这样的话每过100ms就会产生一次中断。如果要1分钟。就需要中断10次。这样中断服务程序就这么写:voidtime0_isr(void)interrupt 1 using 1{
static charnum=0;
num++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%25...
回复

使用道具 举报

千问 | 2011-12-21 18:33:17 | 显示全部楼层
DELAY: MOV R1, #100 ;1T(1T表示一个机器周期,在6 MHZ频率下一个机器周期2微秒,下同)D1:MOV R2, #50 ;1T D2:MOV R3,#48;1TDJNZR3,$ ;2T DJNZ R2,D2 ;2TDJNZ R1,D1 ;2T RET;1TEND这...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行