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

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

QQ登錄

只需一步,快速開始

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

想通過串口輸入數(shù)字 在數(shù)碼管上顯示出來,不知道為什么數(shù)碼管顯示的是各種筆畫而不...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:399491 發(fā)表于 2018-10-21 15:37 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
/*******************************************************************************
* 函數(shù)名         :UsartInit()
* 函數(shù)功能                   :設(shè)置串口
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void UsartInit()
{
        SCON=0X50;                        //設(shè)置為工作方式1
        TMOD=0X20;                        //設(shè)置計(jì)數(shù)器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打開接收中斷
        EA=1;                                                //打開總中斷
        TR1=1;                                        //打開計(jì)數(shù)器
}

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{       
        UsartInit();  //        串口初始化
        while(1);               
}

/*******************************************************************************
* 函數(shù)名         : Usart() interrupt 4
* 函數(shù)功能                  : 串口通信中斷函數(shù)
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
unsigned char receiveData;
void Usart() interrupt 4
{
        P0=SBUF;//出去接收到的數(shù)據(jù)
        RI = 0;//清除接收中斷標(biāo)志位
        LSA=0;LSB=0;LSC=0;
    while(!TI);                         //等待發(fā)送數(shù)據(jù)完成
        P0=0x00;//消隱
        TI=0;                                                 //清除發(fā)送完成標(biāo)志位
}

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

使用道具 舉報(bào)

沙發(fā)
ID:94031 發(fā)表于 2018-10-21 17:37 | 只看該作者
得到要顯示的數(shù),還要譯碼成數(shù)碼管相應(yīng)的碼值,才能送到段碼P0口。

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
873119779 + 5 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:413214 發(fā)表于 2018-10-21 18:44 | 只看該作者
74LS245
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2018-10-21 18:52 | 只看該作者
要譯碼成數(shù)碼管相應(yīng)的碼值,稍微改動(dòng)簡單示例一下。
#include "reg52.h"  
/*******************************************************************************
* 函數(shù)名         :UsartInit()
* 函數(shù)功能                   :設(shè)置串口
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char receiveData;
unsigned char code table[]={
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};
void UsartInit()
{
        SCON=0X50;                        //設(shè)置為工作方式1
        TMOD=0X20;                        //設(shè)置計(jì)數(shù)器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打開接收中斷
        EA=1;                                                //打開總中斷
        TR1=1;                                        //打開計(jì)數(shù)器
}

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{        
        UsartInit();  //        串口初始化
        LSA=0;LSB=0;LSC=0;
        P0=0x00;
        while(1);               
}

/*******************************************************************************
* 函數(shù)名         : Usart() interrupt 4
* 函數(shù)功能                  : 串口通信中斷函數(shù)
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
void Usart() interrupt 4
{
        RI = 0;//清除接收中斷標(biāo)志位
        receiveData=SBUF;//保存收到的數(shù)據(jù)
        P0=table[receiveData%10];//顯示收到的個(gè)位數(shù)
        SBUF=receiveData;//發(fā)送收到的數(shù)據(jù)
        while(!TI);   //等待發(fā)送數(shù)據(jù)完成
        TI=0;          //清除發(fā)送完成標(biāo)志位
}

評(píng)分

參與人數(shù) 1黑幣 +8 收起 理由
873119779 + 8 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:413292 發(fā)表于 2018-10-21 21:13 | 只看該作者
想寫點(diǎn)單片機(jī)程序不知道怎么寫
回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2018-10-26 07:32 | 只看該作者
#include "reg52.h"  //此文件中定義了單片機(jī)的一些特殊功能寄存器
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};//顯示0~F.的值

unsigned char x[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','.'};
unsigned char a[5];
unsigned char i,j;
//unsigned int i,m,j,l;
unsigned char SendByte;
bit flag=0;
/*******************************************************************************
* 函數(shù)名         :UsartInit()
* 函數(shù)功能       :設(shè)置串口
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void UsartInit()                //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        TMOD = 0x20;                //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
        TL1  = 0xFD;                //設(shè)定定時(shí)初值
        TH1  = 0xFD;                //設(shè)定定時(shí)器重裝值
        ET1  = 0;                   //禁止定時(shí)器1中斷
        TR1  = 1;                   //啟動(dòng)定時(shí)器1
        EA=1;                                        //開總中斷
        ES=1;                                        //開串口中斷
}
void delay(unsigned int u)
{
   while(u--);
}
/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能       : 主函數(shù)
* 輸    入       : 無
* 輸    出       : 無
*******************************************************************************/
void main()
{        
        UsartInit();  //串口初始化
        while(1)
        {
                for(i=0;i<5;i++)
                {
                        switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
                        {
                                case(0):
                                LSA=0;LSB=0;LSC=0; break;//顯示第0位
                                case(1):
                                LSA=1;LSB=0;LSC=0; break;//顯示第1位
                                case(2):
                                LSA=0;LSB=1;LSC=0; break;//顯示第2位
                                case(3):
                                LSA=1;LSB=1;LSC=0; break;//顯示第3位
                                case(4):
                                LSA=0;LSB=0;LSC=1; break;//顯示第4位
                        }
                        P0=smgduan[a[i]];//送段碼顯示
                        delay(100); //間隔一段時(shí)間掃描        
                        P0=0x00;//消隱
                }               
        }               
}

