【精品】基于单片机的LED数码管数字电子钟智能仪表毕业论文

2026/4/25 22:33:41

附录A:硬件原理图

附录B:C语言源程序

#include

sbit IO=P3^3; ds1302输入输出口(数据线) sbit SCLK=P3^4; ds1302时钟信号段(时钟线) sbit RST=P3^5; ds1302复位端口 sbit DISPLAY_DAT=P1^0; LED数据端口 sbit DISPLAY_CLK=P1^1; LED信号端口 sbit s1=P1^4; 功能键 sbit s2=P1^5; 加键 sbit s3=P1^6; 减键 sbit s4=P1^7; 切换键 bit flag,flag_time;

char set_miao=0,set_fen=0,set_shi=12; uchar code SMG[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; 数码管位码

void delay() 延时5us {

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }

void delayxms(uint z) 延时程序 {

uint x,y;

for(x=z;x>0;x--) for(y=110;y>0;y--); }

void write_a_byte_to_1302 (uchar dat) 向DS1302写入一个字节 {

unsigned char i; for(i=0;i<8;i++) {

SCLK=0; delay(); dat=dat>>1; IO=CY; SCLK=1; delay();

} }

uchar receive_a_byte_from_1302() 从DS1302读出一个字节 {

unsigned char i;

unsigned char temp=0x00; IO=1;

for(i=0;i<8;i++) {

SCLK=0; delay();

temp=temp>>1; if(IO==1)

temp=temp|0x80; SCLK=1; delay(); }

return temp16*10+temp; }

uchar read_data(uchar addr) {

unsigned char dat; RST=0; delay(); SCLK=0; delay(); RST=1; delay();

write_a_byte_to_1302(addr);

dat=receive_a_byte_from_1302(); SCLK=1; RST=0;

return dat; }

void write_data(uchar addr,uchar dat) {

RST=0; delay(); SCLK=0; delay(); RST=1; delay();

write_a_byte_to_1302(addr); write_a_byte_to_1302(dat);

从DS1302指定位置读取数据 向DS1302某地址写数据

SCLK=1; RST=0; }

void get_time() 从DS1302中读取当前时间 {

current_time[0]=read_data(0x81); 秒 current_time[1]=read_data(0x83); 分 current_time[2]=read_data(0x85); 时 current_time[3]=read_data(0x87); 日 current_time[4]=read_data(0x89); 月 current_time[5]=read_data(0x8D); 年 }

void display1() 显示时分秒 {

display_buffer[0]=current_time[0]; 秒个位 display_buffer[1]=current_time[0]10; 秒十位 display_buffer[2]=10; ——

display_buffer[3]=current_time[1]; display_buffer[4]=current_time[1]10; display_buffer[5]=10;

display_buffer[6]=current_time[2]; display_buffer[7]=current_time[2]10; }

void display2() 显示年月日 {

display_buffer[0]=current_time[3]; 天各位 display_buffer[1]=current_time[3]10; 天十位 display_buffer[2]=10; ——

display_buffer[3]=current_time[4]; display_buffer[4]=current_time[4]10; display_buffer[5]=10;

display_buffer[6]=current_time[5]; display_buffer[7]=current_time[5]010; }

void display3() 显示秒表 {

display_buffer[0]=current_time[0]; 秒个位 display_buffer[1]=current_time[0]10; 秒十位 display_buffer[2]=10; display_buffer[3]=0; display_buffer[4]=0; display_buffer[5]=10; display_buffer[6]=0; display_buffer[7]=0;


【精品】基于单片机的LED数码管数字电子钟智能仪表毕业论文.doc 将本文的Word文档下载到电脑
搜索更多关于: 【精品】基于单片机的LED数码管数字电子钟智能仪表毕业论文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219