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

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

QQ登錄

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

搜索
查看: 5033|回復(fù): 4
收起左側(cè)

怎么讓開(kāi)關(guān)機(jī)時(shí)數(shù)碼管不顯示數(shù)字,按下開(kāi)關(guān)后才顯示數(shù)字

[復(fù)制鏈接]
ID:244748 發(fā)表于 2017-10-31 22:29 | 顯示全部樓層 |閱讀模式
按下16個(gè)矩陣鍵盤依次在數(shù)碼管上顯示1-16的平方。如按下第一個(gè)顯示1,第二個(gè)顯示4---  , 怎么改 怎么讓開(kāi)關(guān)機(jī)時(shí)數(shù)碼管不顯示數(shù)字,按下開(kāi)關(guān)后才顯示數(shù)字。# include <reg52.h>
# define uint unsigned int
# define uchar unsigned char
       
sbit        P_HC595_SER   = P2^7;        //pin 14        SER                data input
sbit        P_HC595_RCLK  = P2^5;        //pin 12        RCLk        store (latch) clock
sbit        P_HC595_SRCLK = P2^6;        //pin 11        SRCLK        Shift data clock


uchar code t_display[]={
//         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F   //
        0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71, 0x76, 0x79, 0x38, 0x3f, 0};        // ¶ÎÂë
uchar code wei[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
uchar temp;
uint num, num1;
void Send_595(uchar);
void delay(uint);
uint dage();
void display(uchar);
void we(uchar, uchar, uchar);


void main()
{
       
          Send_595(0xff);
                Send_595(0xff);
          P_HC595_RCLK = 0;
                P_HC595_RCLK = 1;
         
          
          while(1)
                {
                        num1 = dage();
               
                        we(num1/100, num1%100/10, num1%10);
                       
                }
}




                       
void Send_595(uchar dat)
{       
        uint         i;
        for(i=0; i<8; i++)
        {
                if(dat & 0x80)        P_HC595_SER = 1;
                else                        P_HC595_SER = 0;
                P_HC595_SRCLK = 0;
                P_HC595_SRCLK = 1;
                dat = dat << 1;
        }
}
void delay(uint z)
{
        uint x, y;
        for(x=z; x>0; x--)
          for(y=110; y>0; y--);
}


uint dage()
{
        P3 = 0xfe;
        temp = P3;
        temp = temp&0xf0;
  while( temp != 0xf0)
        {
                delay(5);
                temp = P3;
                temp = temp&0xf0;
                while( temp != 0xf0)
                {
                                temp = P3;
                                switch(temp)
                                {
                                        case 0xee : num = 1;
                                                 break;
                                        case 0xde : num = 4;
                                                 break;
                                        case 0xbe : num = 9;
                                                 break;
                                        case 0x7e : num = 16;
                                                 break;
                                }
                                while( temp != 0xf0)
                                {
                                        temp = P3;
                                        temp = temp&0xf0;
                                }
                               
                        }
         }
               
                P3 = 0xfd;
                temp = P3;
                temp = temp&0xf0;
                while( temp != 0xf0)
                {
                        delay(5);
                        temp = P3;
                        temp = temp&0xf0;
                        while( temp != 0xf0)
                        {
                                temp = P3;
                                switch(temp)
                                {
                                        case 0xed : num = 25;
                                                 break;
                                        case 0xdd : num = 36;
                                                 break;
                                        case 0xbd : num = 49;
                                                 break;
                                        case 0x7d : num = 64;
                                                 break;
                                 }
                               
                                 while( temp != 0xf0)
                                {
                                        temp = P3;
                                        temp = temp&0xf0;
                                }
                               
                        }
                }
               
                P3 = 0xfb;
                temp = P3;
                temp = temp&0xf0;
                while( temp != 0xf0)
                {
                        delay(5);
                        temp = P3;
                        temp = temp&0xf0;
                        while( temp != 0xf0)
                        {
                                temp = P3;
                                switch(temp)
                                {
                                        case 0xeb : num = 81;
                                                 break;
                                        case 0xdb : num = 100;
                                                 break;
                                        case 0xbb : num = 121;
                                                 break;
                                        case 0x7b : num = 144;
                                                 break;
                                 }
                               
                                 while( temp != 0xf0)
                                {
                                        temp = P3;
                                        temp = temp&0xf0;
                                }
                       
                        }
                }
               
                P3 = 0xf7;
                temp = P3;
                temp = temp&0xf0;
                while( temp != 0xf0)
                {
                        delay(5);
                        temp = P3;
                        temp = temp&0xf0;
                        while( temp != 0xf0)
                        {
                                temp = P3;
                                switch(temp)
                                {
                                        case 0xe7 : num = 169;
                                                 break;
                                        case 0xd7 : num = 196;
                                                 break;
                                        case 0xb7 : num = 225;
                                                 break;
                                        case 0x77 : num = 256;
                                                 break;
                                 }
                               
                                 while( temp != 0xf0)
                                {
                                        temp = P3;
                                        temp = temp&0xf0;
                                }
               
                        }
                }
    return num;
        }










void we(uchar aa, uchar bb, uchar cc)
{
          Send_595(0xfe);
                Send_595(t_display[aa]);
                P_HC595_RCLK = 0;
                P_HC595_RCLK = 1;


         
                Send_595(0xfd);
                Send_595(t_display[bb]);
                P_HC595_RCLK = 0;
                P_HC595_RCLK = 1;


               
                Send_595(0xfb);
                Send_595(t_display[cc]);
                P_HC595_RCLK = 0;
                P_HC595_RCLK = 1;
}


JW-51開(kāi)發(fā)板.pdf

99.63 KB, 下載次數(shù): 4

回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-11-1 06:10 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:244748 發(fā)表于 2017-11-1 18:02 | 顯示全部樓層
如果在后面加一個(gè)延遲函數(shù)后, 為什么還會(huì)出現(xiàn)000 ? 初學(xué)者,多多指教
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-11-1 18:44 | 顯示全部樓層
本帖最后由 zl2168 于 2017-11-1 18:47 編輯

你的問(wèn)題在下例中找到答案
實(shí)例5  4種不同方式鍵控信號(hào)燈
按鍵按能否鎖定可分為有鎖按鍵和無(wú)鎖按鍵。有鎖按鍵是按下即能鎖定閉合狀態(tài),只有再次按一下才能解除閉合狀態(tài),回歸斷開(kāi)狀態(tài)。無(wú)鎖按鍵不能鎖定閉合狀態(tài),除非按住鍵不予釋放,典型的例子就是電腦鍵盤上的按鍵。
單片機(jī)應(yīng)用系統(tǒng)中,根據(jù)按鍵閉合和釋放狀態(tài),有多種不同的鍵控方式,可編寫不同的程序予以實(shí)現(xiàn)。本例要求按以下4種不同方式分別鍵控VD0~ VD3
① 無(wú)鎖按鍵:S0按下,VD0亮;S0釋放,VD0暗;
② 無(wú)鎖按鍵(前沿有效):S1按下,VD1亮;S1釋放,VD1延時(shí)2s后暗。
③ 無(wú)鎖按鍵(后沿有效):S2按下,VD2亮;S2釋放,VD2亮,并延時(shí)2s后暗。
④ 模擬有鎖按鍵:S3按第一次,VD3亮,并繼續(xù)保持;按第二次,VD3才暗

Proteus仿真一下,確認(rèn)有效。
實(shí)例5 不同方式鍵控?zé)?rar (31.72 KB, 下載次數(shù): 6) 4種不同方式鍵控信號(hào)燈.jpg
以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1.書中電路和程序設(shè)計(jì)有詳細(xì)說(shuō)明,程序語(yǔ)句條條有注解。
回復(fù)

