完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
4个回答
|
|
很多板子的端口都不一样,没有具体的板子不好写。
|
|
|
|
随便写个能运行的就行
|
|
|
|
随便写个能运行的就行
|
|
|
|
#include
***it P10=P1^0;//蜂鸣器 ***it P33=P3^3; //+10 ***it P32=P3^2; //-10 ***it P31=P3^1; //开始暂停 ***it P36=P3^6; //-1 ***it P37=P3^7; //+1 //unsigned char c[10]={0xfc,0X60,0Xda,0Xf2,0X66,0Xb6,0xbe,0Xe0,0Xfe,0xf6}; //开发板段选 p2 //unsigned char b[8]={0X7f,0xbf,0xdf,0Xef,0xf7,0xfb,0Xfd,0Xfe}; //开发板位选 p0 unsigned char c[10]={0x5f,0X41,0X9d,0Xd5,0Xc3,0Xd6,0xde,0X45,0Xdf,0xd7}; //实物段选 p0 unsigned char b[8]={0X7f,0xef,0xdf,0Xbf, 0x7f,0xdf,0Xbe,0Xef}; //实物位选 p2 unsigned char sign,begin,signbegin, signminuteup,signminutedown,signminuteup10,signminutedown10; signed char minute,second; void sjxs(); void fmq(); void delay100us(); //按键防震的延时 void delay400ms(void); void main() { P33=1; P32=1; P31=1; P36=1; P37=1; while(1) { if(sign==100) {sign=0;second--;} if(second==-1) {minute--;second=59;} sjxs(); //显示程序 显示部分放这里,保证数据及时显示 if(minute==0&&second==0&&begin==1) {begin=0;EA=0;ET0 = 0;TR0 = 0; fmq(); /*蜂鸣器*/} if(minute>99) {minute=minute%10;} if(minute<0) {minute=0;} /*---------------------------------------------------------------------------*/ if(P37==0) //按键minute++ { delay100us(); if(P37==0) { signminuteup=1; } } if(signminuteup==1&&P37==1) {signminuteup=0;minute++;} /*---------------------------------------------------------------------------*/ if(P36==0) //按键minute-- { delay100us(); if(P36==0) { signminutedown=1; } } if(signminutedown==1&&P36==1) {signminutedown=0;minute--;} /*---------------------------------------------------------------------------*/ if(P33==0) //按键minute + 10 { delay100us(); if(P33==0) { signminuteup10=1; } } if(signminuteup10==1&&P33==1) {signminuteup10=0;minute=minute+10;} /*---------------------------------------------------------------------------*/ if(P32==0) //按键minute - 10 { delay100us(); if(P32==0) { signminutedown10=1; } } if(signminutedown10==1&&P32==1) {signminutedown10=0;minute=minute-10;} /*---------------------------------------------------------------------------*/ if(P31==0) //按键begin { delay100us(); if(P31==0) { signbegin=1; } } if(signbegin==1&&P31==1) { TH0 = 0xD8; //定时器装入值 10ms TL0 = 0xF0; //定时器装入值 10ms ET0 = ~ET0; TR0 = ~TR0; EA=~EA; signbegin=0; begin=1; } /*---------------------------------------------------------------------------*/ } } void Timer0Interrupt(void) interrupt 1 { TH0 = 0x0DC; //重装数值 TL0 = 0x05; //重装数值 TMOD = 0x01; ET0 = 1; TR0 = 1; sign++; //add your code here! } void sjxs() { unsigned char u,e; unsigned int sjfj[4]; //分解储存 sjfj[0]=second/1 %10; //数据分解 个 sjfj[1]=second/10 %10; //数据分解 十 sjfj[2]=minute/1 %10; //数据分解 百 sjfj[3]=minute/10 %10; //数据分解 千 for(e=0;e<10;e++) { P2=b[0]; //个位 P0=c[sjfj[0]]; for(u=0;u<30;u++) ; P0=0x00;P2=0x00; //消除光影子 if(second>9) { P2=b[1]; //十位 P0=c[sjfj[1]]; for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子 if(minute>0) { P2=b[2]; //百 P0=c[sjfj[2]]|0x20; for(u=0;u<30;u++) ;} P0=0x00;P2=0x00; //消除光影子 if(minute>9) { P2=b[3]; //千 P0=c[sjfj[3]]; for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子 } } void delay100us() //误差 0us for按键防震,防静电 { unsigned char a,e; for(e=1;e>0;e--) for(a=47;a>0;a--); } void delay400ms(void) //误差 0us { unsigned char a1,b1,c1; for(c1=29;c1>0;c1--) for(b1=70;b1>0;b1--) for(a1=97;a1>0;a1--); } void fmq() {unsigned long s,z,w; for(w=0;w<3;w++) { for(z=0;z<3000;z++) { for(s=0;s<3;s++) {P10=~P10;} } delay400ms(); } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
344 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
819 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1400 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1335 浏览 3 评论
1617 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 17:27 , Processed in 0.624202 second(s), Total 83, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号