导航:首页 > 操作系统 > 单片机语言编写60秒

单片机语言编写60秒

发布时间:2022-07-17 21:05:59

单片机60秒倒计时程序怎么写啊!!!这个图的!!!急用啊!!!!

/*代码你可以参考一下,晶振按11.059200MHz写的。
提示一下,按你这仿真是不能做实物的,要加上限流电阻*/

#include"reg52.h"

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管段选

voidmain()
{
TMOD=0x01;
TH0=0xFC;
TL0=0x66;
EA=1;
ET0=1;
TR0=1;

while(1);
}

voidTimer0Interrupt(void)interrupt1
{
staticunsignedinti=0;
staticchartime=60;

TH0=0xFC;
TL0=0x66;

P3=table[time%10];
P2=table[time/10];

i++;
if(i>=1000)
{
i=0;
time--;
if(time<0)
{
time=60;
}
}

}

❷ 求C51单片机汇编语言控制两位数码管60秒倒计时的程序,最好能说明下思路

#include <at89x52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define seg P0
#define sw P2
int tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
int dis[]={0,0};
uint X;
uchar Count=0;
uchar sec=60;
void display()
{
int a;
int m=0x01;
dis[0]=sec/10;
dis[1]=sec%10;
for(a=0;a<2;a++)
{
seg=0xff;
seg=tab[dis[a]];
sw=m;
m=_crol_(m,1);
}
}
void TINT0() interrupt 1
{
TL0=-50000%256;
TH0=-50000/256;
if(++Count==20)
{
if(sec>0)sec--;
Count=0;
}
}
void Main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TL0=-50000%256;
TH0=-50000/256;
while(1)
{
if(sec==0)sec=60;
display();
}

}

❸ 用单片机汇编语言编写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
MOV
IE,#88H
;开CPU中断,开定时器1中断
SETB
TR1
;启动T1定时器工作
MOV
60H,#100
;给60H单元赋初值
CLR
4FH
;清零4FH单元
DISPLAY:
;显示子程序
MOV
DPTR,#TAB
;DPTR指向编码表位置
MOV
A,R3
;将R3的内容复制到A
MOV
B,#10
DIV
AB
;A除B,商给A,余数给B
MOVC
A,@A+DPTR
;根据A的值取出编码表中的编码
MOV
P1,A
;由P1口输出A的内容
SETB
P2.0
;置位P2.0
CLR
P2.0
;清零P2.0
MOV
A,B
MOVC
A,@A+DPTR
;根据A的值取出编码表中的编码
MOV
P1,A
;由P1口输出A的内容
SETB
P2.1
;置位P2.1
CLR
P2.1
;清零P2.1
JNB
4FH,DISPLAY
;判断1秒时间是否到,没有到,则跳转到DIAPLAY处
CLR
4FH
;1秒到,清4FH
LJMP
DISPLAY
;调用显示子程序
TIME1:MOV
TH1,#068H
;赋初值
MOV
TL1,#0F0H
DJNZ
60H,TT
;60H单元自减1,判断是否为0,不为0则跳转到TT处
MOV
60H,#100
;60H单元为0,则重新给其赋值100
SETB
4FH
;同时置位4FH单元
INC
R3
;R3自加1
CJNE
R3,#60,TT
;判断R3是否为60,否则跳转TT处
MOV
R3,#0
;R3为60,则给R3赋0
TT:RETITAB:
;编码表
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;编码
END
;程序结束

❹ 单片机实现60秒倒计时 求教

写程序最好不要出现超过1ms的死延时,特别是在普通8位单片机的编程,需要时间的地方尽量用定时器来做,单片机运行效率高

❺ 怎样用单片机c语言实现60秒倒计时

这个很简单的嘛。。自己看看书多做做就知道了。。像这样简单的都来问的话,那你工作的话就基本上完全是不会了。。
跟你提个思路吧,首先是,定义一个变量,用来保存初值60,然后进行定时器初始化,开启定时器中断,打开全部中断。然后就是在定时器中断处理函数里面进行计数了,,当计时满一秒的时候,就将最开始的初值为60的变量,进行减一操作。然后在主函数里面进行显示就可以了。。

