定时器/计数器实验报告
2016-08-18 09:48
253 查看
/*************************************************
实验名称:定时器实验一
实验目的:利用定时器/计数器让发光二极管以1HZ闪烁
*************************************************/
#include<reg52.h>
sbit P10 = P1^0;
unsigned char flag;
void main()
{
flag = 0;
P10 = 0;
TH0 = 0xfe;
TH0 = 0xff;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
{
if(flag == 1)
{
flag = 0;
P10 = ~P10;
}
}
}
void Timer_0() interrupt 1
{
TH0 = 0xfe;
TH0 = 0xff;
flag = 1;
}
/*************************************************
实验名称:定时器实验二
实验目的:利用定时器/计数器T1产生定时时钟,由P1口
控制8个发光管。使8个指示灯依次一个一个闪
动,闪动频率为10次/秒
*************************************************/
#include<reg52.h>
#include<intrins.h>
unsigned char Flag = 0;
sbit SPK = P2^3;
void main()
{
TMOD = 0x01;
TH0 = (65535-23040)/256;
TL0 = (65535-23040)%256;
EA = 1;
ET0 =1;
TR0 = 1;
P1 = 0x7f;
SPK = 0;
while(1)
{
if(Flag == 5)
{
Flag = 0;
P1 = _cror_(P1,1);
SPK = ~SPK;
}
}
}
void Timer0() interrupt 1
{
TH0 = (65535-23040)/256;
TL0 = (65535-23040)%256;
Flag++;
}
/*************************************************
实验名称:定时器实验三
实验目的:利用定时器以间隔500ms在6位数码管上依次
显示0、1、2、3。。。C、D、E、F,重复。
*************************************************/
#include<reg52.h>
sbit DUAN = P2^6;
sbit WEI = P2^7;
#define uchar unsigned char
#define uint unsigned int
//uchar code wei_table[]=
//{};
uchar code duan_table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar Flag = 0;
uchar i = 0;
void main()
{
TMOD = 0x01;
EA = 1;
ET0 = 1;
TH0 = (65535-46080)/256;
TL0 = (65535-46080)%256;
TR0 = 1;
while(1)
{
if(Flag == 10)
{
Flag = 0;
P0 = duan_table[i];
DUAN = 1;
DUAN = 0;
P0 = 0xff;
P0 = 0;
WEI = 1;
WEI = 0;
i++;
if(i == 16)
i = 0;
}
}
}
void Timer0() interrupt 1
{
TH0 = (65535-46080)/256;
TL0 = (65535-46080)%256;
Flag++;
}
实验名称:定时器实验一
实验目的:利用定时器/计数器让发光二极管以1HZ闪烁
*************************************************/
#include<reg52.h>
sbit P10 = P1^0;
unsigned char flag;
void main()
{
flag = 0;
P10 = 0;
TH0 = 0xfe;
TH0 = 0xff;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
{
if(flag == 1)
{
flag = 0;
P10 = ~P10;
}
}
}
void Timer_0() interrupt 1
{
TH0 = 0xfe;
TH0 = 0xff;
flag = 1;
}
/*************************************************
实验名称:定时器实验二
实验目的:利用定时器/计数器T1产生定时时钟,由P1口
控制8个发光管。使8个指示灯依次一个一个闪
动,闪动频率为10次/秒
*************************************************/
#include<reg52.h>
#include<intrins.h>
unsigned char Flag = 0;
sbit SPK = P2^3;
void main()
{
TMOD = 0x01;
TH0 = (65535-23040)/256;
TL0 = (65535-23040)%256;
EA = 1;
ET0 =1;
TR0 = 1;
P1 = 0x7f;
SPK = 0;
while(1)
{
if(Flag == 5)
{
Flag = 0;
P1 = _cror_(P1,1);
SPK = ~SPK;
}
}
}
void Timer0() interrupt 1
{
TH0 = (65535-23040)/256;
TL0 = (65535-23040)%256;
Flag++;
}
/*************************************************
实验名称:定时器实验三
实验目的:利用定时器以间隔500ms在6位数码管上依次
显示0、1、2、3。。。C、D、E、F,重复。
*************************************************/
#include<reg52.h>
sbit DUAN = P2^6;
sbit WEI = P2^7;
#define uchar unsigned char
#define uint unsigned int
//uchar code wei_table[]=
//{};
uchar code duan_table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar Flag = 0;
uchar i = 0;
void main()
{
TMOD = 0x01;
EA = 1;
ET0 = 1;
TH0 = (65535-46080)/256;
TL0 = (65535-46080)%256;
TR0 = 1;
while(1)
{
if(Flag == 10)
{
Flag = 0;
P0 = duan_table[i];
DUAN = 1;
DUAN = 0;
P0 = 0xff;
P0 = 0;
WEI = 1;
WEI = 0;
i++;
if(i == 16)
i = 0;
}
}
}
void Timer0() interrupt 1
{
TH0 = (65535-46080)/256;
TL0 = (65535-46080)%256;
Flag++;
}
相关文章推荐
- 定时器/计数器的提高实验报告
- 定时器/计数器的提高实验报告
- 南邮微机接口实验——8254定时器/计数器实验
- 定时器/计数器实验报告
- 定时器/计数器设计实验
- 定时器/计数器设计实验
- (单片机原理与应用)定时器/计数器设计实验
- 实验二:外部中断与定时器/计数器中断实验
- 第4周实验报告
- 第四周实验报告 任务四
- “Linux内核分析”实验报告(八)理解进程调度时机跟踪分析进程调度与进程切换的过程
- 2012C++程序设计实验报告【4.3】
- 2017-2018-1 20155332实验三 实时系统报告
- 第五周实验报告(1)
- 第五周实验报告1.2
- 20145220&20145209&20145309信息安全系统设计基础实验报告(4)
- Huffman 编码 实验报告
- 网络地址转换NAT实验报告二)
- C++程序设计实验报告【5.1.2】
- 编译原理课设实验报告