网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月08日漏签0天
单片机吧 关注:212,799贴子:1,049,754
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回单片机吧
>0< 加载中...

求助。动态显示计时器的电路图

  • 只看楼主
  • 收藏

  • 回复
  • 善良纯洁的小白
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在做一个带有记忆功能的计时器的电路图。可是显像管不知道应该怎么连。如果有完整的记忆功能的电路图更好了。 求求大神帮忙


  • 善良纯洁的小白
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit scl=P1^5; //24c08 SCL
sbit sda=P3^6; //24c08 SDA
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec; //定义计数值,每过1秒,sec加1
uint write;//写标志位
void delay1(uchar x)
{
uint i;
for(i=0; i<x; i++);
}
void flash(void) //延时大概2us
{
_nop_();
_nop_();
}
void x24c02_init(void)
{
scl = 1;
flash();
sda = 1;
flash();
}
void stop()
{
sda = 0;
flash();
scl = 1;
flash();
sda = 1; //在SCL高电平期间,SDA上升沿停止I2C总线
flash();
}
void writex(uchar j)
{
uchar i,temp;
temp = j;
for(i=0; i<8; i++)
{
temp = temp << 1; //把最高位移入CY
scl = 0; //SCL低电平期间才允许SDA数据变化
flash();
sda = CY; //把CY送上SDA
flash();
scl = 1;
flash();
}
scl = 0;
flash();
sda = 1;
flash();
}
uchar readx(void)
{
uchar i, j, k = 0;
scl = 0;
flash();
sda = 1;
for(i=0; i<8; i++)
{
flash();
scl = 1;
flash();
if(sda == 1)
{
j = 1;
}
else j = 0;
k = (k << 1) | j;
scl = 0;
}
flash();
return(k);
}
void clock(void)
{
uchar i = 0;
scl = 1;
flash();
while((sda == 1) && (i < 255))
{
i++;
}
scl = 0;
flash();
}
uchar x24c02_read(uchar address)
{
uchar i;
start();
writex(0xa0);
clock();
writex(address);
clock();
start();
writex(0xa1);
clock();
i = readx();
stop();
delay1(10);
return(i);
}
void x24c02_write(uchar address, uchar info)
{
EA = 0;
start();
writex(0xa0);
clock();
writex(address);
clock();
writex(info);
clock();
stop();
EA = 1;
delay1(50);
}
void Delay_1ms(uint i)
{
uchar x, j;
for(j=0; j<i; j++)
for(x=0; x<=148; x++)
;
}
void LED() //LED显示函数
{
P2 = 0x06;
P0 = table[sec / 10]; //显示十位数
Delay_1ms(5);
P2 = 0x07;
P0 = table[sec % 10];//显示个位数
Delay_1ms(5);
}
void time0(void) interrupt 1 using 3
{
static uchar Count = 0;
TH0 = (65536 - 50000) / 256; //对TH0 TL0赋值
TL0 = (65536 - 50000) % 256; //重装计数初值
Count++; //每过250ust tcnt加一
if(Count == 20) //计满20次(1秒)时
{
Count = 0; //重新再计
sec++;
write = 1; //1秒写一次24C08
if(sec == 100) //定时100秒,在从零开始计时
{
sec = 0;
}
}
}
void Time0_Init(void)
{
TMOD = 0x01; //定时器工作在方式1
ET0 = 1;
EA = 1;
TH0 = (65536 - 50000) / 256; //对TH0 TL0赋值
TL0 = (65536 - 50000) % 256; //定时器50ms中断一次
TR0 = 1; //开始计时
}
void Main(void)
{
P2 = 0x00;
x24c02_init(); //初始化24C02
Time0_Init();
sec = x24c02_read(2);//读出保存的数据赋于sec
while(1)
{
LED();
if(write == 1) //判断计时是否满1秒
{
write =0 ; //清零
x24c02_write(2,sec); //在24c08地址2中写入数据sec
}
}
}I


2025-12-08 05:06:46
广告
不感兴趣
开通SVIP免广告
  • 善良纯洁的小白
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上面是网上找的程序 可是没有电路图 找了好久都没有找到一个电路图 新手完全不会连啊


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示