单片机·汇编初学者求教高手:80c51用定时器在p1.0管脚上产生一周期为2ms的方波,时钟频率为12MHz

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-09-10
假设系统时钟为12mhz,利用定时器在p1.0上产生周期为2ms的方波 求这道题的实验报告书

#include
sbit P10=P1^0;
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=-1000>>8;
TL0=-1000;
TR0=1;
while(1);
}

void intr_time0() interrupt 1
{
P10=~P10;
TH0=-1000>>8;
TL0=-1000;
}

丅MOD=0x00;
ET1=1;
EA=1;
TH1=(8192-125)/256;//125个脉冲250us
TL1=(8192-125)%256;
TR1=1;
中断程序中
TH1=……
TL1=……
LED=!LED//LED代表某个管脚取反

1、定时器工作方式0,1,2,3的TMOD=0x00,0x11,0x22,0x33
2、#include <reg51.h>
sbit out=P1^0; //定义方波输出脚
void main( void) //主函数
{
out=0; // P1.0输出为0
TMOD=0x01; //工作方式1,16位计数
TH0=0x03; //给定时器初值,周期为2ms,则半个周期为1ms
TL0=0xe8; //给定时器初值
EA=1; //打开中断
ET0=1; //允许中断
TR0=1; //启动定时器
while(1); //等待
}

void Time0(void) interrupt 1 using 2
{
out=!out; //P1.0取反
TH0=0x03; //给定时器初值
TL0=0xe8; //给定时器初值
}

我给你个C的程序:
/*********************************************************
程序名称:cyb
程序功能:采用中断方式,通过T/C0的工作方式0,在P1.0输出周期为2MS的方波
创建时间:2012-01-09
***********************************************************/
#include <reg51.h>
sbit out=P1.0; //定义方波输出脚
void Time0 (void); //T/C0中断函数声明
/*********************************************************
程序名称:void main()
程序功能:主函数,初始化CPU
创建时间:2012-01-09
*********************************************************/
void main( void) //主函数
{
out=0; // P1.0输出为0
TMOD=0x00; //工作方式1
TH0=0xe0; //给定时器初值
TL0=0x18; //给定时器初值
EA=1; //打开中断
ET0=1; //允许中断
TR0=1; //启动定时器
do{ }while(1); //等待
}
/*********************************************************
程序名称:void Time0(void)
程序功能:输出信号反向,重装计数初值
创建时间:2012-01-09
*********************************************************/
void Time0(void) interrupt 1 using 2
{
out=!out; //P1.0取反
TH0=0xe0; //给定时器初值
TL0=0x18; //给定时器初值
}
有什么不懂再问我,刚开始我也学的汇编,后来学C 了,感觉C比汇编要好学。

ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
ACALL INIT_INT0
AJMP $

INIT_INT0:
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#18H
SETB EA
SETB ET0
SETB TR0
RET

T0INT:
MOV TH0,#0FCH
MOV TL0,#18H
CPL P1.0
RETI

END

方式0,TMOD=#00H
方式1,TMOD=#01H
方式2,TMOD=#02H
方式3,TMOD=#03H

  • 单片机STC 80C52 中断 管脚
    答:include<reg52.h>main(){EA=1;EX0=1;IT0=1;//前者下降沿有效【较常用】(INT0=0;)这个高电平有效}void XXXX() interrupt 0{发光二极管亮}外部中断0引脚是P3^2,如果你选择INT0=1;则只要电平由高变低就有效(可以外接开关加接地按开关P3^2接地,中断生效),如果选择IT0=0;则要求P3^2由...
  • 8031与80C31有什么不同
    答:也就是51芯片的31脚控制着单片机程序从内部读取还是从外部读取,31脚接电源,程序从内部读取,31脚接地,程序从外部读取。其他无须改动。另外,AT89C51、AT89s51替换8031后因不用外存储器,不必安装原电路的外存储器和373芯片。80C31是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS...
  • 什么单片机可以替换80c196kc
    答:新的96系列单片机应该有兼容的,其它无法替代。
  • 80C52单片机的问题
    答:“80C52单片机相当于电脑的核”对 “虽然也有80C52这款单片机,但广义的说,他也可以包括AT89C52、STC等系列的单片机?他们有着类属的关系。”不是52是51……
  • 单片机--80C31.EA引脚接什么电平
    答:EA /Vpp——片外程序存储器访问允许信号,低电平有效.EA=1,选择片内程序存储器(80C51为4KB,80C52为8KB) ;EA=0,则程序存储器全部在片外而不管片内是否有程序存储器.对于片内无ROM的80C31/80C32单片机,应将EA引脚固定接低电平,以迫使系统全部执行片外程序存储器程序....
  • 80C552单片机能直接驱动数码管不?
    答:应该是不可以的,具体可以查手册,IoL和IoH,低电平输出电流和高电平输出电流,印象中在4mA左右,如果是静态显示,还勉强可以驱动高亮的数码管,如果动态显示,这个电流驱动能力太小了。
  • 80C451型号单片机,如何在keil里面创建工程?
    答:这个是Philips公司的单片机,在device 的数据库中找到;NXP (founded by Philips),选取80c451.
  • 我想知道现在大家都用什么级别的单片机,飞利浦的80c552是什么级别的...
    答:一般单片机很便宜,四五块钱吧,我用STC或ATMEL的8952
  • 求教单片机问题!!!
    答:ORG 0000H LJMP ED_1 ;这个程序是:先让P0.7口亮,循环20次后P0.6 ORG 1000H ;亮 ED_1:MOV R0,#20 ED_2:MOV A,#7FH MOV P1,A MOV A,#0FFH MOV P1,A DJNZ R0,ED_2 ;R0减1,等于#19,跳回ED_1,则 R0又等于#20,无限循环了 MOV A,#0BFH MOV P1,A LJMP ED...
  • 大家好 我想用keil v4来对单片机进行编程,但是我发现了里面没有at80c52...
    答:keil编译器对于51和ARM是分开的,估计是你下到keil for arm的IDE了,重新下一个51的安装