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

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-14
MCS―51单片机p1端口上,经驱动器接有8只发光二极管,fosc=6MHZ,试编写程

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB EA
SETB ET0
MOV A,#0FEH
MOV P1,A
MOV R2,#20
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
RL A
MOV P1,A
MOV R2,#20
T0E:
RETI
END

LP:MOV P1,#81H ;点亮第1第8灯
LCALL DELAY
MOV P1,#42H ;点亮第2第7灯
LCALL DELAY
MOV P1,#24H ;点亮第3第6灯
LCALL DELAY
MOV P1,#18H ;点亮第4第5灯
LCALL DELAY
MOV P1,#24H ;点亮第3第6灯
LCALL DELAY
MOV P1,#42H ;点亮第2第7灯
LCALL DELAY
SJMP LP
可见执行结果是:LED由外向内,再由内向外点亮

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;
}
程序的关键给你了,不要依靠别人全部做出来,没意义。
希望我的回答能帮助到你。

#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<i);
       if(++i==8)i=0;
   }
}
void main(void){
   TMOD=0x01;
   EA=ET0=RT0=1;  
   while(1);
}



  • 51系列单片机的含义是什么?
    答:众多公司推出了51系列的兼容产品,这些产品在当前乃至未来的市场上仍将占据重要地位。51单片机不仅是学习入门的基础选择,也是最广泛使用的一款单片机。值得注意的一点是,52系列的单片机通常不支持片上自编程能力。目前主流的51系列单片机产品包括:Intel的80C31、80C51、87C51,80C32、80C52、87C52等;ATMEL...
  • 单片机的种类是AT89C51单片机?
    答:ST62系列提供多种不同规格的单片机以满足各种需要,存储器从1KB到8KB,有ROM、OTP、EPROM、E2PROM、Flash E2PROM,I/O接口从9个到22 个,引脚从16 个到42个,还有 ADC、LCD 驱动、看门狗、定时器、串行口、电压监控等部件。ST62 单片机采用独特的制造工艺和技术,大大提高了抗干扰能力,能适应于...
  • 51单片机可以用reg52.h的头文件吗
    答://低8位地址总线/数据总线(一般不用而只作普通I/O口,注意作I/O口用时,硬件上需接上接电阻)sfr P1 = 0x90; //准双向 IO口 P1口sfr P2 = 0x...51525354555657sfr TL0 = 0x8A; //定时器/计数器0高8位 容器 加1 计数器sfr TL1 = 0x8B; //定时器/计数器1高8位 容器sfr TH0 = 0x8C;...
  • 80c五一单片机中,地址总线是由哪两个并行口提供的?
    答:在标准51架构中,外部地址总线是由P0口和P2口提供的。其中P0口是地址总线/数据总线的复用端口。
  • 以51为内核的单片机有哪几种?它们与MCS-51单片机有什么区别?
    答:答: 目前流行的以 MCS-51 为内核的单片机产品, ATMEL 公司的 AT89C 系列 ;如: PHILIPS 公司的 8XC51 系列 ;WINBOND 公司的 W77/78 系列。 一.AT89 系列单片机是基于 80C51(或 80C52)内核的,但内含有 AT 公司最令人注目的、 独具特色的、FLASH 技术的程序存储器。 AT89 系列又可分为两种类别:一种是...
  • MCS-51单片机有哪些类型,其主要区别是什么?
    答:MCS-51单片机类型 1、根据单片机内部程序存储器的配置不同分为:(1)无ROM(ROMless)型:8031、80C31、8032、80C32 (2)带MaskROM(掩模ROM)型:8051、80C51、8052、80C52 [1](3)带EPROM型:8751、87C51、8752 (4)带E2PROM型:8951、89C51、8952、89C52 2、根据单片机内部存储器的容量配置不同 ...
  • 求文章 51单片机
    答:从上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。8051与80C51的区别:80C51单片机是...
  • 单片机sfr和sbit有什么区别
    答:一开始单片机没程序的时候,单片机不认得什么叫P1口 .他只知道P1口的8只引脚,是连着内部地址0x90..简洁来说就是,P1口这些引脚就是0x90地址延伸出来的引脚,在没程序的情况下,单片机是不知道什么叫P1口的,他只知道0x90地址和外部的引脚,就这么连着。.这样说的话,你也可以拿着0x80,0x90,...
  • 松下交流伺服驱动器上电就出现22号报警,为什么
    答:日本松下电机制作所推出的小型交流伺服电动机和驱动器,其中大惯量系列适用于数控机床,中惯量系列适用于机器人(最高转速为3000r/min,力矩为0.016~0.16N.m)。还推出小惯量 系列。20世纪90年代先后推出了新的A4系列和A5系列。由旧系列矩形波驱动、8051单片机控制改为正弦波驱动、80C、154CPU和门阵列...
  • stc89c52单片机和51单片机的区别
    答:1、种类不同:51系列单片机是指51内核,stc89c5X基本都是51内核的种类。2、大小不同:最后一个数字表示E2prom的大小,E2prom=X*4K,c51就是4K,c52就是8k。3、配件不同:52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型。如下图,可以很清晰的看出两者之间...