永发信息网

80c51单片机P1端口上经驱动器接有8只发光二极管FOSC=6MHZ,试编写程序

答案:2  悬赏:20  手机版
解决时间 2021-11-23 00:20
  • 提问者网友:凉末
  • 2021-11-22 13:54
80c51单片机P1端口上经驱动器接有8只发光二极管FOSC=6MHZ,试编写程序
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-11-22 15:01
6MHz晶振的话,一个机器周期就是2us,采用定时器计数就会每隔2us计数一次,犹豫你没有指定使用什么工作方式,我暂且使用工作方式1吧,16位定时计数器,那么定时器初值就应为65536-25000,定时器初始化:
void inition()
{
TMOD=0x01;
TH0=(65536-25000)/256;
TL0=(65536-250000)%6;
EA=1;
ET0=1;
TR0=1;
}
中断程序:
void timer() interrupt 1
{
TH0=(65536-25000)/256;
TL0=(65536-250000)%6;
P1=00000001;
}
程序的关键给你了,不要依靠别人全部做出来,没意义。
希望我的回答能帮助到你。追答修正中断函数:
P1=00000001<<1;
全部回答
  • 1楼网友:詩光轨車
  • 2021-11-22 16:27

#include "reg51.h"
char i=0;  
void time0(void) interrupt 1
{
   TL0=(65536-50000)%0x100;//6M晶体此常数为100ms中断一次
   TH0=(65536-50000)/0x100;
   c++;
   if(c==10){
       c=0;
       P1=(1        if(++i==8)i=0;
   }
}
void main(void){
   TMOD=0x01;
   EA=ET0=RT0=1;  
   while(1);
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