1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
5个回答
|
|
贴个代码吧
|
|
|
|
这个代码会让所有数码管都加上小数点,而我只想一位数码管有小数点
|
|
|
|
#include "reg52.h"
typedef unsigned int u16; typedef unsigned char u8; ***it LSA=P2^2; ***it LSB=P2^3; ***it LSC=P2^4; ***it k2=P3^0; ***it k3=P3^2; ***it k4=P3^3; u8 code duanxuan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; u8 s1,s2,s3,sum; u8 MBXS[4]; void delay(u16 i) { while(i--); } void Timer0Init() { TMOD|=0X01; TH0=0Xd8; TL0=0Xf0; ET0=1; EA=1; TR0=1; } void DigDisplay() { u8 i; for(i=0;i<4;i++) { switch(i) { case(0)SA=0;LSB=0;LSC=0; break; case(1)SA=1;LSB=0;LSC=0; break; case(2)SA=0;LSB=1;LSC=0; break; case(3)SA=1;LSB=1;LSC=0; break; } P0=MBXS; delay(100); P0=0x00; } } void datapros() { MBXS[0]=duanxuan[s1/10]; MBXS[1]=duanxuan[s2%10]; MBXS[2]=duanxuan[s2/10]; MBXS[3]=duanxuan[s3%10]; } void main() { Timer0Init(); while(1) { datapros(); DigDisplay(); } } void Timer0() interrupt 1 { TH0=0Xd8; TL0=0Xf0; s1++; if(s1>=100) { s1=0; s2++; if(s2>=100) { s2=0; s3++; if(s3>=10) { s3=0; } } } } 帮忙看看,谢谢 |
|
|
|
|
|
能帮我看看这个程序吗,为什么实现不了单键暂停,清零,只能实现开启
#include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; ***it LSA=P2^2; ***it LSB=P2^3; ***it LSC=P2^4; ***it k2=P3^0; ***it k3=P3^2; ***it k4=P3^3; u8 code duanxuan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; u8 s1,s2,s3,sum; u8 MBXS[4]; void delay(u16 i) { while(i--); } void Timer0Init() { TMOD|=0X01; TH0=0Xd8; TL0=0Xf0; ET0=1; EA=1; TR0=1; } void DigDisplay() { u8 i; for(i=0;i<4;i++) { switch(i) { case(0): LSA=0;LSB=0;LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0; break; } P0=MBXS; delay(100); P0=0x00; } } void datapros() { MBXS[0]=duanxuan[s1/10]; MBXS[1]=duanxuan[s2%10]|0X80; MBXS[2]=duanxuan[s2/10]; MBXS[3]=duanxuan[s3%10]; } void key2() { if(k2==0) { delay(1000); if(k2==0) { Timer0Init(); sum++; switch(sum) { case(2):TR0=0; case(3):s1=0;s2=0;s3=0; default:sum=0; } } while(!k2); } } void main() { while(1) { key2(); datapros(); DigDisplay(); } } void Timer0() interrupt 1 { TH0=0Xd8; TL0=0Xf0; s1++; if(s1>=100) { s1=0; s2++; if(s2>=100) { s2=0; s3++; if(s3>=10) { s3=0; } } } } |
|
1 条评论
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:20 , Processed in 1.355350 second(s), Total 101, Slave 78 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号