开发工具:
文件大小: 416kb
下载次数: 0
上传时间: 2013-03-17
详细说明: LED数#include #include #define ulong unsigned long #define uchar unsigned char #define _Nop() _nop_() sbit T_CLK = P1^0; sbit T_IO = P1^1; sbit T_RST = P1^2; sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; sbit DA_in_port = P0^2; sbit CLK_port = P0^1; sbit Latch_port = P0^0; uchar data time_data[8]={0x00,0x57,0x16,0x00,0x00,0x00,0x00,0x00}; uchar code shum[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0 x5e,0x79,0x71, 0x40}; uchar code shha[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar shu1,shu2,shu3,shu4,shu5,shu6,shu7,shu8; void W1302(uchar ucAddr, uchar ucDa)//写1字节 { uchar i; //写地址 T_RST=0; T_CLK=0;//增加 T_RST=1; ACC=ucAddr; for(i=8;i>0;i--) //修改了 { T_IO=ACC0; //修改了,这里不能用ACC^0,要在前面定义 T_CLK=1; T_CLK=0; ACC=ACC>>1; } //写数据 ACC=ucDa; for(i=8;i>0;i--) //修改了 { T_IO=ACC0; //修改了,这里不能用ACC^0,要在前面定义 T_CLK=1; T_CLK=0; ACC=ACC>>1; } T_CLK=1; T_RST=0; } uchar R1302(uchar ucAddr) //读1字节 { uchar i; ACC=ucAddr; T_RST=0; T_CLK=0; T_RST=1; for(i=8;i>0;i--) //修改了 { T_IO=ACC0; //修改了,这里不能用ACC^0,要在前面定义 T_CLK=1; T_CLK=0; ACC=ACC>>1; } for(i=8;i>0;i--) //修改了 { ACC=ACC>>1; ACC7=T_IO; T_CLK=1; T_CLK=0; //修改了 } T_CLK=1; T_RST=0; return(ACC); } void Set1302(uchar *pClock) { uchar i; uchar ucAddr = 0x80; W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/ for(i =7; i>0; i--) { W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */ pClock++; ucAddr +=2; } W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/ } void Get1302(uchar ucCurtime[]) { uchar i; uchar ucAddr = 0x81; for (i=0; i<7; i++) { ucCurtime[i] = R1302(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */ ucAddr += 2; } } void HC595_Data_Send() { uchar ab,i,daH,hang; for(ab=0;ab<8;ab++) { switch(ab) { case 0: daH=shum[shu1]; break; case 1: daH=shum[shu2]; break; case 2: daH=shum[shu3]; break; case 3: daH=shum[shu4]; break; case 4: daH=shum[shu5]; break; case 5: daH=shum[shu6]; break; case 6: daH=shum[shu7]; break; case 7: daH=shum[shu8]; break; } hang=shha[ab]; Latch_port = 0; /*HC595锁定输出,避免数据传输过程中,屏数据变化从而显示闪烁*/ CLK_port = 0; for(i=0;i<8;i++) { if((daH&0x80;)!=0) DA_in_port = 1; else DA_in_port = 0; CLK_port = 1; CLK_port = 0; daH <<= 1; } for(i=0;i<8;i++) { if((hang&0x80;)!=0) DA_in_port = 1; else DA_in_port = 0; CLK_port = 1; CLK_port = 0; hang <<= 1; } Latch_port = 1; /*允许HC595数据输出到Q1-Q8端口*/ Latch_port = 0; /*锁定HC595数据输出*/ } } void main() { Set1302(time_data); while(1) { Get1302(time_data); shu8=time_data[0]; shu7=time_data[0]/10; shu6=16; shu5=time_data[1]; shu4=time_data[1]/10; shu3=16; shu2=time_data[2]; shu1=time_data[2]/10; HC595_Data_Send(); } } 码管驱动 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.