完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "reg51.h"
#include "intrins.h" #define SMGXSK P0 //数码管接受段选端口; #define SMGWX P2 //位选端口; #define u8 unsigned char ***it rst=P3^5; ***it SCLK=P3^6; ***it IO=P3^4; u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码; u8 code b[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; //读出秒分时日月周年地址 u8 code a[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c}; //写入地址秒分时日月周年的地址 u8 code time[7] = {0,0,0x24,0x07,0x05,0x06,0x16}; //存入时间; u8 readtime[7]={0}; //定义保存时间数组; u8 ledduan[8]={0}; //定义保存段选数组; void delay(u8 t) { u8 i,j; //延时 for(i=t;i>0;i--) for(j=110;j>0;j--); } /************* 写入数据***************/ void writedata(u8 addr,u8 dat) { u8 i; rst=0; _nop_(); SCLK=0; _nop_(); rst=1; _nop_(); for(i=0;i<8;i++) { IO=addr & 0x01; addr=addr>>1; SCLK=1; _nop_(); SCLK=0; _nop_(); } for(i=0;i<8;i++) { IO=dat & 0x01; dat=dat>>1; SCLK=1; _nop_(); SCLK=0; _nop_(); } rst=0; _nop_(); } /*********读出数据**************/ u8 readdata(u8 addr) { u8 i,dat,dat1; rst=0; _nop_(); SCLK=0; _nop_(); OE=1; _nop_(); for(i=0;i<8;i++) { IO=addr & 0x01; addr=addr>>1; SCLK=1; _nop_(); SCLK=0; _nop_(); } for(i=0;i<8;i++) { dat=IO; dat=dat<<7; dat1=dat1>>1; dat=dat|dat1; SCLK=1; _nop_(); SCLK=0; _nop_(); } rst = 0;
SCLK = 1; _nop_(); IO = 0; _nop_(); IO = 1; _nop_(); return dat; } /***********初始化时间******************/ void uint() { u8 i; writedata(0x8e,0x00); //关闭写保护; for(i=0;i<7;i++) { writedata(a,time); //写入时钟寄存器器地址和时间; } writedata(0x8e,0x80); //打开写保护; } void rdtm() { u8 i; for(i=0;i<7;i++) { readtime=readdata(b); //读取时间; } } /*************取时间的个位和十位***************/ void LEDDUAN() { ledduan[0]=smgduan[readtime[0]&0x0f]; //秒的个位; ledduan[1]=smgduan[readtime[0]/16]; //秒的十位; ledduan[2]=0x40; ledduan[3]=smgduan[readtime[1]&0x0f]; ledduan[4]=smgduan[readtime[1]/16]; //分; ledduan[5]=0x40; ledduan[6]=smgduan[readtime[2]&0x0f]; ledduan[7]=smgduan[readtime[2]/16]; //时; } /********数码管显示******************/ void display() { SMGXSK=ledduan[0]; SMGWX=0x00; delay(1); SMGWX=0xff; SMGXSK=ledduan[1]; SMGWX=0x04; delay(1); SMGWX=0xff; SMGXSK=ledduan[2]; SMGWX=0x08; delay(1); SMGWX=0xff; SMGXSK=ledduan[3]; SMGWX=0x0c; delay(1); SMGWX=0xff; SMGXSK=ledduan[4]; SMGWX=0x10; delay(1); SMGWX=0xff; SMGXSK=ledduan[5]; SMGWX=0x14; delay(1); SMGWX=0xff; SMGXSK=ledduan[6]; SMGWX=0x18; delay(1); SMGWX=0xff; SMGXSK=ledduan[7]; SMGWX=0x1c; delay(1); SMGWX=0xff; } void main() { uint(); //初始化时间; while(1) { rdtm(); LEDDUAN(); display(); } 网上查了查也没什么结果,所以特此跑来问问; } |
|
相关推荐
3个回答
|
|
回帖奖励 +8 分积分
无法生成目标文件,一般就是有错误,会有错误代码,你应该把错误代码贴上来,这样也好分析,光看代码也是很累的
|
|
|
|
大致看程序,main最后少了一个大括号
|
|
|
|
回帖奖励 +8 分积分
有些问题自己能找到的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
727 浏览 0 评论
815 浏览 0 评论
850 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
823 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1274 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11816 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 01:43 , Processed in 0.588604 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号