❻ 单片机开发板定时器60秒怎么编程

#include <reg51.h>

void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0F6;
TL0 = 0x3C;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void main(void)
{
InitTimer0();
}

void Timer0Interrupt(void) interrupt 1
{
unsigned char num1,num2;
TH0 = 0x0F6;
TL0 = 0x3C;
num1++;
if(num1==200) //定时1s
{
num1=0;
num2++;
if(num2=60) //定时60秒
num2=0;

}

}

❼ 请帮忙写一个程序:单片机控制液晶显示器60秒倒计时(C语言)

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
uchar code temp[]="00";
uint aa,ee,date1;
void delay(uint aa)
{
uint bb,cc;
for(bb=0;bb<aa;bb++)
for(cc=0;cc<100;cc++);
}
void write_ling(uint com)
{
RS=0;
P0=com;
delay(5);
EN=1;
delay(10);
EN=0;
}
void write_shuju(uint shuju)
{
RS=1;
P0=shuju;
delay(5);
EN=1;
delay(10);
EN=0;
}
void inite() //中断、1602初始化
{
TMOD=0x01;
TH0=(65536-46080)/256;
TH0=(65536-46080)%256;
EA=1;
ET0=1;
TR0=1;
RW=0;
EN=0;
date1=60;
write_ling(0x38);
write_ling(0x0c);
write_ling(0x06);
write_ling(0x80);
write_ling(0x01);
write_ling(0x80+7);

for(aa=0;aa<2;aa++)
{
write_shuju(temp[aa]);
delay(5);
}
}
void display(uint date)
{
uint ge,shi;
ge=date%10;
shi=date/10;
write_shuju(0x30+shi);//0x30--0x39对应的是1602显示0--9的ASCLL码值
write_shuju(0x30+ge);
}
void timer0() interrupt 1
{
TH0=(65536-46080)/256;//11.0592MHZ晶振50Ms
TH0=(65536-46080)%256;
ee++;
if(ee==14)//加上前面延时子函数的延时, 在我的板子上ee=14的时候大概就是一秒钟
{
ee=0;
date1--;
if(date1==0)
{
date1=60;
}
write_ling(0x80+7);
display(date1);
}
}
void main()
{
inite();
while(1);
}

小弟不才,希望这个程序对你有帮助!

❽ 单片机实现60秒计时器 用汇编语言

这是你学校的实验仪吗?这原理图不全,没有开关电路,两个74374的选片电路也没有,这写不了程序的。

❾ 单片机60秒计时器设计程序

