数字钟课程设计(4)

2019-01-26 14:28

{

while(!shezhi)xianshi();//如果确认按下按键等待按键释

放,

//没有释放则一直执行数码管扫

描,防止闪烁

}

{

TR0=0;

xuanze1++;

if (xuanze1==4) xuanze1=0; } }

if (!jia)//P3.3加1按钮 {

xianshi(); if(!jia) {

while(!jia)xianshi(); {

if(xuanze1==1) shi++;

if(shi==24) shi=0;

if(xuanze1==2) fen++;

if (fen==60) fen=0;

if(xuanze1==3) miao++;

if(miao==60) miao=0; } } }

if(flag==1)//闪烁标志位为1,所有数码管都亮,与下面的flag=0

构成闪烁程序

{

if (shi<10) //灭零判断,如果小时数小于10则第一位

数码管熄灭

duan1=0xff; else

duan1=table[shi/10]; //分解显示信息

}

duan2=table[shi]; duan3=table[fen/10]; duan4=table[fen]; duan5=table[miao/10]; duan6=table[miao];

if(flag==0)//闪烁标志位为0,对应数码管熄灭 {

if(xuanze1==1) {

duan1=0xff;//当设置小时时,第一二位数码管闪烁

duan2=0xff; }

if(xuanze1==2) {

duan3=0xff; duan4=0xff; }

if(xuanze1==3) {

duan5=0xff; duan6=0xff; } }

xianshi(); j++;

if(20==j) //延时闪烁时间 {

j=0;

flag=!flag;//闪烁标志变量

} } }

/*------------------------------------------------ 定时器中断子程序

------------------------------------------------*/ void Timer0_isr(void) interrupt 1 using 1 {

static unsigned int i;

TH0=(65536-9216)/256; 期0.9216uS // TL0=(65536-9216)%6; //

//10x100=1000ms=1s i++;

if(i==100) {

i=0; miao++;

if(miao==60) {

miao=0; fen++; }

if(fen==60) {

fen=0; shi++; }

if(shi==24) {

shi=0; } } }

重新赋值 11.0592M晶振计算,指令周

最大值65536 即60.398ms 所以 直接定时器不够用,需要用循环处理, 定时10ms,然后循环100次后输出

//


数字钟课程设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中农大毕业论文 白芷开花习性与花粉特性研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: