当前位置:首页 » 课程大全 » 定时中断程序课程设计

定时中断程序课程设计

发布时间: 2021-02-15 06:37:09

1. 单片机C语言定时中断程序设计,在线等

1,13位模式就是TOMD=0x00,不是TOMD=0x01(16位),
2,TR0=1 后,程序在往下走,定时器也在走,当中断来了后,中断,然后返回断点,不一定是TR0=1,
你的程序有漏洞,应在中断中,做一标志,如flag=1;
void Tim() interrupt 1
{
flag=1;
TR0=0;
sound=!sound; //将P3.7引脚输出电平取反,形成方波
TH0=(x-C)/y; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(x-C)%y; //可证明这是13位计数器TL0低5位的赋初值方法
}

while(1) //无限循环
{
while(f[i]!=0xff) //只要没有读到结束标志就继续播放
{
C=500000/f[i];
TH0=(x-C)/y; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(x-C)%y; //可证明这是13位计数器TL0低5位的赋初值方法
if(flag==1)
{
flag=0;
for(j=0;j<JP[i];j++) //控制节拍数
delay(); //延时1个节拍单位
i++; //播放下一个音符
TR0=1; //启动定时器T0
}
}
}
}

2. 如何编写定时器中断程序。。。c语言的~~~

/********************************************************************
* 文件名 : 定时器的使用.c
* 描述 : 相对前面的软件延时,定时器的延时更为精确。
定时时间可用光盘中的“51定时器计算.exe”计算。该软件
位于单片机开发辅助工具文件夹中。
相应的视频为“定时器的使用.exe”。
* 创建人 : 东流,2009年4月8日
* 版本号 : 2.0
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar Count = 0;
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code LED_W[8] = {0,4,2,6,1,5,3,7};
/********************************************************************
* 名称 : Time0_Init()
* 功能 : 定时器的初始化,11.0592MZ晶振,50ms
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0x4c;
TL0 = 0x00;
TR0 = 1;
}

/********************************************************************
* 名称 : Time0_Int()
* 功能 : 定时器中断,中断中实现 Count 加一
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Time0_Int() interrupt 1
{
TH0 = 0x4c;
TL0 = 0x00;
Count++; //长度加1
}

/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
uchar i = 0;
Time0_Init();
while(1)
{
P0 = table[i % 10]; //取 i 的个位
P2 = LED_W[0];
while(1)
{
if(Count == 20) //当Count为 20 时,i 自加一次,20 * 50MS = 1S
{
Count = 0;
i++;
break;
}
}
}
}

3. 51单片机定时器中断程序

再次重新启动。

4. 单片机定时中断程序

//晶振频率为24MHz,要求P1.0输出周期为2ms的方波,P1.1输出5ms的方波,占空比都为1:1.(高低电平一样的)。
//使用T0和T1两个定时计数器, 汇编或C都行。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

void init();
sbit P10 = P1^0;
sbit P11 = P1^1;
//----------------------------
main()
{
init();
while(1) { }
}
//----------------------------
void init()
{
TMOD = 0x11;
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
TR0 = 1;

TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
TR1 = 1;

ET0 = 1;
ET1 = 1;
EA = 1;
}
//----------------------------
void timer0() interrupt 1
{
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
P10 = ~P10;
}
//----------------------------
void timer1() interrupt 3
{
TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
P11 = ~P11;
}
//================================================

5. 这个定时器中断程序怎么编写

#include<reg51.h>
#defineucharunsignedchar
ucharsec,cnt;
sbitfmq=P1^0;
voidt0isr()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=20){cnt=0;sec++;P0=~sec;if(sec>=60)sec=0;}
if((sec%10)==0)fmq=0;
elsefmq=1;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

6. 单片机定时器中断程序,C语言程序设计

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar keyval;
uchar led1=0xfe,led2=0x55,led3=0x0f;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
switch(keyval)
{
case 1:
P0=led1;
led1=_crol_(led1,1)
break;
case 2:
P0=led2;
led2=~;
break;
case 3:
P0=led3;
led3=~led3;
break;
default:break;
}
}
main()
{
TMOD=0x01;
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
keyval++;
keyval%=4;
}
}
}

7. C语言定时中断程序

蜂鸣器程序这样做不好,不要用延时,而是将其放到中断程序里。(一次中专断就相当于一个延属时)。
其实,键盘扫描最好的方式也是放到中断里,这样就去掉了很多不必要的延时。(网上有现成代码)
延时子程序对于系统反应速度或者用户的体验,都会造成负面影响。

8. 用单片机的定时器及中断设计一个60秒的定时器

;数码管段选接P1口,位选接P2.0和P2.1,
;采用定时器T1定时10ms,60H为1s计数单元,计数100次为1s ORG 0000H ;程序从0地址开始回
LJMP MAIN ;跳到MAIN处执行
ORG 001BH ;定时器答T1
LJMP TIME1
ORG 0030H
MAIN:MOV TMOD,#01H ;设置T1工作在模式1
MOV TH1,#068H ;赋初值,定时10ms
MOV TL1,#0F0H

9. 课程设计用51单片机内部定时器做电子时钟要求有清0调整时间功能

发了三个程序包给你,都是基于单片机数字钟设计的程序,可带按键调整时钟。9.7的那个程序,里面是用汇编语言编写的延迟程序,时间精度相对高。但是稍微,Frbqhd

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919