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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機8*8LED點陣—顯示漢字實驗

  [復制鏈接]
跳轉到指定樓層
樓主
一、讀懂代碼

因為自身C語言基礎比較差,所以決定先把代碼看懂然后再在源代碼的基礎上修改寫成自己的點陣顯示。
自己對代碼的簡短理解都寫成注釋附在下面的源代碼中了,有不對的地方請指正
  1. 實現現象:下載程序后點陣上顯示數字0
  2.             
  3. 注意事項:一定要將JOE短接片短接到GND端,如果不需要595后面的小燈點亮可以拔掉JP595短接片。                                                                              
  4. ***************************************************************************************/

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

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

  9. sbit SRCLK=P3^6;//用SRCLK來表示P3口的第六位
  10. sbit RCLK=P3^5;//用RCLK來表示P3口的第五位
  11. sbit SER=P3^4;//用SER來表示P3口的第四位
  12. //SRCLK、RCLK、SER都是下面程序用到的的芯片74hc595中的引腳的名稱,想對芯片進一步了解的同學可以看一下代碼后面附的鏈接

  13. u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};
  14. u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  15. //二極管點亮的的條件是對應行列分別為高低電平使得電流產生。
  16. //對應本實驗實驗板即為列線為高電平,行線為低電平時二極管被點亮
  17. //第一行代碼控制哪列為高電平即為需要此列是否點亮,第二行控制哪一行為低電平,即某一行被點亮,行列共同點亮時交叉處LED亮燈
  18. //實驗板的原理圖因為自己看不懂所以這里的行列可能混了【手動狗頭】對這個比較清楚的同學可以幫給我指正一下,謝謝。
  19. /*******************************************************************************
  20. * 函 數 名         : delay
  21. * 函數功能         : 延時函數,i=1時,大約延時10us
  22. 死循環實現延時功能
  23. *******************************************************************************/
  24. void delay(u16 i)
  25. {
  26.     while(i--);
  27. }

  28. /*******************************************************************************
  29. * 函數名         : Hc595SendByte(u8 dat)
  30. * 函數功能         : 向74HC595發送一個字節的數據
  31. * 輸入           : 無
  32. * 輸出             : 無
  33. 將一個字節的信息串行輸入給74HC595以后由芯片并行輸出
  34. *******************************************************************************/
  35. void Hc595SendByte(u8 dat)
  36. {
  37.     u8 a;
  38.     SRCLK=0;
  39.     RCLK=0;
  40.     for(a=0;a<8;a++)
  41.     {
  42.         SER=dat>>7;
  43.         dat<<=1;

  44.         SRCLK=1;
  45.         _nop_();
  46.         _nop_();
  47.         SRCLK=0;   
  48.     }

  49.     RCLK=1;
  50.     _nop_();
  51.     _nop_();
  52.     RCLK=0;
  53. }

  54. /*******************************************************************************
  55. * 函 數 名       : main
  56. * 函數功能       : 主函數
  57. * 輸    入       : 無
  58. * 輸    出         : 無
  59. *******************************************************************************/
  60. void main()
  61. {           
  62.     u8 i;
  63.     while(1)//輪回點亮循環體
  64.     {
  65.         P0=0x7f;
  66.         for(i=0;i<8;i++)
  67.         {
  68.             P0=ledwei[i];         //位選
  69.             Hc595SendByte(ledduan[i]);  //發送段選數據
  70.             delay(100);        //延時
  71.             Hc595SendByte(0x00);  //消隱,如果的話點陣顯示時會出現重影現象
  72.         }   
  73.     }      
  74. }
復制代碼

74HC595芯片資料:http://www.zg4o1577.cn/chip/3978.html
二、修改代碼

理解代碼以后我們對代碼進行修改來實現自己的點陣顯示。
因為對亮度和別的指標沒有要求,所以只需要修改和字符顯示的這一段就可以啦

u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};

我要顯示的是佐字,對應的代碼經過推斷


