您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页时钟程序

时钟程序

来源:化拓教育网


#include

char TAB[10]={0X11,0Xbd,0X23,0X25,0X8d,0x45,0x41,0x3d,0x01,0x05};//数码管0-9编码

char disp[4]={0,0,0,0};//四位数码管初始化都为零 unsigned char scan;//位数扫描寄存器 unsigned char s=0;//秒寄存器 unsigned char f=0;//分寄存器 unsigned char h=0;//时寄存器 unsigned char f1=0;//分个位寄存器 unsigned char f2=0;//分十位寄存器 unsigned char h1=0;//时个位寄存器 unsigned char h2=0;//时十位寄存器 sbit fj=P3^7;//分位加1引脚 sbit hj=P3^6;//时位加1引脚 sbit zd=P3^3;//中断1引脚 void disp1m(int);//定义延时函数

void ff(unsigned char);//定义分位函数 void fh(unsigned char);//定义时位函数

//////////////////////////////////////////////////////////////////////////////////////// main() {

IE=0X85;//准许INT0中断,准许int1中断 IP=0x04;//设定INT1具有最高优先级

TCON=0X05;//INT0设置负边缘触发,int1设置负边缘触发。

while(1) { char i,j; scan=1; for(i=3;i>=0;i--) { j=disp; P1=TAB[j]; P2=scan; disp1m(4); scan<<=1; }

disp[0]=h2;//显示时十位 disp[1]=h1;//显示时个位 disp[2]=f2;//显示分十位 disp[3]=f1;//显示分个位 } }

//////////////////////////////////////////////////////////////////////////////////////////

void my_int0(void)interrupt 0//外部中断0,P3.2,秒脉冲输入短,下降边缘触发 {

s++;//秒寄存器加1 if(s==60)//秒数是否到六十 {

s=0;//秒数清零 f++;//分数寄存器加1 if(f==60)//分是否到60 {

f=0;//分数清零 h++;//时寄存器加1 if(h==24)//时是否到24 { h=0; } } }

ff(f);//调用分位函数 fh(h);//调用时位函数 P3=255; }

///////////////////////////////////////////////////////////////////////////////////////////

void my_int1(void)interrupt 2//外部中断1,P3.3。时间调整输入端下降边缘触发 {

disp1m(10);//延时消除抖动

if(zd==0)//再次判断中断脚位是否在低电平 {

if(hj==0)//判断是时要修改

{

if(h==24){h=0;}else{h++;};//时加1 }

else if(fj==0)//判断是分要修改 {

if(f==60){f=0;}else{f++;}//分加1 }

else {}//都不是,退出中断, }

P3=255;//P3脚位全部拉高,以便等待下一个中断 }

//////////////////////////////////////////////////////////////////////////////////////////////

void ff(unsigned char y)//分位函数 { f1=y%10; f2=y/10; }

//-------------------------------------- void fh(unsigned char y)//时位函数 { h1=y%10; h2=y/10; }

//////////////////////////////////////////////////////////////////////////////////////////////// void disp1m(x)//延时函数 {

int i,j; for(i=0;i

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务