求一篇 用数字电路设计的电子时钟毕业论文 最好要修改完的 网上找不到原版的那种。马上就要交了 帮帮忙吧

求一篇 用数字电路设计的电子时钟毕业论文 最好要修改完的 网上找不到原版的那种。马上就要交了 帮帮忙吧,第1张

时钟设计基本上就是通过电子 定时器定时 到1s给一个中断 让单片机去执行中断 跳转至相应的数码管位 然后修改当前显示值 再设置到10进位加一 之后就出来数字时钟的效果 弄懂定时器 一切就顺下来了

这是一个C得时钟程序 你看明白思想 就好说汇编的语句了

#include <reg52h>

#include <intrinsh>

#define uchar unsigned char

sbit dula=P3^7;

sbit L1=P2^0;

sbit L2=P2^1;

sbit L3=P2^2;

sbit key1=P3^0;

sbit key2=P3^1;

sbit key3=P3^2;

sbit key4=P3^3;

uchar aa;

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

uchar nummiao,numfen,numshi,t0;

void delayms(uchar xms)

{

uchar i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void init()

{

TMOD=0x11;

TH0=(65536-50000)%256;

TL0=(65536-50000)/256;

EA=1;

ET0=1;

}

void display(uchar nummiao,numfen,numshi)

{

uchar shishi,geshi,shifen,gefen,shimiao,gemiao;

shimiao=nummiao/10;

gemiao=nummiao%10;

shifen=numfen/10;

gefen=numfen%10;

shishi=numshi/10;

geshi=numshi%10;

dula=1;

P0=table[shimiao];

dula=0;

L1=0;

L2=1;

L3=1;

delayms(5);

dula=1;

P0=table[gemiao];

dula=0;

L1=1;

L2=1;

L3=1;

delayms(5);

dula=1;

P0=0x40;

dula=0;

L1=1;

L2=0;

L3=1;

delayms(5);

dula=1;

P0=table[gefen];

dula=0;

L1=0;

L2=0;

L3=1;

delayms(5);

dula=1;

P0=table[shifen];

dula=0;

L1=1;

L2=1;

L3=0;

delayms(5);

dula=1;

P0=0x40;

dula=0;

L1=0;

L2=1;

L3=0;

delayms(5);

dula=1;

P0=table[geshi];

dula=0;

L1=1;

L2=0;

L3=0;

delayms(5);

dula=1;

P0=table[shishi];

dula=0;

L1=0;

L2=0;

L3=0;

delayms(5);

}

void keyscan()

{

if(key1==0)

{

delayms(10);

if(key1==0)

{

numshi++;

if(numshi==24)

numshi=0;

while(!key1);

}

}

if(key2==0)

{

delayms(10);

if(key2==0)

{

if(numfen==60)

numfen=0;

numfen++;

while(!key2);

}

}

if(key3==0)

{

delayms(10);

if(key3==0)

{

nummiao=0;

while(!key3);

}

}

if(key4==0)

{

delayms(10);

if(key4==0)

{

while(!key4);

TR0=~TR0;

}

}

}

void main()

{

init();

aa=0xfe;

while(1)

{

P1=aa;

if(nummiao==60)

{

numfen++;

nummiao=0;}

if(numfen==60)

{ numshi++;

numfen=0;}

if(numshi==24)

numshi=0;

keyscan();

display(nummiao,numfen,numshi);

}

}

void t0time()interrupt 1

{

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

t0++;

if(t0==20)

{

t0=0;

nummiao++;}

aa=_crol_(aa,1);

}

以上就是关于求一篇 用数字电路设计的电子时钟毕业论文 最好要修改完的 网上找不到原版的那种。马上就要交了 帮帮忙吧全部的内容,包括:求一篇 用数字电路设计的电子时钟毕业论文 最好要修改完的 网上找不到原版的那种。马上就要交了 帮帮忙吧、51单片机时钟程序设计、单片机数字时钟汇编程序设计分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9825284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存