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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1866|回復: 5
打印 上一主題 下一主題
收起左側

這個8*16的led共陽點陣單片機程序是哪里錯了,謝謝!

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 javastory 于 2021-5-7 11:05 編輯

設計一個8*16的led共陽點陣,行用74ls164,列用74hc154,設計思想是行一次輸出8位數據,列導通,然后這一列就亮,但是現在顯示的效果是全亮,然后一列一列從左向右滅,不到16列的時候滅得就沒有規律了,不知道錯誤原因,請高手幫忙指出錯誤,謝謝,單片機代碼如下:

P2^0--3接74hc154數據端
sbit COW_1641 = P2^4;    //74ls164數據輸入

sbit CLK_1641 = P2^5;  



unsigned char colcount[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
unsigned char code image[16] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xB7,0xB7,0xB7,0xFF};  //字母F,縱向,正序
void delay(unsigned int delay){
        unsigned char i;
        for(;delay>0;delay--)
                for(i=0;i<110;i++);
}



void main(){
        unsigned int col,coldata;                                                                                                               
        unsigned char temp;
        
        P2=0xff;
        while ( 1 ) {
               
                for (col=0;col<16;col++){
                        
                        P2=colcount[col];    //P2^0--3輸入,各列輪流輸出低電平
                        temp=image[col];
                        CLK_1641 = 0;
                        for(coldata=0;coldata<8;coldata++){
                                CLK_1641 = 0;
                                COW_1641=temp&0x80;
                                CLK_1641 = 1;
                                temp<<=1;
                                delay(200);
                        }
                        CLK_1641 = 1;
                        //delay(500);
                }
        }
}


新手,幫忙指出錯誤原因,謝謝!

led.jpg (730.26 KB, 下載次數: 60)

led.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

6#
ID:908996 發表于 2021-5-7 11:09 | 只看該作者
glinfei 發表于 2021-5-7 10:56
沒看到圖,估計列為陽極。我覺得你選的芯片跟你想法不同啊,按你的操作:一是,74ls164初始是全LOW,74h ...

圖剛才剛發了,不知道為什么看不到,不過行是陽用164,列是陰用154.

至于說P2=0--15,這個我也是看了很多網上的例子,我考慮是0--15轉成2進制后,用的是4位的編碼,是0000--1111,影響的是P2^0--P2^3的值,后面的164接的P2^4--P2^7不影響,不知道這樣理解是否對?
回復

使用道具 舉報

5#
ID:844772 發表于 2021-5-7 10:56 | 只看該作者
沒看到圖,估計列為陽極。我覺得你選的芯片跟你想法不同啊,按你的操作:一是,74ls164初始是全LOW,74hc154初始全H,自然全亮了;二是,你每次操縱154一個腳L,所以逐列關,當然你沒用BCD碼,所以后來有點亂;三是, P2=colcount[col];  會影響164的clk啊。
回復

使用道具 舉報

地板
ID:908996 發表于 2021-5-7 10:37 | 只看該作者
另外我把仿真的圖發上來,麻煩大家看看程序哪里有錯誤,不用管那么多點陣,只要管同一行8*16的點陣即可。謝謝!

led.jpg (730.26 KB, 下載次數: 61)

led.jpg
回復

使用道具 舉報

板凳
ID:908996 發表于 2021-5-7 10:00 | 只看該作者
本帖最后由 javastory 于 2021-5-7 10:05 編輯
birdzhyli 發表于 2021-5-6 22:44
雖然沒看出樓主的問題,但我想知道樓主為什么用
P2=colcount[col];   
而不是直接P2=col;

這段代碼我試過P2=0x01,;P2++;和P2=col;故障現象一樣,至于數據類型,你說的是對的,用uchar沒有問題,我是在網上找了很多文章例子去看,這段代碼也是別人用過的,直接復制過來了。
回復

使用道具 舉報

沙發
ID:889094 發表于 2021-5-6 22:44 | 只看該作者
雖然沒看出樓主的問題,但我想知道樓主為什么用
P2=colcount[col];   
而不是直接P2=col;
col也只用到了16,定義個uchar也夠了,沒必要uint呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久一起草| 亚洲国产精品久久久 | 亚洲91精品 | 国产婷婷| 91精品国产777在线观看 | 天堂久久一区 | 日韩成人在线观看 | 亚洲精品天堂 | 在线观看成人小视频 | 久久青 | 中文字幕一区二区三区日韩精品 | 神马久久av | 欧州一区二区三区 | 在线激情视频 | 成人精品视频99在线观看免费 | 91av小视频 | www.久草| 在线视频 中文字幕 | 九九九视频 | 91av免费看| 亚洲精品欧美一区二区三区 | 久久青草av| 久久国产亚洲 | 国产精品久久影院 | 午夜极品 | 亚洲永久免费 | 国产7777| 超碰人人人人 | 日本不卡一区 | 久久国产精品一区二区 | 中文字幕一区二区三区四区五区 | 国产精品免费福利 | 国产亚洲一区二区三区 | 婷婷久久网 | 91网站在线看 | 亚洲女优在线播放 | 亚洲国产一区二区在线 | 久久国产精品免费一区二区三区 | www国产成人免费观看视频,深夜成人网 | www国产成人免费观看视频,深夜成人网 | 亚洲精品电影 |