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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3675|回復: 10
收起左側

麻煩有用單片機+74HC154和74HC595做過點陣驅動的朋友進來看看

[復制鏈接]
ID:710261 發表于 2020-7-24 18:30 | 顯示全部樓層 |閱讀模式
20黑幣
我現在做16*32的點陣,電路找的資料自己搭建的,點陣行是陽極,用74hc154加PNP三極管做驅動,列是陰極,用74hc595加330Ω的限流電阻做驅動。現在在仿真的時候,比如我要點亮第4行第1列的led燈,但第16行第1列的led也會發光,修改程序選擇其他行的led,16行總是會亮。我現在154的地址端接的是P0口,是16行常亮,我如果接到P1口就是第1行常亮。
仿真結果如圖,最右下角驅動第16行的三極管的集電極為什么會一直是高電平呢,應該是沒有導通的才對吧。

程序如下
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit DS=P1^0;
  5. sbit SH=P1^1;
  6. sbit ST=P1^2;
  7. sbit E1=P1^3;

  8. //列選碼,595發送數據
  9. void Sendbyte(uchar dat1,uchar dat2,uchar dat3,uchar dat4)//高八,次高八,次低八,低八
  10. {
  11.         uchar i;
  12.         ST=0;
  13.                         for(i=0;i<8;i++)
  14.                   {
  15.                                         SH=0;
  16.                                                  if(dat4&0x01)
  17.                                                          DS=1;
  18.                                                  else
  19.                                                          DS=0;
  20.                                          SH=1;
  21.                                          dat4=dat4>>1;
  22.                   }
  23.                         for(i=0;i<8;i++)
  24.                         {
  25.                                                 SH=0;
  26.                                                         if(dat3&0x01)
  27.                                                          DS=1;
  28.                                                  else
  29.                                                          DS=0;
  30.                                          SH=1;
  31.                                          dat3=dat3>>1;
  32.                   }
  33.                         for(i=0;i<8;i++)
  34.                         {
  35.                                          SH=0;
  36.                                                  if(dat2&0x01)
  37.                                                          DS=1;
  38.                                                  else
  39.                                                          DS=0;
  40.                                          SH=1;
  41.                                          dat2=dat2>>1;
  42.                         }
  43.                         for(i=0;i<8;i++)
  44.                         {
  45.                                          SH=0;
  46.                                                  if(dat1&0x01)
  47.                                                          DS=1;
  48.                                                  else
  49.                                                          DS=0;
  50.                                          SH=1;
  51.                                          dat1=dat1>>1;
  52.                         }
  53.         ST=1;
  54. }

  55. void main()
  56. {
  57.                 E1=0;//打開154
  58.                 P0=3;//行選
  59.                 Sendbyte(0x7f,0xff,0xff,0xff);//列選
  60. }
復制代碼



1.png

proteus仿真.zip

86.52 KB, 下載次數: 23

回復

使用道具 舉報

ID:332444 發表于 2020-7-25 11:30 | 顯示全部樓層
笑而不答,看看熱鬧而已。不過還是說我喜歡的方案,若是我設計絕不會使用這種電路,還是我認為的使用鎖存器方便許多,從電路與程序上都是。
回復

使用道具 舉報

ID:332444 發表于 2020-7-25 11:36 | 顯示全部樓層
16*32使用鎖存器不但電路和程序簡單還能節省芯片使用數量。
回復

使用道具 舉報

ID:710261 發表于 2020-7-25 12:33 | 顯示全部樓層
xianfajushi 發表于 2020-7-25 11:36
16*32使用鎖存器不但電路和程序簡單還能節省芯片使用數量。

如果全用74hc595的話確實程序電路簡單得多,但是我看網上資料有用我帖子里這種電路實現的,可是我仿真連一個led點亮都不行,如果您知道原因的話麻煩能告訴我一下為什么嗎
回復

使用道具 舉報

ID:332444 發表于 2020-7-25 16:03 | 顯示全部樓層
抱歉得很,目前為止還真沒寫過595,不過可隨時學,也看過595的一些例子代碼,不難,只是要實現你這個點陣還用不著595,至少我是這樣認為的,因此,對這題實無興致。
回復

使用道具 舉報

ID:332444 發表于 2020-7-26 05:50 | 顯示全部樓層
或許使用2片鎖存器就能實現。
回復

使用道具 舉報

ID:332444 發表于 2020-7-26 07:04 | 顯示全部樓層
使用二極管三極管搭建門電路配合2片鎖存器按道理是可以的,當然使用門集成比較方便。
回復

使用道具 舉報

ID:332444 發表于 2020-7-26 07:32 | 顯示全部樓層
用我寫過的16*16例子可以推導出來,這時就需要用到邏輯電路基礎知識了,因此想起了論壇一帖是否需要學數字電路就有了例證,有無數字電路基礎在這時會顯示出區別了。
回復

使用道具 舉報

ID:710261 發表于 2020-7-27 11:53 | 顯示全部樓層
xianfajushi 發表于 2020-7-26 07:32
用我寫過的16*16例子可以推導出來,這時就需要用到邏輯電路基礎知識了,因此想起了論壇一帖是否需要學數字 ...

謝謝朋友,問題我解決了原因應該是仿真的問題,仿真時使用一個非門只要邏輯正確就行,仿真不需要搭建三極管,但是實物是需要的。我還是一個沒啥基礎的小白,你說的門電路這些我不是很清楚,我去學習一下
回復

使用道具 舉報

ID:332444 發表于 2020-7-28 09:47 | 顯示全部樓層
在蛋騙雞電路中搭建門電路其實很簡單電阻和二極管就能實現而且是可任意的是一種方案,其實要實現16*32有很多方案,直接使用3片鎖存器是最簡便可靠的方案,雖然掃描會加倍,估計時間還是能安排好的,若是16*64那時間安排就難說了,可能要采取并行顯示的方式,而顯示數據的方式也有不同方案,如顯示數據加倍則掃描次數可少。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲午夜网 | 成年人在线观看 | 羞羞视频在线观看网站 | 狠狠插狠狠操 | 免费精品久久久久久中文字幕 | 久久久久久久一区 | 夜夜av | 国产九九精品视频 | 国产精品一区二区不卡 | 国产精品美女一区二区 | 免费中文字幕日韩欧美 | 久久精品国产一区二区电影 | 天天操综合网 | 人和拘一级毛片c | 亚洲精品在线免费观看视频 | 国产我和子的乱视频网站 | 国产精品五区 | 九九热在线免费视频 | 99热热精品 | 欧美成人二区 | 一级大黄 | 97久久精品午夜一区二区 | 中文字幕av亚洲精品一部二部 | 久久国产欧美日韩精品 | 精品久久久av | 在线国产视频 | 毛片网站在线观看视频 | 黄色片在线网站 | 色婷婷在线视频 | 蜜臀91视频 | 天天干免费视频 | 一区二区三区四区av | 亚洲精品视频一区 | 欧美日韩国产一区二区三区 | 三级免费av| 99re在线| 伊人艹 | 久久久久久国产精品免费免费 | 午夜精品久久久久久久久久久久久 | 一级黄色片在线免费观看 | 久久精品国产99国产精品 |