/*******************************************************************************
* 函數(shù)名         : Usart() interrupt 4
* 函數(shù)功能       : 串口通信中斷函數(shù)
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void Usart() interrupt 4
{        
        static unsigned char num=0;        //靜態(tài)計(jì)數(shù)變量
        RI=0;                                                //接收中斷請(qǐng)求標(biāo)志位清0
        a[num]=SBUF;                        //接收到的數(shù)據(jù)串保存在緩存數(shù)組
        num++;
        if(num>=5)
        {
                flag=1;                                //接收完成標(biāo)志置1
                num=0;                                //計(jì)數(shù)變量清0
        }
        if(flag==1)                //接收完成標(biāo)志為1
        {
                flag=0;                //接收完成標(biāo)志清0
                for(j=0;j<5;j++)
                {
                        SBUF=a[j];        //發(fā)送數(shù)據(jù)緩存中保存的數(shù)據(jù)
                        while(!TI);        //等待發(fā)送中斷請(qǐng)求標(biāo)志位為1
                        TI=0;                //發(fā)送中斷請(qǐng)求標(biāo)志位清0
                }
        }       
}
回復(fù)

使用道具 舉報(bào)

7#
ID:319023 發(fā)表于 2018-10-26 13:59 | 只看該作者
數(shù)碼管顯示的數(shù)和硬件連接、共陰還是共陽極都有關(guān)系,驅(qū)動(dòng)代碼不能只簡單移植。 可以把7段顯示數(shù)碼管每段單獨(dú)點(diǎn)亮,再嘗試用數(shù)碼管顯示數(shù)據(jù),到時(shí)只要改變下發(fā)送數(shù)據(jù)緩存中保存的數(shù)據(jù)就可以正常顯示了。
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2018-10-29 10:38 | 只看該作者



回復(fù)

使用道具 舉報(bào)

9#
ID:399491 發(fā)表于 2018-10-29 12:24 | 只看該作者

那請(qǐng)問小數(shù)點(diǎn)該怎么發(fā)送呢? 發(fā)送數(shù)字可以做得到了
回復(fù)

使用道具 舉報(bào)

10#
ID:213173 發(fā)表于 2018-10-29 14:55 | 只看該作者
873119779 發(fā)表于 2018-10-29 12:24
那請(qǐng)問小數(shù)點(diǎn)該怎么發(fā)送呢? 發(fā)送數(shù)字可以做得到了

小數(shù)點(diǎn)在這里是文本,不是數(shù)字,不能與數(shù)字混在一起傳輸,只能用其代碼與數(shù)字混在一起傳輸。



回復(fù)

使用道具 舉報(bào)

11#
ID:213173 發(fā)表于 2018-10-29 15:19 | 只看該作者
873119779 發(fā)表于 2018-10-29 12:24
那請(qǐng)問小數(shù)點(diǎn)該怎么發(fā)送呢? 發(fā)送數(shù)字可以做得到了

如果非得用文本方式傳輸數(shù)據(jù)并用數(shù)碼管正確顯示就得創(chuàng)建一個(gè)二維數(shù)組來完成譯碼。這會(huì)導(dǎo)致編程復(fù)雜。LCD可以直接輸入ASCII碼顯示是其內(nèi)置有譯碼模塊。
回復(fù)

使用道具 舉報(bào)

12#
ID:417405 發(fā)表于 2018-10-29 17:22 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

13#
ID:71883 發(fā)表于 2019-8-14 10:13 | 只看該作者
大家說的非常有用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97日日碰人人模人人澡分享吧 | 中文字幕视频在线观看 | 国产性生活一级片 | 国产在线一区二 | 久久在线 | 久久久久免费观看 | 一级在线视频 | 91嫩草精品 | 国产精品成人国产乱一区 | 无码日韩精品一区二区免费 | 欧美一区二区三区在线 | 欧美中文字幕在线 | 欧美激情网站 | 操网站| 99在线视频观看 | 亚洲第一区久久 | 日本一级淫片免费啪啪3 | 亚洲国产成人精品久久久国产成人一区 | 东方伊人免费在线观看 | 国产亚洲一区二区三区在线 | 一级做a毛片 | 久久亚洲一区二区三区四区 | 一级毛片免费视频 | 337p日韩 | 国产成人av一区二区三区 | av片免费 | 亚洲91精品| 久久精品国产一区二区三区 | 97色在线视频 | japanhdxxxx裸体| 久久精品国产免费 | 日本一区二区不卡 | 在线不卡视频 | 在线观看的av | 亚洲国产精品久久 | 精品国产乱码久久久久久图片 | 性欧美精品一区二区三区在线播放 | 九色网址 | 国产一区二区 | 久久99精品久久久久久秒播九色 | av一区二区三区在线观看 |