使用道具 舉報(bào)

ID:244748 發(fā)表于 2017-11-1 21:11 | 顯示全部樓層
怎么改, 能不能寫詳細(xì)點(diǎn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91xxx在线观看 | 亚洲欧美一区二区三区在线 | 在线一区 | 天天操天天拍 | 99热都是精品 | 欧美一极视频 | 国产午夜精品一区二区三区四区 | 成人免费观看视频 | 色综合天天网 | 中文av字幕| 99热播放| 精品美女视频在线观看免费软件 | 日本三级播放 | 992人人草 | 日本三级日产三级国产三级 | 亚洲精品成人av久久 | 男女啪啪高潮无遮挡免费动态 | 黄网站涩免费蜜桃网站 | 欧洲一级黄| 夜夜爽99久久国产综合精品女不卡 | 国产精品精品3d动漫 | 毛片免费观看视频 | av一区二区三区 | 久久久久久综合 | 五月综合色啪 | 亚洲欧美日韩精品 | 亚洲视频欧美视频 | 成人免费三级电影 | 亚洲欧美在线观看 | 丁香一区二区 | 一级毛片色一级 | 精品一区二区久久久久久久网精 | 九色视频网站 | 久久久久亚洲 | 国产视频精品视频 | 欧美一级全黄 | 黄色片免费在线观看 | 超碰日本| 午夜丰满少妇一级毛片 | 欧美精品久久久久久久久久 | 久久伊人亚洲 |