完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char uchar code dispcode[]={0xFA,0x22,0xB9,0xAB,0x63,0xCB,0xDB,0xA2,0xFB,0xEB,0x01,0}; uchar disp[6];//={1,0,2,3,4,5}; long value=0; uchar op=10; uchar flag=1; void delay(void) { uchar i; for(i=250;i>0;i--); } void display() { uchar i,t=0; uchar code w[]={0x10,0x20,0x01,0x02,0x04,0x08}; for(i=0;i<6;i++) { P2=0; P0=dispcode[disp[i]]; if((t==0)&&(disp[i]==0)&&(i<5))P2=0; else { P2=w[i]; t=1; } //P2=k; //k=k<<1; //if(k==0)k=0x01; delay(); P2=0; } } uchar inkey() { uchar i,j=0x01,k; uchar code keytab[16]={0x81,0x41,0x21,0x11,0x82,0x42,0x22,0x12,0x84, 0x44,0x24,0x14,0x88,0x48,0x28,0x18}; for(i=0;i<4;i++) { P3=~j; k=(~P3)&0XF0; if(k!=0)break; j=j<<1; } k=k+j; // disp[0]=k/16; // disp[1]=k%16; for(i=0;i<16;i++) { if(keytab[15-i]==k)break; } // disp[2]=i/10;disp[3]=i%10; return i; } void long2disp(long n) { uchar i; for(i=5;i>0;i--) { disp[i]=n%10; n=n/10; } disp[0]=n; } long disp2long() { uchar i; long n=0; for(i=0;i<6;i++) { n=n*10+disp[i]; } return n; } void key_action(uchar key) { uchar i; if(key<=9) { if(flag==0) { for(i=0;i<5;i++){disp[i]=disp[i+1];} disp[5]=key; } else for(i=0;i<5;i++)disp[i]=0; disp[5]=key; flag=0; } else if(key==14) {value=0;long2disp(value);op=10; flag=1;} else { if(flag==0) { switch(op) { case 10:value=value+disp2long();break; case 11:value=value-disp2long();break; case 12:value=value*disp2long();break; case 13:value=value/disp2long();break; //case 14:value=0;break; case 15:value=value;break; } if(value>199999) { value=0; } long2disp(value); flag=1; } op=key; } } void main() { uchar key; //P0=0x40; while(1) { key=inkey(); if(key<16) { display(); if(key==inkey()) { key_action(key); while(key==inkey()) {display();} } } display(); } } |
|
相关推荐
2个回答
|
|
可以用这样的算法,就是先判断例如3-4,先判断3大于等于4么如果不大于就使数码管的中间一个led灯亮,再用4-3得到后面的数值。如果3不大于4则正常显示。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
2024 OpenHarmony技术年度分享会
12/25/2024, 6:00:00 AM报名中开源芯片系列讲座第25期:RISC-V架构在高性能领域的进展与挑战
12/25/2024, 12:00:00 PM报名中OpenHarmony标准系统: 树莓派移植②
12/26/2024, 11:00:00 AM报名中OpenHarmony标准系统: 树莓派移植①
12/19/2024, 11:00:00 AM 回顾OpenHarmony稳定性专项分享
12/12/2024, 11:00:00 AM 回顾干簧技术应用:汽车行业新视角
12/11/2024, 6:00:00 AM 回顾OpenHarmony Linux 6.6 内核升级移植分享
12/10/2024, 11:00:00 AM 回顾OpenHarmony性能优化分享
12/5/2024, 11:00:00 AM 回顾OpenHarmony轻量板级移植:STM32移植分享
11/28/2024, 11:00:00 AM 回顾0penHarmony板级移植:龙芯移植适配:DAYU400移植经验分享
11/21/2024, 11:00:00 AM 回顾开发者手机OH5.0切换实践分享
11/19/2024, 11:00:00 AM 回顾OpenHarmony板级移植:RK3568移植分享
11/14/2024, 11:00:00 AM 回顾数据智能系列讲座第4期:预训练的基础模型下的持续学习
10/30/2024, 12:00:00 PM 回顾2024开放原子开源生态大会——开鸿助力产业生态与人才培养分论坛
9/26/2024, 5:30:00 AM 回顾2024开放原子开源生态大会——OpenHarmony生态主题演讲
9/26/2024, 2:00:00 AM 回顾数据智能系列讲座第3期—交流式学习:神经网络的精细与或逻辑与人类认知的对齐
9/25/2024, 12:00:00 PM 回顾2024开放原子开源生态大会——开幕式
9/25/2024, 1:30:00 AM 回顾2024 RISC-V 中国峰会 Day 3 主会场A
8/23/2024, 1:00:00 AM 回顾2024 RISC-V 中国峰会 Day 3 主会场B
8/23/2024, 1:00:00 AM 回顾2024 RISC-V 中国峰会 Day 2 主会场A
8/22/2024, 1:00:00 AM 回顾【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12028 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:57 , Processed in 1.125685 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号
|