完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用138译码器动态显示1-100,结果只是显示三个零,代码如下。请多指教【抱拳】
#include"reg52.h" typedef unsigned int u16; typedef unsigned char u8; u8 temp,bai,shi,ge,a; ***it LSA=P2^2; //138译码器三个输入口 ***it LSB=P2^3; ***it LSC=P2^4; u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void init(); //初始化函数 void display(u8 bai,u8 shi,u8 ge); void delay(u16 z); void main() { init(); while(1) { if(a==20) { a=0; temp++; if(temp==100) temp=0; bai=temp/100; shi=temp%100/10; ge=temp%10; } display(bai,shi,ge); } } void init() //初始化函数 { temp=0; a=0; bai=0; shi=0; ge=0; TMOD=0x01; TH0=(25535-50000)/256; TL0=(25535-50000)%256; ET0=1; EA=1; TR0=1; } void display(u8 bai,u8 shi,u8 ge) //显示函数 { LSA=0; LSB=0; LSC=0; P0=smgduan[ge]; delay(1); //P0=0x00; LSA=1; LSB=0; LSC=0; P0=smgduan[shi]; delay(1); //P0=0x00; LSA=0; LSB=1; LSC=0; P0=smgduan[bai]; delay(1); //P0=0x00; } void delay(u16 z) //延时函数 { u16 x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void timer0() interrupt 0 //中断函数 { TH0=(25535-50000)/256; TL0=(25535-50000)%256; a++; } |
|
相关推荐 |
|
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 15:17 , Processed in 0.578734 second(s), Total 48, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号