找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)數(shù)碼管無(wú)法實(shí)現(xiàn)動(dòng)態(tài)顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我是一名51單片的出學(xué)者,我想實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,我模仿了教學(xué)視頻寫(xiě)了以下代碼,可是為什么只可以在第一個(gè)數(shù)碼管亮呢?求大神指教
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit A=P2^2;
sbit W=P2^3;
sbit C=P2^4;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delaym(uint a)//延時(shí)函數(shù)
{
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:155507 發(fā)表于 2018-7-30 07:00 | 只看該作者
給你數(shù)碼管的動(dòng)態(tài)顯示程序試試


  1. #include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器

  2. typedef unsigned int u16;          //對(duì)數(shù)據(jù)類(lèi)型進(jìn)行聲明定義
  3. typedef unsigned char u8;

  4. sbit LSA=P2^2;
  5. sbit LSB=P2^3;
  6. sbit LSC=P2^4;

  7. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  8.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值

  9. /*******************************************************************************
  10. * 函 數(shù) 名         : delay
  11. * 函數(shù)功能                   : 延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us
  12. *******************************************************************************/
  13. void delay(u16 i)
  14. {
  15.         while(i--);       
  16. }

  17. /*******************************************************************************
  18. * 函 數(shù) 名         : DigDisplay
  19. * 函數(shù)功能                   : 數(shù)碼管動(dòng)態(tài)掃描函數(shù),循環(huán)掃描8個(gè)數(shù)碼管顯示
  20. *******************************************************************************/
  21. void DigDisplay()
  22. {
  23.         u8 i;
  24.         for(i=0;i<8;i++)
  25.         {
  26.                 switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  27.                 {
  28.                         case(0):
  29.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  30.                         case(1):
  31.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  32.                         case(2):
  33.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  34.                         case(3):
  35.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  36.                         case(4):
  37.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  38.                         case(5):
  39.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位
  40.                         case(6):
  41.                                 LSA=0;LSB=1;LSC=1; break;//顯示第6位
  42.                         case(7):
  43.                                 LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  44.                 }
  45.                 P0=smgduan[i];//發(fā)送段碼
  46.                 delay(100); //間隔一段時(shí)間掃描       
  47.                 P0=0x00;//消隱
  48.         }
  49. }

  50. /*******************************************************************************
  51. * 函 數(shù) 名       : main
  52. * 函數(shù)功能                 : 主函數(shù)
  53. * 輸    入       : 無(wú)
  54. * 輸    出             : 無(wú)
  55. *******************************************************************************/
  56. void main()
  57. {       
  58.         while(1)
  59.         {       
  60.                 DigDisplay();  //數(shù)碼管顯示函數(shù)       
  61.         }               
  62. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

板凳
ID:372402 發(fā)表于 2018-7-30 10:33 | 只看該作者
你這個(gè)程序不完整,沒(méi)法給你看是哪里出問(wèn)題了!你檢查一下是不是在循環(huán)的地方出問(wèn)題了,左移或者右移程序出錯(cuò)。
回復(fù)

使用道具 舉報(bào)

地板
ID:324193 發(fā)表于 2018-7-30 16:03 | 只看該作者
51單片機(jī)的數(shù)碼管一次只能亮一個(gè),假設(shè)A=0,W=0,C=1;第一個(gè)數(shù)碼管亮,之后要再設(shè)A=0,W=1,C=0,第二個(gè)數(shù)碼管亮,如果沒(méi)改變的話就會(huì)只亮一個(gè),我看不到下面的程序,只能推斷一下,顯示一個(gè)后要消影一下。delay較短的時(shí)間就可以了。
回復(fù)

使用道具 舉報(bào)

5#
ID:107006 發(fā)表于 2018-7-30 16:36 | 只看該作者
定義有些問(wèn)題
回復(fù)

使用道具 舉報(bào)

6#
ID:107006 發(fā)表于 2018-7-30 16:36 | 只看該作者
定義有些問(wèn)題
回復(fù)

使用道具 舉報(bào)

7#
ID:313515 發(fā)表于 2018-7-30 19:54 來(lái)自手機(jī) | 只看該作者
程序不完整,沒(méi)辦法看出程序錯(cuò)誤在哪
回復(fù)

使用道具 舉報(bào)

8#
ID:381033 發(fā)表于 2018-7-30 20:29 | 只看該作者
main函數(shù)呢
回復(fù)

使用道具 舉報(bào)

9#
ID:375003 發(fā)表于 2018-7-30 21:15 | 只看該作者
我的回貼在下面,是關(guān)于動(dòng)態(tài)顯示的方法與技巧
http://www.torrancerestoration.com/bbs/dpj-129474-1.html
回復(fù)

使用道具 舉報(bào)

10#
ID:381057 發(fā)表于 2018-7-30 21:39 | 只看該作者
你這個(gè)程序不完整,沒(méi)法給你看是哪里出問(wèn)題了
回復(fù)

使用道具 舉報(bào)

11#
ID:375003 發(fā)表于 2018-7-31 00:22 | 只看該作者
把他的代碼復(fù)制一下,然后看我在8樓的修改方法.對(duì)著改.把重復(fù)的地方刪了就行拉.人家都這樣學(xué)習(xí)的,
別直接撿現(xiàn)成的,對(duì)你的學(xué)習(xí)沒(méi)幫助.先學(xué)會(huì)改程序
回復(fù)

使用道具 舉報(bào)

12#
ID:111634 發(fā)表于 2018-7-31 09:57 | 只看該作者
本帖最后由 zl2168 于 2018-7-31 12:43 編輯

介紹你幾個(gè)動(dòng)態(tài)顯示參考案例,自己去對(duì)照研究。
Proteus仿真一下,確認(rèn)有效。
實(shí)例56  PNP晶體管選通3位共陽(yáng)LED數(shù)碼管動(dòng)態(tài)顯示;
實(shí)例56 PNP晶體管選通3位LED動(dòng)態(tài)顯示.rar (47.41 KB, 下載次數(shù): 10)
實(shí)例57  74LS139選通4LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例57 74LS139選通4位共陰LED數(shù)碼管動(dòng)態(tài)顯示.rar (48.12 KB, 下載次數(shù): 4)

實(shí)例58  74LS138選通8LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例58 74LS138選通8位LED動(dòng)態(tài)顯示.rar (44.76 KB, 下載次數(shù): 2)

實(shí)例59  74LS595串行選通8LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例59 74LS595×2選通8位LED動(dòng)態(tài)顯示.rar (45.12 KB, 下載次數(shù): 3)

實(shí)例60 8255A擴(kuò)展8LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例60 8255A擴(kuò)展8位LED動(dòng)態(tài)顯示.rar (40.19 KB, 下載次數(shù): 2)

實(shí)例63 8155擴(kuò)展8LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例63 8155擴(kuò)展8位LED數(shù)碼管動(dòng)態(tài)顯示.rar (39.46 KB, 下載次數(shù): 2)

實(shí)例64 MAX7221控制8LED數(shù)碼管動(dòng)態(tài)顯示
實(shí)例64 MAX7221控制8位LED數(shù)碼管動(dòng)態(tài)顯示.rar (38.95 KB, 下載次數(shù): 2)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。書(shū)中電路和程序設(shè)計(jì)有詳細(xì)說(shuō)明,程序語(yǔ)句條條有注解。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表