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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

8X8LED點陣點亮第一個點(親測,完全可移植)

[復制鏈接]
跳轉到指定樓層
樓主
ID:264442 發表于 2017-12-21 19:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/**************************************************************************************
*                              8*8LED點陣———點亮一個點實驗                                                                                                  *
實現現象:下載程序后點陣左上角第一個點點亮
                       
注意事項:一定要將74HC595模塊上的JP595短接片短接,并且將JOE短接片短接到GND端。                                                                                                                                                                  
***************************************************************************************/

#include "reg51.h"                         //此文件中定義了單片機的一些特殊功能寄存器
#include<intrins.h>

typedef unsigned int u16;          //對數據類型進行聲明定義
typedef unsigned char u8;

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;


/*******************************************************************************
* 函數名         : Hc595SendByte(u8 dat)
* 函數功能                   : 向74HC595發送一個字節的數據
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
void Hc595SendByte(u8 dat)
{
        u8 a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;

                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;       
        }

        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}

/*******************************************************************************
* 函 數 名       : main
* 函數功能                 : 主函數
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{               
        Hc595SendByte(0x80);
        P0=0x7f;
        while(1);               
}


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

使用道具 舉報

沙發
ID:349594 發表于 2018-6-12 13:47 | 只看該作者
你這個代碼邏輯上好像沒錯,但是程序下載之后第一個燈沒亮的,本人親測過。
具體猜測如下:
主函數中P34和P0讀取數據很快,就馬上執行while語句;
所以燈不亮或者只能看到瞬間亮了一下馬上就熄了。
解決方案:
主函數改為:
while (1)
{
        Hc595SendByte(0x80);
        P0=0x7f;
}
回復

使用道具 舉報

板凳
ID:568261 發表于 2019-6-20 20:00 | 只看該作者
Embedded_Geek 發表于 2018-6-12 13:47
你這個代碼邏輯上好像沒錯,但是程序下載之后第一個燈沒亮的,本人親測過。
具體猜測如下:
主函數中P34 ...

這樣改我測試著也不行。
回復

使用道具 舉報

地板
ID:425846 發表于 2019-6-22 10:49 | 只看該作者
Embedded_Geek 發表于 2018-6-12 13:47
你這個代碼邏輯上好像沒錯,但是程序下載之后第一個燈沒亮的,本人親測過。
具體猜測如下:
主函數中P34 ...

595是移位寄存器,他自己會循環
回復

使用道具 舉報

5#
ID:908694 發表于 2021-7-31 19:12 | 只看該作者
我用的也是這個程序 但第一列全部點亮 求解!
回復

使用道具 舉報

6#
ID:957563 發表于 2021-8-1 11:47 來自手機 | 只看該作者
like1234456 發表于 2021-7-31 19:12
我用的也是這個程序 但第一列全部點亮 求解!

在定義函數下加入
u8 ledduan[]={0x80};
u8 ledwei[]={0x7f};
回復

使用道具 舉報

7#
ID:957563 發表于 2021-8-1 11:50 來自手機 | 只看該作者
發奮蝸牛 發表于 2019-6-20 20:00
這樣改我測試著也不行。

在定義函數下加入延時函數
void  delay  (u16 i)
{
while(i––);
}
回復

使用道具 舉報

8#
ID:957563 發表于 2021-8-1 11:55 來自手機 | 只看該作者
修改如下可參考
回復

使用道具 舉報

9#
ID:957563 發表于 2021-8-1 11:55 來自手機 | 只看該作者
#include "reg51.h"                         //此文件中定義了單片機的一些特殊功能寄存器#include<intrins.h>typedef unsigned int u16;          //對數據類型進行聲明定義typedef unsigned char u8; sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4;/******************************************************************************** 函數名         : Hc595SendByte(u8 dat)* 函數功能                   : 向74HC595發送一個字節的數據* 輸入           : 無* 輸出                  : 無*******************************************************************************/void Hc595SendByte(u8 dat) {         u8 a;         SRCLK=0;         RCLK=0;         for(a=0;a<8;a++) {                 SER=dat>>7;                 dat<<=1;                 SRCLK=1;                 _nop_();                 _nop_();                 SRCLK=0;                 }         RCLK=1;         _nop_();         _nop_();         RCLK=0; }/******************************************************************************** 函 數 名       : main* 函數功能                 : 主函數* 輸    入       : 無* 輸    出             : 無***/ void main() {                         Hc595SendByte(0x80);         P0=0x7f; While(1); }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产欧美日韩精品 | 亚洲欧美日韩高清 | 国产免费一区二区 | 国产黄色在线观看 | 久久亚洲一区二区 | 美国黄色一级片 | 午夜在线观看视频 | 成人欧美一区二区三区在线播放 | 色片在线观看 | 亚洲国产精品激情在线观看 | 精品国产乱码久久久久久丨区2区 | 久久黄视频 | 国产精品乱码一区二三区小蝌蚪 | 一区二区三区欧美在线观看 | 亚洲一区免费 | 久久国产精品视频 | 91视频日本| 福利视频网站 | 97avcc| 福利社午夜影院 | 激情一区二区三区 | 久久久久久国产精品免费免费狐狸 | 日本精品一区二区三区在线观看 | 欧美日韩亚洲视频 | 成人片免费看 | 亚洲三区在线观看 | 日本不卡免费新一二三区 | 亚洲天堂一区二区 | 黑人精品xxx一区一二区 | 99久久中文字幕三级久久日本 | 日韩最新网址 | 亚洲精品视频播放 | 日日操夜夜操视频 | 一区二区高清 | 日日骚av| 91精品国产日韩91久久久久久 | 欧美在线观看一区 | 国产精品99久 | 精品一区av | 欧美黄色绿像 | 亚洲成人精品国产 |