用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++;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机c语言编写产生1秒定时的程序,怎么写?
如果是51单片机的话其实很简单的,这里假设晶振频率是12M(一般都是的),你可以选用定时器0,工作在工作状态2,因为这个状态下装入初始值几乎不需要时间,所以定时精确,也就是8位预置数状态,将初始值设为6,这样每次定时就是250微秒,在中断程序中定义一个静态变量,每次中断加一,这样当这个变量值为4...

求一个51单片机定时闹钟程序。要C语言。能够调时间
\/* 程序功能:带定时闹铃时钟 *\/ \/*---*\/ include <AT89X51.H> \/*包含器件配置文件*\/ define uchar unsigned char define uint unsigned int char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};\/*0~9的数码管段码*\/ uchar hour=0,min=0,sec=...

51单片机定时中断C语言的写法步骤,可追加分数
程序说明:51单片机定时器0工作于方式一,定时50ms中断一次 晶振为12M include<reg52.h> void main { TOMD = 0X01;\/\/配置定时器0工作于方式一 TH1 = (65536-50000)\/256; \/\/高八位装入初值 TL1 = (65536-50000)%256; \/\/低八位装入初值 ET0 = 1;\/\/开定时器0中断 EA = 1;...

怎么用c语言编程51单片机读写程序?
MOV DPTR,#1000H ;给源数据块地址指针DPTR赋初值 MOV P2, #20H ;给目的数据块地址指针P2和R0赋初值 MOV RO,#00H LOOP: MOVX A, @DPTR .MOVX @RO, A .INC DPTR INC RO CJNE RO,#64H, LOOP SJMP

51单片机 C语言 控制频率原理???
假设你的51单片机用的晶振是12MHz的,那么可以得到如下结论:51执行一个指令的时间周期是1uS,这个是51的基础知识,就不深入讲解了。然后,如果用定时器0确定输出频率,假设定时器0的TL0初始值是0x01,那么当TL0变为0x02时,就是经过了1uS时间——这个懂吧?那么,设置定时器0为工作模式1(即16位...

用C语言编写8051单片机程序
ET0=1;EA=1;TR0=1;while(1){ if(stop==1)\/\/判断stop信号,为1后便关闭定时器 { TR0=0;ET0=0;EA=0;} } } \/***中断***\/ void timer0() interrupt 1 { TH0=0xf8;\/\/重新赋值定时2ms TL0=0x30;if(flag==0)\/\/定义用于判断计数是否到了250,若到了则不再计数,转向else执行...

51单片机可以直接用c语言编程么?keil μvision支持c语言么?
当然可以了,我一直都用C语言开发51单片机,很遗憾的是我目前不会汇编,呵呵 我用的软件是keil 4,可以编译C语言程序,不过据说C语言的代码效率比汇编要低,占用空间大,但C语言可以开发很复杂的程序,并且可以轻松实现浮点运算。

51单片机定时器方式1,晶振33hz,延时1秒,怎么用c语言编程
一个定时周期延时50ms include <reg51.h> void InitTimer0(void){ TMOD = 0x01;TH0 = 0x0CA;TL0 = 0x4A;EA = 1;ET0 = 1;TR0 = 1;} void main(void){ InitTimer0();} void Timer0Interrupt(void) interrupt 1 { TH0 = 0x0CA;TL0 = 0x4A;\/\/add your code here!} ...

定时器延时问题(51单片机,c语言)
\/\/定时器T0初始化,10ms秒初值 void InitTimer0(void){ TMOD=0x01;TH0=0x0D8;TL0=0x0F0;EA=1;ET0=1;TR0=1;} void Display(uchar dat4,uchar dat3,uchar dat2,uchar dat1){ static uchar k;P2=P2|0xf0;switch(k++){ case 0:P0=dat4;LED4=1;break;case 1:P0=dat3;LED3=1...

怎样使用51单片机的定时器?
51单片机定时器\/计时器的使用 步骤:1、 打开中断允许位:对IE寄存器进行控制,IE寄存器各位的信息如下图所示:EA: 为0时关所有中断;为1时开所有中断 ET2:为0时关T2中断;为1时开T2中断,只有8032、8052、8752才有此中断 ES: 为0时关串口中断;为1时开串口中断 ET1:为0时关T1中断;为1...

相似回答