用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 05:04:50
用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或

用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或
用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~
实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或减一. P1口控制数码管的 A B C D E F G DP.P3--P3.5分别为数码管123456的驱动脚. 我的83039052@.qq.com

用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或
当一盘好人,给个例程,自己研究吧¬¬
#include
char code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0-9数码管,共阴
char code wema[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7}; //片选,1-8个数码管
char j;
char h_num,m_num,s_num; //分别定义小时、分钟、秒
char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge;
sbit fm=P3^4;
void delay(char x)
{
char a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void inter_init()
{
EA=1; //开总中断
ET0=1; //本例中使用的是定时器T0,如果用T1.则为ET1=0,TMOD=0x10.
TMOD=0x01; //定时器工作方式1
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ.在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
TR0=1;
}
void display(char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge)
{
P2=duma[h_shi];
P1=wema[0];
delay(8);
P2=duma[h_ge];
P1=wema[1];
delay(8);
P2=duma[10];
P1=wema[2];
delay(8);
P2=duma[m_shi];
P1=wema[3];
delay(8);
P2=duma[m_ge];
P1=wema[4];
delay(8);
P2=duma[10];
P1=wema[5];
delay(8);
P2=duma[s_shi];
P1=wema[6];
delay(8);
P2=duma[s_ge];
P1=wema[7];
delay(8);
}
void main()
{
inter_init();
s_num=55; //初始时间设置.分别是秒,分,小时
m_num=59;
h_num=10;
while(1)
{
if(j==20)
{
j=0;
if(s_num==59)
{
s_num=-1;
if(m_num==59)
{
m_num=-1;
if(h_num==24)
h_num=-1;
h_num++;
fm=0; //到整点后蜂鸣器会响一下
delay(50);
fm=1;
}
m_num++;
}
s_num++;
}
h_shi=h_num/10;
h_ge =h_num%10;
m_shi=m_num/10;
m_ge =m_num%10;
s_shi=s_num/10;
s_ge =s_num%10;
display(h_shi,h_ge,m_shi,m_ge,s_shi,s_ge);
}
}
void time()interrupt 1 using 1 //如果用T1的话,应为interrupt 3
{
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ.在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
j++;
}

求基于单片机直流电机转速检测电路图最好有c语言程序.单片机用89C52的 用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或 用C语言编写简易计算器可实现两位数以上的四则运算.C语言编写单片机程序. C语言编写 89C51单片机 用矩阵键盘 小数码管计算器 实现两位数 加减乘除运算 如何用C语言编写程序实现哥德巴赫猜想 1.用c语言编写程序,实现输入10个数,分别求其最大值、最小值及平均数,要求用函数实现. 单片机用C语言编写计算器如何实现大于65535的数字加减乘除?我使用的单片机的C语言仅仅支持2字节的数据变量,也就是最大值仅为65535,要如何实现大于这个数的四则运算呢?我用的是holtek单片 下列C语言程序哪有错误?用C语言编写编写程序哪有错误? 编写矩阵运算程序 C 语言编写四、编写矩阵运算程序要求:a) 功能包括:矩阵加、矩阵减、矩阵乘、矩阵三角化b) 实现方式1:函数的参数为:二维数组名、行数、列数 用LCD1602和DS18B20显示温度和时间C语言程序用51单片机实现 ,时间部分用2个按钮实现对时间的调整 是的, 用AT89C51单片机实现四位数码管显示数据!用c语言程序实现!例如显示出1234 这四个数. 用C 语言编写程序,找出1到256中所有的回文数急 谁知道用C语言怎么编写一个能求出所有的水仙花数的程序? 用C语言编写程序实现从键盘上任意输入两个整数,输出两个整数的乘积. 数字电压表设计 单片机 C语言用C语言编写的单片机数字电压表设计,用数码管显示 C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之和. 编写一个程序用单链表存储多项式,并实现两个多项式相加的函数?C/C++语言 编写一个C语言程序:用来实现在屏幕上显示一句话:Hello World!.