ORG 0000H ;从地址0开始执行
JMP START ;跳转到START处
orG 000BH ;TIMER0 的中断向量
LJMP TIMER_0 ;跳转到TIMER—0
START:
MOV P0, #0FFH ;
MOV P1, #0FFH ;
MOV P2, #0FFH ;
MOV P3, #0FFH ;
MOV R4 , #40 ;R4=40
MOV IE , #10000010B ;开中断
MOV TMOD , #00000001B ;设定定时方式
MOV SP , #30H ;移开堆栈
MOV TH0, #75 ;设定定时初值
MOV TL0, #234 ;设定定时初值
NOP
NOP
MOV DPTR , #TABLE ;表首地址
MOV 50H, #0 ;50H=0
MOV 51H, #0 ;51H=0
MOV 52H, #0 ;52H=0
MOV 53H, #0 ;53H=0
NOP
NOP
SETB TR0 ;启动T0
LOOP_1:
MOV A , 50H ;A=(R0)
MOVC A, @A+DPTR ;读取数据
MOV P0,A ;把数据赋给P0口
CLR P2.7 ;打开位码
CALL DELAY
SETB P2.7 ;关闭位码
NOP
NOP
MOV A,51H ; A=(R1)
MOVC A,@A+DPTR ;读取第二位7---SEGMENT----- LED的数据
MOV P0, A ;把读取的数据送入P0口
NOP
NOP
CLR P2.6 ;打开第二个数码管的位码
CALL DELAY
SETB P2.6 ;关闭位码
MOV A, 52H ;A=(R2)
MOVC A, @A+DPTR ; 读取第三位7---SEGMENT----- LED的数据
MOV P0, A ;把读取的数据送入P0口
NOP
NOP
CLR P2.5 ;打开第三位的位码
CALL DELAY
SETB P2.5 ;关闭位码
MOV A , 53H ;A=(R3)
MOVC A , @A+DPTR ; 读取第四位7---SEGMENT----- LED的数据
MOV P0, A ;把读取的数据送入P0口
CLR P2.4 ;打开第四位的位码
CALL DELAY
SETB P2.4 ;关闭位码
NOP
NOP
JMP LOOP_1 ;跳转到LOOP-1
//*******************以下是TIMER0的中断服务子程序***********************//
TIMER_0:
PUSH PSW ;
CLR TR0 ;
DJNZ R4, NEXT ;不够一秒就继续执行
MOV A,50H ;
CJNE A, #9, LOOP_2 ;所要显示的数字是否达到9?若未达到,就跳转到LOOP-2
MOV 50H,#0 ;(50H)=0
MOV A ,51H ;A=(50H)
CJNE A,#9,LOOP_4 ; 所要显示的数字是否达到9?若未达到,就跳转到LOOP-4
MOV 51,#0 ;(51H)=0
MOV A ,52H ;A=(52H)
CJNE A,#9,LOOP_5 ; 所要显示的数字是否达到9?若未达到,就跳转到LOOP-5
MOV 52H ,#0 ;(52H)=0
MOV A ,53H ;A=(53H)
CJNE A ,#9,LOOP_6 ; 所要显示的数字是否达到9?若未达到,就跳转到LOOP-6
MOV 53H,#0 ;(53H)=0
JMP LOOP_3 ;跳转到LOOP--3
LOOP_2:
INC 50H ;50H的数据增加1
JMP LOOP_3 ;跳转到LOOP--3
LOOP_4:
INC 51H ;51H的内容增加1
JMP LOOP_3 ;跳转到LOOP--3
LOOP_5:
INC 52H ;52H的内容增加1
JMP LOOP_3 ;跳转到LOOP--3
LOOP_6:
INC 53H ;53H的内容增加1
LOOP_3:
MOV R4, #40 ;R4=40
NEXT:
MOV TH0,#75 ;设定定时初值
MOV TL0,#234 ;设定定时初值
SETB TR0 ;启动TIMER0
POP PSW ;
RETI ;返回
DELAY: ;100MS?????
MOV R7,#2
D1: MOV R6,#25
D2: DJNZ R6,D2
DJNZ R7,D1
RET
TABLE: DB 03FH,06H,5BH,4FH;
DB 66H,6DH,7DH,07H;
DB 7FH,6FH;
END; 这是以前做过的,硬件电路图找不到了,仔细看一看引脚的I/O,可以参考用的

阅读全文

与单片机语言编写60秒相关的资料

热点内容
好兴动app还款怎么登录不上去了 浏览:665
郑州云服务器托管 浏览:722
服务器地址跟踪 浏览:980
免费google云服务器 浏览:516
摘译和编译的英文 浏览:359
热泵压缩机选型 浏览:121
op手机微信加密如何解除 浏览:386
如何在王牌战争找到高爆率服务器 浏览:13
江浙小学语文辅导课用什么APP 浏览:99
新梦幻大陆服务器地址 浏览:241
网吧服务器怎么更换壁纸 浏览:530
linux命令方法 浏览:332
linux下载freetype 浏览:123
程序员入驻平台 浏览:327
程序员大战外挂 浏览:745
html实例教程pdf 浏览:157
linux命令开放所有权限 浏览:575
30岁能学会编程 浏览:737
小火箭的服务器是什么 浏览:967
cad查信息命令 浏览:402