完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include void display(unsigned char* lp,unsigned char lc);//数字的显示函数,lp为指向数组的地址,lc为显示的个数 void displaystr(unsigned char*lp,unsigned char lc);//数字的显示函数,同上 void delay();//延时子函数,5个空指令 code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00}; //共阴顺序小数点暗(0-9),--,全灭 unsigned char l_tmpdate[8]={0,1,2,3,4,5,6,7}; //定义数组变量,并赋值0,1,2,3,4,5,6,7,就是本程序要显示的八个数 code unsigned char l_24C02[5]={0x5b,0x66,0x39,0x3f,0x5b}; //定义数组常量 void main(void) { unsigned char i=0; while(1) { display(l_tmpdate,8);//用数字显示函数显示八个数字 displaystr(l_24C02,5);//或者用这个函数显示5个字符 } } void display(unsigned char* lp,unsigned char lc) //显示 { unsigned char i; P2=0; //端口2为输出 P1=P1&0xF8; //将P1口的前3位输出0,对应74LS138译门输入脚,全0为第一位数码管 for(i=0;i P2=table[lp]; delay(); if(i==7);//检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到第四位数据 break; P2=0; //清零端口,准备显示下位 P1++; //下一位数码管 } } void displaystr(unsigned char*lp,unsigned char lc) //显示 { unsigned char i; P2=0; P1=P1&0xF8; for(i=0;i P2=lp; //直接输出显示设定好的数值到数码段 delay(); if(i==7); break; P2=0; //清零端口,准备显示下位 P1++; //下一位数码管 } } void delay(void) //空5个指令 { _nop_();_nop_();_nop_();_nop_();_nop_(); } |
|
相关推荐
1个回答
|
|
上传一下仿真和编译文件吧,这么看我也看不出来。我需要调试一下!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
6494 浏览 3 评论
7760 浏览 1 评论
8012 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
9830 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1289 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:20 , Processed in 0.392782 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号