proteus仿真ds1302的显示问题
我用proteus仿真的ds1302,用数码管显示,本身应该每60秒一清零,但是却变成了99秒一清零,分钟也不对,但ds1302走时却是对的,ds1302的子程序是从网上...
我用proteus仿真的ds1302,用数码管显示,本身应该每60秒一清零,但是却变成了99秒一清零,分钟也不对,但ds1302走时却是对的,ds1302的子程序是从网上下载的,不知是哪里的问题,请大侠们帮小弟看看,在这里先谢过了。#include
#include "ds1302.h"#define uchar unsigned char#define uint unsigned intuchar code duanma[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0~9段码,共阴极sbit S1=P3^0; //小时调整按键sbit S2=P3^1; //分钟调整按键sbit S3=P3^2; //秒钟调整按键uchar hour; //小时计数变量uchar minute; //分钟计数变量uchar second; //秒钟计数变量/************************************ 显示小时子函数 入口参数:h 出口参数:无************************************/void display_xiaoshi(uchar h){ P2=0x00; //显示小时的十位 P0=duanma[h/10]; delay_1ms(1); P2=0x01; //显示小时的个位 P0=duanma[h%10]; delay_1ms(1); P2=0x02; //显示- P0=0x40; delay_1ms(1); P2=0x0f; //关闭所有数码管}/************************************ 显示分钟子函数 入口参数:m 出口参数:无************************************/void display_fenzhong(uchar m){ P2=0x03; //显示分钟的十位 P0=duanma[m/10]; delay_1ms(1); P2=0x04; //显示个的个位 P0=duanma[m%10]; delay_1ms(1); P2=0x05; //显示- P0=0x40; delay_1ms(1); P2=0x0f; //关闭所有数码管}/************************************ 显示秒钟子函数 入口参数:s 出口参数:无************************************/void display_miaozhong(uchar s){ P2=0x06; //显示秒钟的十位 P0=duanma[s/10]; delay_1ms(1); P2=0x07; //显示秒的个位 P0=duanma[s%10]; delay_1ms(1); P2=0x0f; //关闭所有数码管}void main(void){ init(); while(1) { second=DS1302Read( 0x81 ); minute=DS1302Read( 0x83 ); hour=DS1302Read( 0x85 ); second &= 0x7f; minute &= 0x7f; hour &=0x1f ; display_xiaoshi( hour ); display_fenzhong(minute ); display_miaozhong(second ); }} 展开
#include "ds1302.h"#define uchar unsigned char#define uint unsigned intuchar code duanma[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0~9段码,共阴极sbit S1=P3^0; //小时调整按键sbit S2=P3^1; //分钟调整按键sbit S3=P3^2; //秒钟调整按键uchar hour; //小时计数变量uchar minute; //分钟计数变量uchar second; //秒钟计数变量/************************************ 显示小时子函数 入口参数:h 出口参数:无************************************/void display_xiaoshi(uchar h){ P2=0x00; //显示小时的十位 P0=duanma[h/10]; delay_1ms(1); P2=0x01; //显示小时的个位 P0=duanma[h%10]; delay_1ms(1); P2=0x02; //显示- P0=0x40; delay_1ms(1); P2=0x0f; //关闭所有数码管}/************************************ 显示分钟子函数 入口参数:m 出口参数:无************************************/void display_fenzhong(uchar m){ P2=0x03; //显示分钟的十位 P0=duanma[m/10]; delay_1ms(1); P2=0x04; //显示个的个位 P0=duanma[m%10]; delay_1ms(1); P2=0x05; //显示- P0=0x40; delay_1ms(1); P2=0x0f; //关闭所有数码管}/************************************ 显示秒钟子函数 入口参数:s 出口参数:无************************************/void display_miaozhong(uchar s){ P2=0x06; //显示秒钟的十位 P0=duanma[s/10]; delay_1ms(1); P2=0x07; //显示秒的个位 P0=duanma[s%10]; delay_1ms(1); P2=0x0f; //关闭所有数码管}void main(void){ init(); while(1) { second=DS1302Read( 0x81 ); minute=DS1302Read( 0x83 ); hour=DS1302Read( 0x85 ); second &= 0x7f; minute &= 0x7f; hour &=0x1f ; display_xiaoshi( hour ); display_fenzhong(minute ); display_miaozhong(second ); }} 展开
1个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一种由意法半导体(STMicroelectronics)公司设计和生产的单片机系列,广泛用于嵌入式系统、物联网(IoT)设备、汽车电子、工业自动化等领域。STM32具有以下优点:1. 低功耗:STM32单片机通常具有较低的功耗,...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询