欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MAX7221 LED顯示驅動器單片機原理圖和程序

[復制鏈接]
跳轉到指定樓層
樓主


  1. //利用數碼管驅動芯片max7221實現8位數碼管顯示
  2. #include <reg51.h>
  3. #include <intrins.h>

  4. sbit DIN = P2^0;     //數據串出引腳
  5. sbit CS = P2^1;     //片選端
  6. sbit CLK = P2^2;    //移位時鐘端

  7. unsigned char disp_buff[8] = {2,0,1,0,10,2,10,9}; //顯示的數字,數值為10的時候,顯示“-”

  8. // 延時函數
  9. void delayms(unsigned int x)
  10. {
  11.   unsigned char i;
  12. while(x--)
  13. {
  14.    for(i = 0;i < 120;i++);
  15. }
  16. }

  17. //寫數據函數
  18. void write_data(unsigned char addr,unsigned char dat)
  19. {
  20.   unsigned char i;
  21. CS = 0;        // 先寫地址,片選置低,串行數據加載到移位寄存器
  22. for(i = 0;i < 8;i++)   //
  23. {
  24.    CLK = 0;     //時鐘上升沿數據移入內部移位寄存器
  25.   addr <<= 1;    //待發送的地址,每次左移一次,高位在前發送,
  26.   DIN = CY;    //數據移位后,如果有溢出,則可以從進位位CY中獲得溢出的數據位
  27.   CLK = 1;
  28.   _nop_();
  29.   _nop_();
  30.   CLK = 0;    //下降沿時數據從DOUT移出
  31. }
  32. for(i = 0;i < 8;i++)
  33. {
  34.    CLK = 0;   //
  35.   dat <<= 1;   //發送數據
  36.   DIN = CY;
  37.   CLK = 1;
  38.   _nop_();
  39.   _nop_();
  40.   CLK = 0;
  41. }
  42. CS = 1;      //CS上升沿,數據鎖存
  43. }

  44. //初始化函數
  45. void init_max7221(void)
  46. {
  47. write_data(0x09,0xff);    //編碼模式
  48. write_data(0x0a,0x07);    //亮度控制
  49. write_data(0x0b,0x07);    //掃描數碼管的位數
  50. write_data(0x0c,0x01);    //工作模式
  51. }

  52. void main(void)
  53. {
  54.   unsigned char i;
  55. init_max7221();    // 初始化
  56. delayms(2);
  57. for(i = 0;i < 8;i++)
  58. {
  59.    write_data(i+1,disp_buff[i]);   // 顯示8位
  60. }
  61. while(1);
  62. }

復制代碼



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表