标题:
单片机中断程序计数定时 按12次取反
[打印本页]
作者:
CL2
时间:
2017-3-21 18:00
标题:
单片机中断程序计数定时 按12次取反
计数定时 源程序下载:
12.23.docx
(12.06 KB, 下载次数: 7)
2017-3-21 17:59 上传
点击文件名下载附件
中断程序
下载积分: 黑币 -5
//按12次取反
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit d=0x80;
void secha() interrupt 1 //中断
{
d=~d;//对P0.0的灯取反
}
void main()
{
TMOD=0x06; //初始化 方式2 8位自动重装
TH0=256-12;//高八位
TL0=256-12;//低八位
IE=0x82;//中断允许
TR0=1;//启动
while(1) ; //死循环
}
定时5s 只使用T0
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit d=0x80;//将P0.0的地址赋值给d
uint k;
void secha() interrupt 1 //中断
{
k++;
if(k>=250)//当k自加到250次的时候进入
{
k=0;
d=~d;//取反
}
TH0=0XB8;
TL0=0X00;
}
void main()
{
TMOD=0x01;//初始化 使用T0 使用方式1 16进制
TH0=0XB8;//延时20ms 上八位
TL0=0X00;//延时20ms 下八位
IE=0x82; //中断允许
TR0=1; // 启动
while(1);
}
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit d=0x80;//
sbit d1=0x81;
uint k;
void secha() interrupt 1
{
d=~d;
TH0=0XDC;
TL0=0X00;
}
void secha1() interrupt 3
{
d1=~d1;
TH1=(65536-250)/256;
TL1=(65536-250)%256;
}
void main()
{
TMOD=0x51;
TH0=0XDC;
TL0=0X00;
TH1=(65536-250)/256;
TL1=(65536-250)%256;
IE=0x8A;
TR0=1;
TR1=1;
while(1);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1