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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3198|回復: 6
收起左側

關于數碼管動態掃描的問題,請教一下大家!謝謝!

[復制鏈接]
ID:404479 發表于 2018-11-19 11:16 來自手機 | 顯示全部樓層 |閱讀模式
我的目的是讓四位共陰級數碼管實現動態掃描。分別顯示0.1.2.3,我是利用一個138譯碼器來提供位選,利用一個74H595實現段選!兩個芯片使能端均配置OK,我選用P2.2和P2.3以及P2.4為38譯碼器提供的輸入,用P2.5和P2.6以及P2.7口控制595芯片的移位寄存器時鐘,存儲寄存器時鐘,以及輸入!我遇到的問題為:
①程序寫入單片機,數碼管能口實現動態掃描,但是數碼管顯示的不是0.1.2.3,而是顯示的0.7.8.8,我就搞不懂了,我的段碼是正確的,移位寄存器得子函數也配置正確的,為什么它會顯示0.7.8.8呢?首先,面包板接線是沒問題的,要不然他不會實現動態掃描,這個是共陰數碼管,它有8位,分別是a.b.c.d.e.f.g.h,我是把h最高位接到595芯片的輸出口最高位,把a最低位接到595芯片輸出的最低位,因為595芯片移位是先移動段碼的最高位到595芯片輸出的的最高位,在依次移動次高位,那么我提供595芯片移位子函數也是正確的,為何明明是顯示0.1.2.3的段碼卻顯示出了0.7.8.8.呢?真心請教一下大家!
以下是程序:

#include <reg51.h>
#include <intrins.h>
typedef unsigned u16;
typedef unsigned u8;
u8 a,b;
sbit LSA=P2^2; //38譯碼器輸入A
sbit LSB=P2^3; //38譯碼器輸入B
sbit LSC=P2^4; //38譯碼器輸入C
sbit yiwei=P2^5; //74H595移位寄存器
sbit chunchu=P2^6; //74H595存儲寄存器
sbit shuru=P2^7; //74H595輸入端
u8 look[]={0x3f,0x06,0x5b,0x4f,0x00};
//數碼管段碼,4位數碼管分別顯示0.1.2.3
void delay(u16 z)
{
while(z--); //延時子函數
}
void ddr(u8 k) //74H595芯片配置子函數
{
yiwei=0; //首先把移位和存儲寄存器初始化
chunchu=0;

for(a=0;a<8;a++)//通過for循環8次移位
{
shuru=k>>7; //段碼先右移7次,把值賦給輸入
k<<=1; //段碼本身左移一次,次高位變高位
yiwei=1; //給移位寄存器時鐘一個上升延
_nop_(); //用機器周期延時
_nop_();
yiwei=0; //移位寄存器上升延結束
}
chunchu=1; //給存儲器時鐘一個上升延刷新
_nop_();
_nop_();
chunchu=0;//存儲寄存器上升延結束
}


void saomiao() //數碼管動態掃描函數
{
while(1)
{
for(b=0;b<4;b++) //for循環4次
{

switch(b)
{
case(0):LSA=0;LSB=0;LSC=0;ddr(look[0]);break;
case(1):LSA=1;LSB=0;LSC=0;ddr(look[1]);break;
case(2):LSA=0;LSB=1;LSC=0;ddr(look[2]);break; case(3):LSA=1;LSB=1;LSC=0;ddr(look[3]);break;
}

delay(200);
ddr(look[4]);// 消隱

}
}
}

void main()
{


saomiao();
while(1);
}


IMG_20181118_192510.jpg
回復

使用道具 舉報

ID:94031 發表于 2018-11-19 14:09 | 顯示全部樓層
這里改成:typedef unsigned int  u16; typedef unsigned char u8;
回復

使用道具 舉報

ID:429292 發表于 2018-11-19 16:49 | 顯示全部樓層
已經大三畢業了,我還是對單片機陌生,無能為力。。
回復

使用道具 舉報

ID:411940 發表于 2018-11-19 17:55 | 顯示全部樓層

這里改成:typedef unsigned int  u16; typedef unsigned char u8;
回復

使用道具 舉報

ID:404479 發表于 2018-11-22 01:28 來自手機 | 顯示全部樓層
xuyaqi 發表于 2018-11-19 14:09
這里改成:typedef unsigned int  u16; typedef unsigned char u8;

謝謝!
回復

使用道具 舉報

ID:431077 發表于 2018-11-22 11:29 | 顯示全部樓層
這里改成:typedef unsigned int  u16; typedef unsigned char u8;
回復

使用道具 舉報

ID:430677 發表于 2018-11-22 13:02 | 顯示全部樓層
需要指定u16和u8的類型,比如:typedef unsigned int  u16; typedef unsigned char u8;試試看
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a级性视频| 一区二区三区四区在线 | 日韩欧美在线视频播放 | 欧美aⅴ | 日韩一区二区三区视频在线播放 | 97成人精品 | 亚洲精品一区二区二区 | 伊人一区| 国内精品久久久久 | 精品乱码一区二区三四区视频 | 99国产精品久久久久久久 | 黄视频网址 | 中文字幕第一页在线 | 久久噜噜噜精品国产亚洲综合 | 日韩精品不卡 | 日韩精品免费在线观看 | 久久久久久久久久久国产 | 99久久中文字幕三级久久日本 | 色综合av| 欧美一区二区三区 | 久久久五月天 | 久久一区二区精品 | 成人免费大片黄在线播放 | 国产精久久久久久久 | 欧美视频三区 | 黑人巨大精品欧美一区二区一视频 | www.毛片| 久久亚洲综合 | 欧美一卡二卡在线观看 | 国产成人精品a视频一区www | 男女精品久久 | 国产精品一区在线观看你懂的 | 天天干天天色 | 欧美国产日韩一区二区三区 | 亚洲国产中文字幕 | 亚洲一区二区在线播放 | 黄免费在线| 国产成人精品久久二区二区 | 三级成人在线 | 91精品久久久久久久久 | 精品一区二区免费视频 |