久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1782|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

DS1302模塊數(shù)據(jù)用數(shù)碼管顯示時,數(shù)碼管發(fā)生閃爍數(shù)據(jù)時而正常時而統(tǒng)一變?yōu)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1110071 發(fā)表于 2024-1-26 22:09 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
所有代碼,原理圖在附件,希望大佬不嫌麻煩指點(diǎn)一下

部分代碼如下
//頭文件聲明區(qū)域
#include <STC15F2K60S2.H>
#include <Key.h>
#include <Seg.h>
#include <channel.h>
#include <ds1302.h>

//變量聲明區(qū)
unsigned int Key_Val,Key_Down,Key_Old,Key_Up;//按鍵掃描專用變量
unsigned int Key_Slow_Down;//按鍵減速專用變量,小 10ms
unsigned int Seg_Slow_Down;//數(shù)碼管減速專用變量,大 500ms
unsigned int LED_Slow_Down;
unsigned char Seg_Buf[8] = {10,10,10,10,10,10,10,10};//數(shù)碼管顯示數(shù)據(jù)存放數(shù)組
unsigned char Seg_Pos;//數(shù)碼管掃描專用變量
unsigned char ucrtc[3] = {0x00,0x00,0x00};
sbit LSA=P2^5;
sbit LSB=P2^6;
sbit LSC=P2^7;
/* 鍵盤處理函數(shù) */        
void Key_Proc()
{
        if(Key_Slow_Down) return;
        Key_Slow_Down = 1;//鍵盤減速程序

  Key_Val = Key_read();//實(shí)時讀取鍵碼值
  Key_Down = Key_Val & (Key_Old ^ Key_Val);//捕捉按鍵下降沿
  //Key_Up = ~Key_Val & (Key_Old ^ Key_Val);//捕捉按鍵上降沿
  Key_Old = Key_Val;//輔助掃描變量        
}

/* 信息處理函數(shù) */
void Seg_Proc()
{
        if(Seg_Slow_Down) return;
        Seg_Slow_Down = 1;//數(shù)碼管減速程序
        //信息讀取區(qū)域
        Read_rtc(ucrtc);
        //數(shù)據(jù)處理區(qū)域
        Seg_Buf[0]=ucrtc[0]/16;
        Seg_Buf[1]=ucrtc[0]%16;
        Seg_Buf[2]=10;
        Seg_Buf[3]=ucrtc[1]/16;
        Seg_Buf[4]=ucrtc[1]%16;
        Seg_Buf[5]=10;
        Seg_Buf[6]=ucrtc[2]/16;
        Seg_Buf[7]=ucrtc[2]%16;
}

/* 其他顯示函數(shù) */
void Led_Proc()
{
        
}

/* 定時器0中斷初始化函數(shù) */
void Timer0_Init(void)                //1毫秒@11.0592MHz
{
        TMOD &= 0xF0;                        //設(shè)置定時器模式
        TMOD |= 0x01;                        //設(shè)置定時器模式
        TL0 = 0x66;                                //設(shè)置定時初始值
        TH0 = 0xFC;                                //設(shè)置定時初始值
        TF0 = 0;                                //清除TF0標(biāo)志
        TR0 = 1;                                //定時器0開始計(jì)時
        
        ET0 = 1; //定時器0中斷允許開關(guān)
        EA = 1 ; //總中斷允許開關(guān)
        
}

/* 定時器0中斷服務(wù)函數(shù) */
void Timer0Server() interrupt 1
{  
        TL0 = 0x66;                //設(shè)置定時初始值
        TH0 = 0xFC;                //設(shè)置定時初始值
        if(++Key_Slow_Down == 10) Key_Slow_Down = 0;//鍵盤減速專用
        if(++Seg_Slow_Down == 100) Seg_Slow_Down = 0;//數(shù)碼管減速專用
        if(++Seg_Pos == 8) Seg_Pos = 0;//數(shù)碼管顯示專用
}

//主函數(shù)
void main()
{
        Timer0_Init();
        Set_rtc(ucrtc);
        while (1)
        {
                Key_Proc();
                Seg_Proc();
                Led_Proc();
        }
}

數(shù)碼管驅(qū)動部分
#include <Seg.h>

