知识大全 用51单片机做一个定时器,程序用C语言写,有人会吗

Posted

篇首语:黄金的宝藏比不上知识的宝藏。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用51单片机做一个定时器,程序用C语言写,有人会吗相关的知识,希望对你有一定的参考价值。

用51单片机做一个定时器,程序用C语言写,有人会吗?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

用51单片机做一个定时器,程序用C语言写,有人会吗?

这么简单的问题 随便一本51单片机书上就有 实在不行 参考下面代码
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code shu[]=
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71;
uchar wei[]=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; 开启0-7数码管
uint aa=0,chu=0;
char num;
sbit d3=P1^3;
sbit d1=P1^1;
sbit d0=P1^0;
sbit d2=P1^2;
sbit s1=P2^4;
sbit s2=P2^5;
delay(uint z)

uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);

void init ()

TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

void main()

d3=0;
d2=0;
P0=0X00;
init();
while(1)

写你想写的代码 num每加一次 表示秒钟增加一次


void duan() interrupt 1

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)

aa=0;
num++;

如何用51单片机做能定6小时的定时器要c语言程序

51单片机一次最大只能定时65536us,你算一下,要定时多少次。

求 定时器初始化程序 51单片机C语言的 THANKU~, 定时器初始化程序 51单片机的C语言是什么?

写一个关于定时器0的初始化子函数给你,加上注释
void timer0() interrupt 1

TMOD=0X01;选择定时器0
TH0=(65536-50000)/256;装入50MS的初值
TL0=(65536-50000)%256;
EA=1;打开总中断
ET0=1;打开定时器0中断
TR0=1;开启定时器0

AT89C51单片机 用定时器1,方式0定时1s的C语言程序怎么写

(这是我同学编的,拿来给你)
#include <reg51.h>
#include <intrins.h>
unsigned char i;
void main()

TMOD=0x00;
TH1=0x3c;
TL1=0xb0;
EA=1;
ET1=1;
TR1=1;

while(1)

if(i==20)

i=0;

下面写你要处理的的其他程序,你只要了定时1s。



void a(void) interrupt 3

unsigned char i;
TH1=0x3c;
TL1=0xb0;
i++;

c51单片机定时器程序怎么调用

中断是没有调用的,中断程序在后台运行,发生中断单片机自动转到中断服务程序去执行,执行完毕,自动回到原来被打断的地方继续……

请问单片机C语言定时器程序怎么写?

你看过汇编吗?与汇编的格式是一样的。具体就是先开中断允许标志位(IE里面对应的各个位)在设定TMOD工作方式。下一步就是设定初始值了(TH、TL)。设置完这些就可以开定时器了。写中断中段函数是是需要另加interrupt 加上一个常数(比如是定时器0就在后面加上1)。我用89S52芯片编过一个定时器程序你参考一下,希望对你有一点帮助。
功能:感应外界温度并用数码管显示
时间:2005年6月20日
设计人:
#include<reg52.h>
#define uchar unsigned char
sbit ad0809_oe=P1^0; 定义各个位
sbit ad0809_start=P1^1;
sbit ad0809_ale=P1^2;
sbit ls595_rclk=P1^3;
sbit ad0809_eoc=P1^5;
sbit ls595_oe=P1^4;
sbit ls595_ser=P3^0;
sbit ls595_srclr=P3^1;
uchar nn,mm;
uchar code tab[]=0x81,0xcf,0x92,0x86,0x,0xa4,0xa0,0x8f,0x80,0x84;
send(uchar); 声明函数
AD(uchar);
void display(uchar);
void init();
********普通口输入数据*****************
send(uchar shu) 普通口串行输入

unsigned char i,k;
k=0x01;
for(i=0;i<8;i++)

if(k==(k&shu)) 判断每位上是否为1
ls595_ser=1;
else
ls595_ser=0;
k<<=1; 左移一位
ls595_srclr=0; 输入一个上升沿讲数送入595中
ls595_srclr=1;


*****************595显示子程序********************
void display(uchar du)

uchar ge,shi,flge; ge拆字后个位的存放处shi拆字后十位的存放处flge ℃的存放处
shi=tab[du/10]; 拆字
send(shi); 给595送数
ge=tab[du%10];
send(ge);
flge=0xb1;
send(flge);
ls595_rclk=0; 上升沿送出数据
ls595_rclk=1;

*******************初始化程序********************
void init() 初始化AD、定时器

ad0809_start=0; Start管教上升沿将AD内部寄存器清零
ad0809_start=1;
ad0809_ale=1; ALE高电平选择通道
nn=0;
mm=0;
TMOD=0x01; 定时器初始化
IE=0x82;
EA=1;
ET0=1;
TCON=0x00;
TL0=(65536-50000)%256; 定时50ms
TH0=(65536-50000)/256;

AD(uchar wen)

