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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1983|回復: 7
打印 上一主題 下一主題
收起左側(cè)

max7219驅(qū)動數(shù)碼管單片機程序,能不能再簡單點,求指教

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:836924 發(fā)表于 2020-11-25 20:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這樣能不能簡寫感覺太長了
#include <reg52.h>
#include <intrins.h>         
sbit DIN_7219=P0^5;   //7219串行數(shù)據(jù)輸入端
sbit LOAD_7219=P0^6;   //7219數(shù)據(jù)鎖存端
sbit CLK_7219=P0^7;   //7219時鐘輸入端
#define uchar unsigned char
uchar code LEDcode[]=
{0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00     /*0,1,2,3,4,5,6,7,8,9,全滅*/
  /*0x77,0x1f,0x4e,0x3d,0x4f,0x47,0x67,0x3e,0xff,*/   };    /*A,B,C,D,E,F,P,U,全亮*/
void write_7219_byte (uchar dat)
{
uchar i,temp;
for (i=0;i<8;i++)
   {
       temp=dat&0x80;
       dat=dat<<1;
       if(temp)
          DIN_7219=1;   
       else
          DIN_7219=0;
    CLK_7219=0;
    _nop_();
       CLK_7219=1;  //時鐘上升沿把數(shù)據(jù)送入寄存器鎖定  
   }
}
void write_7219 (uchar addr,uchar dat)
{
LOAD_7219=0;     //寄存器打開,等待數(shù)據(jù)的送入
_nop_();
write_7219_byte (addr);   //選擇寄存器地址
_nop_();
write_7219_byte (dat);    //選擇讓芯片執(zhí)行什么命令
_nop_();
LOAD_7219=1; //第16個上升沿之后,第17個上升沿之前必須把pinCLK置高,否則數(shù)據(jù)丟失
}
/**************************************************
*                MAX7219初始化       *
***************************************************/
void init_7219 (void)
   {
     write_7219 (0x0c,0x01);     /*  設(shè)置電源工作模式            */
     write_7219 (0x0a,0x02);     /*  設(shè)置亮度(19/32,根據(jù)需要增減)*/
     write_7219 (0x0b,0x03);     /*  設(shè)置掃描界限(根據(jù)需要增減)  */
     write_7219 (0x09,0x00);     /*  設(shè)置譯碼模式(00不譯,FF譯)    */
  write_7219 (0x0f,0x00);     /*  顯示測試(00為正常工作狀態(tài))  */
   }
/**************************************************
*                MAX7219清除顯示      *
***************************************************/
void clear_7219(void)
{
uchar i;       //變量i,用來選擇數(shù)碼管位選
for(i=8;i>0;i--)     //i自減,選擇完所有的8位
{
  write_7219(i,0x00);  //對應位選的段全部清除顯示
}
}
void main(void)
{
    init_7219 ();          //MAX7219初始化
clear_7219();   //MAX7219清除顯示,免去干擾
    while(1)   
  {  
   write_7219(0x01,LEDcode[5]);      //掃描第一位(LSB),并送段碼顯示
   write_7219(0x02,LEDcode[5]|0x80); //掃描第二位,并送段碼顯示,同時加顯小數(shù)點2|  0x80 如果不加小數(shù)點就去掉|0x80
   write_7219(0x03,LEDcode[5]);      //掃描第三位,并送段碼顯示
   write_7219(0x04,LEDcode[5]);   //掃描第四位,并送段碼顯示
   write_7219(0x05,LEDcode[5]);   //掃描第五位,并送段碼顯示
   write_7219(0x06,LEDcode[6]);   //掃描第六位,并送段碼顯示  
   write_7219(0x07,LEDcode[7]);   //掃描第七位,并送段碼顯示
   write_7219(0x08,LEDcode[8]);   //掃描第八位(MSB),并送段碼顯示
  }   
}

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

使用道具 舉報

沙發(fā)
ID:235200 發(fā)表于 2020-11-25 22:30 | 只看該作者
這是最簡單的了,而且條理清楚,再改的話估計會讀不懂了
回復

使用道具 舉報

板凳
ID:420836 發(fā)表于 2020-11-26 04:21 | 只看該作者
我覺得它已經(jīng)簡化了。
回復

使用道具 舉報

地板
ID:836924 發(fā)表于 2020-11-26 19:05 | 只看該作者
csmyldl 發(fā)表于 2020-11-25 22:30
這是最簡單的了,而且條理清楚,再改的話估計會讀不懂了

好的,謝謝
回復

使用道具 舉報

5#
ID:849801 發(fā)表于 2020-11-26 19:11 | 只看該作者
你可以把寄存器那部分簡化一些
回復

使用道具 舉報

6#
ID:748788 發(fā)表于 2020-11-26 19:40 | 只看該作者
一種簡化的方法是,將main函數(shù)之前的4個函數(shù)做出頭文件。這樣可以使主程序更簡潔。
回復

使用道具 舉報

7#
ID:848242 發(fā)表于 2020-11-27 08:19 | 只看該作者
一種簡化的方法是,將main函數(shù)之前的4個函數(shù)做出頭文件。這樣可以使主程序更簡潔。
回復

使用道具 舉報

8#
ID:848824 發(fā)表于 2020-11-27 15:19 | 只看該作者
怎么和18B20,合一起顯示溫度啊
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频在线 | 日本久久久影视 | 国产精品视频在线观看 | 午夜午夜精品一区二区三区文 | 国产亚洲精品美女久久久久久久久久 | 国产精品不卡 | 综合久 | 精品久久一 | 成人av播放| 亚洲+变态+欧美+另类+精品 | 亚洲国产69 | 亚洲精品久久久久avwww潮水 | 天天操操操操操 | 一级免费毛片 | 亚洲精品久久久一区二区三区 | 久久综合九色综合欧美狠狠 | 在线播放精品视频 | 精品国产31久久久久久 | 精品蜜桃一区二区三区 | 国产一区二区三区四区五区加勒比 | 超碰在线播 | 国产韩国精品一区二区三区 | 免费性视频 | 亚洲va欧美va人人爽午夜 | 中文字幕一区二区三区精彩视频 | 国产亚洲高清视频 | 日韩一区二区三区视频在线观看 | 搞黄网站在线观看 | 久久精品一区二区 | 午夜成人免费视频 | 亚洲一区二区三区在线 | 成年免费在线观看 | 日韩高清一区 | 视频一区在线观看 | 99久久精品免费看国产四区 | 久久免费精品 | 日韩成人一区 | 欧美极品视频在线观看 | h视频免费在线观看 | 日韩国产一区二区三区 | 国产亚洲黄色片 |