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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2947|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

TM1629B驅(qū)動(dòng)共陽(yáng)數(shù)碼管,不能正常顯示0-F ,能幫忙看看不?謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:163950 發(fā)表于 2021-7-6 09:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <STC12C5A60S2.H>
#include "intrins.h"                    //包含nop指令頭文件

#define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//宏定義


/********************定義控制端口**********************/
sbit DIO=P1^2;                                                //定義DIO
sbit CLK=P1^1;                                                //定義CLK
sbit STB=P1^0;                                                //定義STB

//sbit stb =P1^0;        //定義片選通訊口
//sbit clk =P1^1;        //定義時(shí)鐘通訊口
//sbit dio =P1^2;        //定義數(shù)據(jù)輸入/輸出通訊口

/********************定義數(shù)據(jù)*************************/
unsigned char Key[4]={0};                   //為存儲(chǔ)按鍵值定義的數(shù)組
//unsigned char const CODE[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,};            //共陰數(shù)碼管0~F字型碼,以實(shí)際電路接法為準(zhǔn)
unsigned char const  CODE[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //0~F顯示代碼(共陽(yáng))   
/***************延時(shí)函數(shù)**************/
void delay_nms(unsigned int n)
{
  unsigned int i;
  while(n--)
    for(i=0;i<550;i++);
}

/***************發(fā)送8bit數(shù)據(jù),從低位開(kāi)始**************/
void send_8bit(unsigned char dat)       
{
  unsigned char i;
  for(i=0;i<8;i++)
  {         
    CLK=0;
    if(dat&0x01)
          DIO=1;
         else
          DIO=0;
         _nop_();
         _nop_();
         _nop_();
         CLK=1;
         dat>>=1;
  }
  CLK=0;
  DIO=0;
}

/******************發(fā)送控制命令***********************/
void send_command(unsigned char word)
{
STB=1;
nop;
STB=0;
send_8bit(word);
}

/****************讀取按鍵值并存儲(chǔ)*******************/
void read_key()
{
unsigned char i,j;
send_command(0x42);
DIO=1;
for(j=0;j<4;j++)
{
   for(i=0;i<8;i++)
   {
    CLK=0;
        Key[j]=Key[j]>>1;
        CLK=1;
        if(DIO)
          Key[j]=Key[j]|0x80;
        nop;
   }
   nop;
   nop;
  }
   CLK=0;
   DIO=0;
   STB=1;
}

/************顯示函數(shù),數(shù)碼管1~16位顯示0~F************/
void display()               
{
unsigned char i;
send_command(0x40);        //設(shè)置數(shù)據(jù)命令:普通模式、地址自增1,寫(xiě)數(shù)據(jù)到顯存
send_command(0xc0);        //設(shè)置顯示地址命令:從00H開(kāi)始
for(i=0;i<16;i++)            //發(fā)送16字節(jié)的顯存數(shù)據(jù)
{
  send_8bit(CODE[i]);
}
send_command(0x8C);        //設(shè)置顯示控制命令:打開(kāi)顯示,并設(shè)置為11/16.
STB=1;
}

/************顯示函數(shù),第一位顯示按鍵值************/
void display0(unsigned char dat)       
{
unsigned char i;
send_command(0x40);        //設(shè)置數(shù)據(jù)命令:普通模式、地址自增1,寫(xiě)數(shù)據(jù)到顯存
send_command(0xc0);        //設(shè)置顯示地址命令:從00H開(kāi)始

send_8bit(CODE[dat]);        //第一位顯示數(shù)值
for(i=0;i<15;i++)        //后15位不顯示
{
  send_8bit(0x00);
}
send_command(0x8C);        //設(shè)置顯示控制命令:打開(kāi)顯示,并設(shè)置為11/16.
STB=1;
}

/*****************按鍵處理函數(shù)*********************/
void key_process()               
{  
   if(Key[0]!=0x00)
   {
    if((Key[0]==0x08)){display0(1);} //K0與SEG1按鍵按下,數(shù)碼管顯示數(shù)字1
    if((Key[0]==0x04)){display0(2);} //K1與SEG1按鍵按下,數(shù)碼管顯示數(shù)字2
   }
     if(Key[1]!=0x00)
   {
    if((Key[1]==0x08)){display0(3);} //K0與SEG3按鍵按下,數(shù)碼管顯示數(shù)字3
    if((Key[1]==0x04)){display0(4);} //K1與SEG3按鍵按下,數(shù)碼管顯示數(shù)字4
   }
}


void main()
{
P1M1=0;
P1M0=0;

DIO=1;                                                //定義DIO
CLK=1;                                                //定義CLK
STB=1;       
display();          //上電顯示0~F
delay_nms(10000);
while(1)
{
//read_key();             //讀按鍵值
////key_process();         //按鍵處理
//delay_nms(200);         //延時(shí)200ms再讀按鍵
////display();          //上電顯示0~F
//display0(1);
display();

}
}   

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

使用道具 舉報(bào)

沙發(fā)
ID:887202 發(fā)表于 2021-7-6 17:21 | 只看該作者
1.這一行沒(méi)注釋不會(huì)報(bào)錯(cuò)嗎?{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,};  
2.只用過(guò)TM1650,大概看了一下你的,有一個(gè)疑點(diǎn),TM1650驅(qū)動(dòng)數(shù)碼管的時(shí)候需要先設(shè)置開(kāi)顯示,然后再發(fā)送顯示數(shù)據(jù),你的卻是先發(fā)送了數(shù)據(jù)再打開(kāi)的顯示,不確定會(huì)不會(huì)有問(wèn)題。
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2021-7-6 17:27 | 只看該作者
sadv 發(fā)表于 2021-7-6 17:21
1.這一行沒(méi)注釋不會(huì)報(bào)錯(cuò)嗎?{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x7 ...

那段已在上一行注釋掉
只是代碼太長(zhǎng),論壇把它分開(kāi)兩行顯示
回復(fù)

使用道具 舉報(bào)

地板
ID:316468 發(fā)表于 2022-1-29 00:46 | 只看該作者
最近也研究了一下這個(gè)芯片,問(wèn)題出在數(shù)組里的一個(gè)數(shù)是一個(gè)八位數(shù)碼管(注意:是8位,也就是8個(gè)8)的某一段。所以要正確顯示的話需要8個(gè)8位二進(jìn)制的數(shù)中各取同一位來(lái)顯示一個(gè)數(shù)。
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2022-1-29 12:12 | 只看該作者
TM1629B.pdf (1.08 MB, 下載次數(shù): 18)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 福利一区视频 | 国产日产久久高清欧美一区 | 久久成人18免费网站 | www.色综合| 国产乱码一二三区精品 | 麻豆一区二区三区精品视频 | 国产精品久久久久久久久久 | 四虎影视一区二区 | 日日摸夜夜添夜夜添精品视频 | 久久久久国产精品一区 | 天堂网中文 | 日韩中文视频 | 精品福利视频一区二区三区 | 亚洲人成人一区二区在线观看 | 中文字幕免费视频 | 九九热精品视频在线观看 | 欧美精品一区二区三区一线天视频 | 国产福利视频 | 日韩精品影院 | 国产精品久久久久久福利一牛影视 | 亚洲免费观看视频网站 | 亚洲综合天堂网 | 亚洲欧美一区二区三区国产精品 | 国产999精品久久久 日本视频一区二区三区 | 91精品在线播放 | 欧美精品一区三区 | 成人久久18免费网站麻豆 | 91av精品| 久久久精| 国产色在线 | 在线视频亚洲 | 色婷婷激情综合 | 日韩久草 | 中文字幕国产 | 一区二区三区四区视频 | 女同av亚洲女人天堂 | 国产精品日韩欧美一区二区三区 | 免费a网站 | 国产99久久久久 | 97av视频 |