unsigned char Dula[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
unsigned char Wela[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void Seg_disp(unsigned char wela,dula)
{
        HC753(7);
        P0=0XFF;//消影
        HC753(6);
        P0=Wela[wela];
        HC753(7);
        P0=Dula[dula];

}

channle部分
#include <STC15F2K60S2.H>

sbit LSA=P2^5;
sbit LSB=P2^6;
sbit LSC=P2^7;

void HC753(unsigned char channel)//三八譯碼器方式選擇
{
        switch(channel)
        {
                case 0:LSC=0;LSB=0;LSA=0;break;
                    case 4:LSC=1;LSB=0;LSA=0;break;
                                case 5:LSC=1;LSB=0;LSA=1;break;
                                case 6:LSC=1;LSB=1;LSA=0;break;
                                case 7:LSC=1;LSB=1;LSA=1;break;
        }
}

2.zip

47.72 KB, 下載次數(shù): 2

CT107D單片機(jī)競賽板V20原理圖.pdf

96.94 KB, 下載次數(shù): 7

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:332444 發(fā)表于 2024-1-27 10:15 | 只看該作者
電路圖數(shù)碼管使用的是2片573沒看到使用138?
回復(fù)

使用道具 舉報(bào)

板凳
ID:332444 發(fā)表于 2024-1-27 12:59 | 只看該作者
數(shù)碼管使用2片573的話就很簡單了,和直接使用IO組一樣賦值即可,無需像使用138那樣麻煩,直接控制1 2 4 8 16...即可控制數(shù)碼管的位。
回復(fù)

使用道具 舉報(bào)

地板
ID:1110071 發(fā)表于 2024-1-27 17:14 | 只看該作者
xianfajushi 發(fā)表于 2024-1-27 12:59
數(shù)碼管使用2片573的話就很簡單了,和直接使用IO組一樣賦值即可,無需像使用138那樣麻煩,直接控制1 2 4 8 1 ...

使用了138
LED,數(shù)碼管段選,位選都是通過138進(jìn)行控制的,分時復(fù)用
原理圖中的U24是138
回復(fù)

使用道具 舉報(bào)

5#
ID:1110071 發(fā)表于 2024-1-27 17:15 | 只看該作者
xianfajushi 發(fā)表于 2024-1-27 10:15
電路圖數(shù)碼管使用的是2片573沒看到使用138?

138來控制573
回復(fù)

使用道具 舉報(bào)

6#
ID:332444 發(fā)表于 2024-1-27 22:22 | 只看該作者

工程壓縮包包含仿真圖?
回復(fù)

使用道具 舉報(bào)

7#
ID:332444 發(fā)表于 2024-1-27 22:27 | 只看該作者

Seg_Pos 在哪調(diào)用?
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2024-1-28 08:00 | 只看該作者
316396226 發(fā)表于 2024-1-27 17:14
使用了138
LED,數(shù)碼管段選,位選都是通過138進(jìn)行控制的,分時復(fù)用
原理圖中的U24是138

P0分時復(fù)用的外圍電路74HC573傳過數(shù)據(jù)后要隨手關(guān)門。特別是段碼、位碼選通都要經(jīng)過74HC138、74HC02控制,邏輯關(guān)系稍顯復(fù)雜,一步錯就步步錯。
void Seg_disp(unsigned char wela,dula)
{        
        P0=0xff;       HC753(7); HC753(0);//段消影
        P0=Wela[wela]; HC753(6); HC753(0);//傳位碼
        P0=Dula[dula]; HC753(7); HC753(0);//傳段碼
}
回復(fù)

使用道具 舉報(bào)

9#
ID:332444 發(fā)表于 2024-1-28 09:31 | 只看該作者
數(shù)碼管動態(tài)驅(qū)動是最基礎(chǔ)的:延時》消隱》送段值》送位值。
回復(fù)

使用道具 舉報(bào)

10#
ID:332444 發(fā)表于 2024-1-28 11:33 | 只看該作者
或非門00=1余皆0電路中WR接哪里?573使能1為開。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品91 | 日韩综合网 | 亚洲成av | 国产精品久久久久久久久久久新郎 | 精品国产一区二区三区久久 | 国产精品一区二区久久精品爱微奶 | 中文字幕欧美日韩一区 | 国产精品亚洲第一区在线暖暖韩国 | 久色网| 日日干夜夜操天天操 | 永久av| a级毛片毛片免费观看久潮喷 | 精品福利在线 | 亚洲欧美在线视频 | 欧美性久久| 亚洲精品成人 | 亚洲天堂精品久久 | 在线成人av | 久久久www成人免费精品 | 国产精品久久久久久久久 | 亚洲品质自拍视频 | 亚洲精品免费在线观看 | 成年精品 | 精品成人一区 | 欧美在线a | 六月色婷| 综合久久综合久久 | 久草视| 91香蕉| 99精品视频一区二区三区 | 97综合在线| 欧美性大战xxxxx久久久 | 成人一区二区在线 | 最新国产精品精品视频 | 拍真实国产伦偷精品 | 精品欧美在线观看 | 欧美国产日韩在线观看 | 国产日韩欧美在线观看 | 在线一区二区三区 | 精品国产乱码久久久久久蜜退臀 | 亚洲午夜精品视频 |