国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

51單片機-數碼管

發布時間:2011-3-22 11:41    發布者:techshare
關鍵詞: 51單片機 , 數碼管



  共陰極是指所有發光二極管陰極連接在一起,這個共陰極可以用來做片選。

  



  如圖,這里有8個發光二極管,到底哪個亮需要進行片選。

  段選:8段數碼管每一段的控制段叫段選

  位選:就是進行哪個8段數碼管亮的選擇

  TX-1C使用兩片鎖存器74HC573實現位選和段選

  



  這里的D0"7是連在單片機的I/O口上,當為高電平時,Q與D中的數據一致,遇到負跳變沿時Q中的

  數據保持住,D中的數據即使變化也不會影響Q。

  MCU Version2使用的是74HC245和38譯碼器74HC138

  





  74HC245有一個緩沖和驅動的作用,這樣可以使led顯示的更加穩定,

  數碼管顯示分動態顯示和靜態顯示,每個數碼管的狀態都是被不斷更新的,利用的人的視覺暫留,

  使看上去數值保持在一個固定的位置上,人的視覺是有延續性的,當一個東西不斷變化時,變化

  的時間小于人眼的視覺暫留時間的話,人的眼睛會以為這個東西是連續的。靜態顯示是一幅畫面

  放在那看上去是不動的而它確實是不動的。動態掃描顯示即輪流向各位數碼管送出字型碼和相應

  位選,利用發光管的余暉和視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。

  靜態顯示:

  數碼管從左向右依次點亮:

  
    #include <reg52.h>

void delay(){
        int i,j;
        for(i = 0; i < 0xff; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}
unsigned int code duan[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};

unsigned int code wei[]={
        0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};

void main(){
        while(1){
                int i;
                P2 = 0x39;
                for(i = 0; i < 8; i++){
                        P2 = duan[ i];
                        P1 = wei[ i];
                        delay();
                }
        }                        
}

    想讓哪個數碼管亮多少就亮多少:

   
      #include <reg52.h>

void delay(){
        int i,j;
        for(i = 0; i < 0xff; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}
unsigned char code duan[]={
        0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
      0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char code wei[]={
        0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

void show(unsigned char we,unsigned char du){
        P1 = wei[we];
        P2 = duan[du];
        delay();
}
void main(){
        while(1){
                show(1,5);
        }                        
}
   

   
動態顯示: 3個數碼管從0"999計數。
      




  #include <reg52.h>

unsigned int code duan[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7f,0x6f};

unsigned int code wei[]={
        0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};

unsigned int num,sum;

void delay(int k){
        int i,j;
        for(i = 0; i < k; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}

void display(unsigned int bai, unsigned int shi, unsigned int ge){
        P1 = 0x0;
        P2 = duan[bai];
        delay(1);                       //少延時一些數碼管更亮,如果延時很大就
        P1 = 0x1;                       //變成靜態的了
        P2 = duan[shi];
        delay(1);
        P1 = 0x2;
        P2 = duan[ge];
        delay(1);
}
void main(){
        EA = 1;                                   
        ET1 = 1;
        TMOD = 0x10;
        TR1 = 1;
        num = 0;
        sum = 0;
        TH1 = (65535 - 50000) / 256;
        TL1 = (65535 - 50000) % 256;
        while(1){
                if(num == 20){          //每一秒計數增加1
                        num = 0;
                        if(sum == 1000)
                                sum = 0;     //用3位數碼管顯示,當達到1000時從頭顯示
                        sum++;
                }
                display(sum/100,sum%100/10,sum%10);        
        }        
}

void time1() interrupt 3{
        TH1 = (65535 - 50000) / 256;
        TL1 = (65535 - 50000) % 256;
        num++;
}








  #include <reg52.h>

unsigned char code duan[]={
        0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D};

void delay(int k){
        int i,j;
        for(i = 0; i < k; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}

void display(){
        int i;
        for(i = 1; i < 7; i++){
                P1 = i-1;
                P2 = duan[7-i];
                delay(1);
        }
}

void main(){
        while(1){
                        display();                                       
        }        
}

  

     


  
    #include <reg52.h>

unsigned int num,sum;

unsigned int code duan[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7f,0x6f};

void delay(int m){
        int i,j;
        for(i = 0; i < m; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}

void display(int n1,int n2,int n3){
        P1 = 0;
        P2 = duan[n1];
        delay(1);
        P1 = 1;
        P2 = duan[n2];
        delay(1);
        P1 = 2;
        P2 = duan[n3];
        delay(1);
}

void main(){
        EA = 1;
        ET1 = 1;
        TMOD = 0x10;
        TR1 = 1;
        sum = 0;
        num = 0;
        TH1 = (65535 - 50000) / 256;
        TL1 = (65535 - 50000) % 256;
        while(1){
                if(num == 1){
                        num = 0;
                        sum++;
                }
                if(sum == 1000)
                        sum = 0;
                display(sum/100,sum%100/10,sum%10);                                
        }
}

void time1() interrupt 3{
        TH1 = (65535 - 10000) / 256;
        TL1 = (65535 - 10000) % 256;
        num++;
}


李萬鵬
本文地址:http://m.qingdxww.cn/thread-59324-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
williamkmcn 發表于 2011-7-7 16:53:51
好東西值得收藏
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.精品| 国产做受视频激情播放 | 欧美成人看片黄a免费看 | 日本一道dvd在线中文字幕 | 91av精品视频 | 精品视频在线看 | 一区二区三区视频 | 国产成人看片免费视频观看 | 国产成人aa在线观看视频 | 久久精品国产一区二区三区 | 国内精品久久久久久久影视麻豆 | 日本一道dvd在线中文字幕 | 日韩高清不卡 | 精品自拍视频 | 国产免费av片在线观看 | 草久免费视频 | 男人天堂亚洲 | 国产小视频国产精品 | 深入敌后免费高清完整版在线观看 | 国产综合91天堂亚洲国产 | 亚洲色图综合 | 免费视频网站在线观看黄 | 国产精品日韩欧美一区二区三区 | 最近中文字幕完先锋资源 | 久久伊人草 | 手机在线免费不卡一区二 | 国产免费高清在线精品一区 | 中国一级做a爰片久久毛片 中国一级特黄毛片 | 亚州成人 | 成年美女黄网站色大片免费看 | 天堂在线免费观看 | 九九热精品视频 | a在线看 | 手机在线观看精品国产片 | 亚洲乱码在线视频 | 日韩a视频在线观看 | 亚洲阿v天堂| 久久99热精品免费观看动漫 | 日韩黄网 | 91国内外精品自在线播放 | 手机av在线播放 |