用C语言编写AT89C51单片机程序,设计一个智能数字钟。
基本要求:
1.C语言程序要求是模块化设计。
2.该闹钟基于AT89C51单片机及相关外围电路进行设计。
3.该闹钟有4个数码管(共阳极),可分别显示时间(时、分、秒)、及定时时间(分、秒)。
4.该闹钟有4个按钮,S1是切换显示按键,该键按下时可分别实现切换正常走时显示、设定走时显示、设置定时时间,启动定时,回到正常状态等功能。S2是设定键,即该键按下,将分别选中需要设定的选项。S3键是加键,即按下去表示相应选项加1。S4键是减键,即按下去表示相应的选项减1。
5.该闹钟可以定时时间到,LED将发出提示闪光,且持续30s。
发挥要求:
1.定时时间可被打断,即打断后恢复时继续计时。
2.设置闹钟报警功能;
3.能切换显示年月日等信息。
并实现分,秒倒计时,注意用c语言编写
用C语言编写AT89C51单片机程序,设计一个智能数字钟。
sbit s2=P2^3; \/\/s2按键,设置调时 sbit s3=P2^2; \/\/s3按键,加1 sbit s4=P2^1; \/\/s4按键,减1 sbit led1=P0^0;sbit led2=P0^1;sbit led3=P0^2;uchar count;uchar sec,minu,hour,day,week,mon;uchar n_sec,n_minu,n_hour;uint year;uchar set_2=1,set_1=1;uchar hs,hg,...
以AT89C51单片机为核心,制作一个LCD显示的智能电子钟
bit)(io|=(1<<bit))\/\/1#define cbi(io,bit)(io&=~(1<<bit))\/\/0#define gbi(pin,bit)(pin&(1<<bit))\/\/读#define enableInterrupts() {_asm("rim\\n");
at89c51单片机实现电子时钟,不带闹铃。显示时分秒。求图求程序
} return(dat); \/\/将一个字节数据返回 } void tmpwritebyte(uchar dat) \/\/write a byte to ds18b20 { \/\/写一个字节到DS18B20里 uint i;uchar j;bit testb;for(j=1;j<=8;j++){ testb=dat&0x01;dat=dat>>1;if(testb) \/\/write 1 写1部分 ...
急求基于单片机AT89C51的多功能数字电子钟的汇编程序,高手进!~_百度知...
用89C51控制3个HC595,前两个595接8段数码显示管,显示“0”~“9”每秒跳动一次.第3个HC595接8个LED灯,每隔1秒闪烁1次.include<at89x52.h> include<intrins.h> define uchar unsigned char define uint unsigned int uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90...
求程序用AT89C51单片机...用六位数码管实现数字时钟,显示时分秒,用两个...
init();\/\/初始化子程序 miao=0;shi=0;fen=0;while(1){ display(miao,fen,shi);} }void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void display(uchar miao,uchar fen,uchar shi) \/\/ 显示子函数 { P0=0x00;P0=table[miao%10];P2=0x7f;delay(...
用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键...
void t0isr() interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;num++;if(num>=20){ num=0;sec++;} } main(){ TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;LED1=0;LED2=0;while(1){ key=P1;if((key&0x0f)!=0x0f){ delay...
单片机at89c51用C语言编写报警器
include<reg51.h>#define uchar unsigned charuchar time;sbit spk=P1^0;void t0isr() interrupt 1{TH0=t_h;TL0=t_l;spk=~spk;}void t1isr() interrupt 3{TH1=(65536-50000)\/256;TL1=(65536-50000)%256;time++;time%=6;if(time==0){t_h=(65536-500)\/256;t_l=(65536-500)%256;...
AT89C51单片机,定时器1,50ms中断,用c语言写出初始化程序和中断函数程序...
include <reg51.h> void InitTimer1(void){ TMOD = 0x10;TH1 = 0x3C;TL1 = 0x0B0;EA = 1;ET1 = 1;TR1 = 1;} void main(void){ InitTimer1();} void Timer1Interrupt(void) interrupt 3 { TH1 = 0x3C;TL1 = 0x0B0;\/\/add your code here!} ...
求用单片机设计一个秒表AT89C51
;汇编程序如下。;使用T0定时方式1,每隔50ms中断一次,用于修改时间及显示 ;使用外部中断0、1,用于控制启动和清零 ;=== ORG 0000H AJMP MAIN ORG 0003H AJMP X0_INT ORG 000BH AJMP T0_INT ORG 0013H AJMP X1_INT MAIN:MOV TMOD,#01H ;T0定时方式1 MOV TH0, #(65536-5000...
单片机 at89c51 6位数码管24小时倒计时程序
void timer0(void)interrupt 1 { TH0=0x00;TL0=0x38;counter--;if(counter==0){ sec--;if(sec==-1){ sec=59;min--;if(min==-1){ min=59;hour--;if(hour==-1){ hour=23;} } } } } \/***主函数***\/ void main(){ uchar i;uchar display[6];counter=5000;sec=min=59...