单片机定时器实验报告C语言,51单片机定时器实验报告.doc

单片机定时器实验报告C语言,51单片机定时器实验报告.doc51单片机定时器实验报告51单片机定时器实验报告51单片机定时器实验实验内容:实验内容:编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。C语言程序#include#defineuintunsignedint#defineucahrunsignedcharsbitFM=P0^0;voidmain(){TMOD=0x01;TH0=(65535-50000)/256;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

51单片机定时器实验报告51单片机定时器实验报告

51单片机定时器实验

实验内容:

实验内容:

编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。

C语言程序

#include

#define uint unsigned int

#define ucahr unsigned char

sbit FM=P0^0;

void main()

{

TMOD=0x01;

TH0=(65535-50000)/256;

TH0=(65535-50000)%256;

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1;

while(1);

}

void T0_time()interrupt 1

{

TH0=(65535-50000)/256;

TH0=(65535-50000)%256;

FM=~FM;

}

汇编程序

ORG 0000H

JAMP MAIN

ORG 000BH

LJMP INT0_INT

ORG 0100H

MIAN:SETB EA

SETB ET0

AJMP $

INT0_INT:MOV R2,#0FAH

MOV R3,#0C8H

DJNZ R3,$

DJNZ R2,INT0_INT

RETI

编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

#include

#define uint unsigned int

#define ucahr unsigned char

uint num,num1;

sbit FM=P0^7;

int shi,ge,a;

void delay(uint);

void shumaguan();

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表

void main()

{

TMOD=0x01;

TH0=(65535-50000)/256;

TH0=(65535-50000)%256;

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1;

while(1)

{

shumaguan();

}

}

void T0_time()interrupt 1

{

TH0=(65535-50000)/256;

TH0=(65535-50000)%256;

num1++;

if(num1==10)

{

num1=0;

num++;

shi=num/10;

ge=num%10;

if(num==100)

{

num=0;

}

}

}

void shumaguan()

{

P3=0x01;

P2=table[shi];

delay(5);

P3=0x02;

P2=table[ge];

delay(5);

}

void zuoyi()

{

a=~P3;

a=a<<1;

P3=~a;

if(P3==0xfb)

{

P3=0xfe;

}

}

void delay(uint x)

{

int i,j;

for(i=0;i

for(j=0;j<110;j++);

}

(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

#include

#define uint unsigned int

#define ucahr unsigned char

uint num,num1;

int shi,ge,a;

void delay(uint);

void shumaguan();

void zuoyi();

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表

void main()

{

TMOD=0x02;

TH0=255-200;

TH0=255-200;

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1;

P3=0x01;

while(1)

{

shumaguan();

}

}

void T0_time()interrupt 1

{

num1++;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号