unsigned char tt=0;
ad0809_ale=1; 选择通道
ad0809_start=1;
ad0809_start=0; start下降沿启动转换信号
while(ad0809_eoc==0); 判断转换是否结束
ad0809_oe=1; 转换结束送出转换数据
wen=P2;
return (wen);

**************中断服务程序*********************
void tiam0() interrupt 1 using 1 中断服务程序

TL0=(65536-50000)%256; 定时50ms
TH0=(65536-50000)/256;
nn++;
if(nn==10) 0.5秒M加一

mm++;
nn=0;


****************主程序***************************
void main()

unsigned char bb,aa,; bb=计算后得到温度,aa=AD输出数据
unsigned char wen; wen存放转换的得到的数据
init();
wen=17;
ls595_oe=0;
=0;
TR0=1;
while(1)

aa=AD(wen);
ad0809_oe=0;
aa=~aa;
bb=aa/4;
if(mm==2)

mm=0;
=bb;

display(); 调用显示子程序


单片机c语言中定时器程序改如何编写?

首先 配置定时器
然后设置中断
然后做中断程序

单片机定时器用C语言程序如何复位?

那要看是在什么程序中用的,你的定时程序是查询方式的话你只要把TR0或TR1等于零即可,如果是中断的话,你可以关中断,其实你可以在任何程序中用TR0=0;或TR1=0来关定时器。关掉后,定时器值自动回到0;无须刻意复位。

单片机大神,跪求51单片机用单片机定时器两个灯泡一个接在P0.3口一个接在P0.6口程序c语言程序

#include<reg52.h>sbit LED1 = P0^3;sbit LED2 = P0^6;void main()    TMOD = 0x01;    TR0  = 1;    ET0  = 1;    EA   = 1;    while(1);void Timer0_Routine()interrupt 1    static unsigned short count;    TH0 = (-1000)>>8;system clock 12Mhz    TL0 = -1000;    count++;    if(count>=500)            count = 0;        LED1 =~ LED2;        LED2 =~ LED1;    

相关参考

知识大全 嵌入式驱动开发和用单片机写一个程序驱动一个器件和芯片是不是类似的,求解决

嵌入式驱动开发和用单片机写一个程序驱动一个器件和芯片是不是类似的,求解决?我以前学校51和AVR,现在学习ARM9,和你分享一下我的观点,单片机如51和AVR之类,是对硬件的操作,不能跑操作系统,能力

知识大全 51单片机串口通信定时器初值怎么计算

51单片机串口通信定时器初值怎么计算?公式和计算原理是什么?串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值=256-f

知识大全 用C语言写程序求s。s=3/(2^2)-5/(4^4)+7/(6^6)……+[(-1)^(n-1)]*(2*n+1)/(2*n)^2

用C语言写程序求s。s=3/(2^2)-5/(4^4)+7/(6^6)……+[(-1)^(n-1)]*(2*n+1)/(2*n)^2  以下文字资料是由(本站网www.lishix

知识大全 我是一名C语言初学者,请各位大虾帮帮忙,用C语言编写一个程序,求1+2+3+4+5+6·····+100

我是一名C语言初学者,请各位大虾帮帮忙,用C语言编写一个程序,求1+2+3+4+5+6·····+100  以下文字资料是由(本站网www.cha138.com)小编为大

知识大全 51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几

51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几?用串口的模式1,是10位异步通信方式。1起始位,8数据位,1停止位,没有奇偶校验位。这种模式就是:8-n-

知识大全 评论51单片机波特率计算工具 绿色版怎么样

评论51单片机波特率计算工具绿色版怎么样有它很方便,没它也能过,把常用的波特率晶频率对应的数值计下来即可STC单片机下载软件也有这项功能51单片机独立波特率怎么弄单片机的波特率一般是通过定时1来实现的

知识大全 用java语言编程序:计算1+1/2!+1/3!+1/4,简单语句就好,不要写的太复杂哦,谢谢哦

用java语言编程序:计算1+1/2!+1/3!+1/4,简单语句就好,不要写的太复杂哦,谢谢哦!publicclassTestpublicstaticvoidmain(Stringargs[])in

知识大全 做旅游网站用PHP语言程序好还是用ASP的好

做旅游网站用PHP语言程序好还是用ASP的好  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!做旅游网站

知识大全 如何设置方波的占空比可调…………

如何设置方波的占空比可调…………???求程序…………急用单片机的pwm可直接调占空比,如果用定时中断的话,改变你的高电平的定时时间,和低电平的定时时间,保持总定时不变,就是周期不变。良乡去香山最近的路

知识大全 用c语言编的应用程序能在安卓手机上运行吗

用c语言编的应用程序能在安卓手机上运行吗C语言编写的程序不能直接在android上运行,androidjni通过类似dll的so方式应用C/C++代码,就是androidnative的开发(NDK)V