所以代碼修改為

u8 ledduan[]={0x20,0x7f,0xd0,0x71,0x51,0xdf,0x51,0x51};

三、燒錄

將代碼編譯形成新的hex文件后下載到實驗板上就OK啦,當然前提是你沒有像我一樣忘記JOE短接片短接到GND端


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:9727 發表于 2019-1-26 21:07 | 只看該作者
真詳細,好好學習
回復

使用道具 舉報

板凳
ID:483844 發表于 2019-3-3 19:13 | 只看該作者
菜鳥求救:段和位不是應該一塊修改嗎我想要一下就是“佐”字的位代碼
回復

使用道具 舉報

地板
ID:690706 發表于 2020-2-7 01:25 | 只看該作者
能麻煩問問怎么JOE短接片短接到GND端嗎?本人小白剛入手,不會啊,球球大佬撈一把。
回復

使用道具 舉報

5#
ID:690567 發表于 2020-2-7 09:48 | 只看該作者
什么型號的開發板
回復

使用道具 舉報

6#
ID:658437 發表于 2020-2-15 20:52 | 只看該作者
如果用138和595控制怎么寫
回復

使用道具 舉報

7#
ID:432653 發表于 2020-2-21 14:14 | 只看該作者
moshu_ 發表于 2020-2-7 09:48
什么型號的開發板

我也有兩塊2.0的
回復

使用道具 舉報

8#
ID:695749 發表于 2020-2-21 21:10 | 只看該作者
這么的學習例程,謝謝分享
回復

使用道具 舉報

9#
ID:707654 發表于 2020-3-16 21:34 來自手機 | 只看該作者
原力 發表于 2020-2-15 20:52
如果用138和595控制怎么寫

我也想知道
回復

使用道具 舉報

10#
ID:750134 發表于 2020-5-12 16:49 | 只看該作者
仙人撫我頂 發表于 2020-2-7 01:25
能麻煩問問怎么JOE短接片短接到GND端嗎?本人小白剛入手,不會啊,球球大佬撈一把!!

拔下來
回復

使用道具 舉報

11#
ID:908694 發表于 2021-8-1 13:52 | 只看該作者
仙人撫我頂 發表于 2020-2-7 01:25
能麻煩問問怎么JOE短接片短接到GND端嗎?本人小白剛入手,不會啊,球球大佬撈一把!

單片機上面應該自帶有短接板
回復

使用道具 舉報

12#
ID:1014820 發表于 2022-6-8 12:41 | 只看該作者
單片機點陣文字是固定的,還是每種單片機都不同
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看毛片 | 亚洲精视频 | 看一级毛片视频 | 免费观看黄网站 | 成人在线国产 | 国产精品美女久久久久久免费 | 成人国产精品久久 | 亚洲国产精品人人爽夜夜爽 | 免费国产一区二区 | 久久亚洲国产 | 成年网站在线观看 | www.9191.com| 国产传媒毛片精品视频第一次 | 国产二区精品视频 | 中文字幕视频在线 | 国产精品99视频 | 成人av电影在线观看 | 欧美一级黄色网 | 天天操天天玩 | 欧美精品一区二区三区蜜桃视频 | 国产精品视频一区二区三区四区国 | 国产精品成人一区二区三区 | 99久久国产综合精品麻豆 | 国产精品久久久久无码av | 国产精品精品视频一区二区三区 | 国产乱码精品1区2区3区 | 中文字幕视频一区二区 | 狼人伊人影院 | 色婷婷久久久久swag精品 | 日韩成人av在线播放 | 999久久久久久久久6666 | 九九热精品视频 | 亚洲不卡av在线 | 蜜臀av日日欢夜夜爽一区 | 国产蜜臀97一区二区三区 | 亚洲午夜精品在线观看 | 国产精品美女久久久 | 欧美日韩一区二区三区四区 | 国产一二三区免费视频 | 国产免费福利在线 | 一区二区在线 |