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

標(biāo)題: 單片機(jī)串口通信程序問(wèn)題 [打印本頁(yè)]

作者: Thunder.    時(shí)間: 2018-12-13 10:54
標(biāo)題: 單片機(jī)串口通信程序問(wèn)題
我寫(xiě)的一個(gè)程序,用串口助手向單片機(jī)發(fā)送三個(gè)10進(jìn)制數(shù)如圖,然后取數(shù)顯示在LCD1602上,為什么不行呢 大家?guī)臀铱聪?
#include<stc12.h>//頭文件
unsigned int date[3],num;
unsigned int value;
#include<intrins.h>

sbit RS = P1^0;   //定義端口
sbit RW = P1^1;
sbit EN = P2^5;
sbit DU = P2^0;
sbit WE = P2^1;

#define RS_CLR RS=0
#define RS_SET RS=1

#define RW_CLR RW=0
#define RW_SET RW=1

#define EN_CLR EN=0
#define EN_SET EN=1

#define DataPort P0


/*------------------------------------------------
mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
     //大致延時(shí)1mS
     DelayUs2x(245);
         DelayUs2x(245);
}
}
/*------------------------------------------------
              判忙函數(shù)
------------------------------------------------*/
bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(DataPort & 0x80);
}
/*------------------------------------------------
              寫(xiě)入命令函數(shù)
------------------------------------------------*/
void LCD_Write_Com(unsigned char com)
{  
while(LCD_Check_Busy()); //忙則等待
RS_CLR;
RW_CLR;
EN_SET;
DataPort= com;
_nop_();
EN_CLR;
}
/*------------------------------------------------
              寫(xiě)入數(shù)據(jù)函數(shù)
------------------------------------------------*/
void LCD_Write_Data(unsigned char Data)
{
while(LCD_Check_Busy()); //忙則等待
RS_SET;
RW_CLR;
EN_SET;
DataPort= Data;
_nop_();
EN_CLR;
}

/*------------------------------------------------
                清屏函數(shù)
------------------------------------------------*/
void LCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}

/*------------------------------------------------
              初始化函數(shù)
------------------------------------------------*/
void LCD_Init(void)
{
   LCD_Write_Com(0x38);    /*顯示模式設(shè)置*/
   DelayMs(5);
   LCD_Write_Com(0x38);
   DelayMs(5);
   LCD_Write_Com(0x38);
   DelayMs(5);
   LCD_Write_Com(0x38);  
   LCD_Write_Com(0x08);    /*顯示關(guān)閉*/
   LCD_Write_Com(0x01);    /*顯示清屏*/
   LCD_Write_Com(0x06);    /*顯示光標(biāo)移動(dòng)設(shè)置*/
   DelayMs(5);
   LCD_Write_Com(0x0C);    /*顯示開(kāi)及光標(biāo)設(shè)置*/
   }


void UartConfiguration()
{
        
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時(shí)器1時(shí)鐘為Fosc,即1T
        AUXR &= 0xFE;                //串口1選擇定時(shí)器1為波特率發(fā)生器
        TMOD &= 0x0F;                //設(shè)定定時(shí)器1為16位自動(dòng)重裝方式
        TL1 = 0xE0;                //設(shè)定定時(shí)初值
        TH1 = 0xFE;                //設(shè)定定時(shí)初值
        ET1 = 0;                //禁止定時(shí)器1中斷
        TR1 = 1;                //啟動(dòng)定時(shí)器1
        }
void main()
{
        cmg88();//關(guān)數(shù)碼管,點(diǎn)陣函數(shù)
LCD_Init();
LCD_Clear();//清屏
  UartConfiguration();
         
        while(1)                                                //死循環(huán)
        {
    value=date[3]*100+date[2]*10+date[1]*1;

        //        value=500;
                 LCD_Write_Com(0x8c);
          LCD_Write_Data(        value/100+0x30) ; // 百位
                LCD_Write_Data(        value/10%10+0x30) ;//百位
                LCD_Write_Data(        value%10+0x30) ;   //十位

}
        }

void Uart() interrupt 4
{
        if(RI)
        {
               
                date[num++]=SBUF;
                if(num>=3)
                {
                num=0;
                }
                RI=0;
        }
}

IMG_20181212_115421.jpg (3.33 MB, 下載次數(shù): 58)

IMG_20181212_115421.jpg

作者: wulin    時(shí)間: 2018-12-13 10:54
本帖最后由 wulin 于 2018-12-19 16:57 編輯

unsigned char date[3];
bit flag=0;
/***************************/
void main()                                       
{
        .........
        while(1)  
        {
                if(flag==1)
                {
                        ES=0;                        //關(guān)串口中斷
                        flag=0;
                        value=date[2]*100+date[1]*10+date[0];
                        ...........
                        ES=1;                //開(kāi)串口中斷


/******************************/
void Uart() interrupt 4
{
        static unsigned char num=0;//靜態(tài)計(jì)數(shù)變量
        RI=0;                                        //接收中斷請(qǐng)求標(biāo)志位清0        
        date[num]=SBUF;                //接收到的數(shù)據(jù)串保存在緩存數(shù)組
        num++;
        if(num>=3)
        {
                flag=1;                                //接收完成標(biāo)志置1
                num=0;                                //計(jì)數(shù)變量清0
        }
}


作者: Vincent11499    時(shí)間: 2018-12-18 23:19
LCD1602有顯示 ?是亂碼還是?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 户外露出一区二区三区 | 日一日操一操 | 免费av手机在线观看 | 在线一区二区三区 | 国产激情91久久精品导航 | 91精品国产99 | 成人免费淫片aa视频免费 | 99成人免费视频 | 精品国产欧美 | 亚洲一级黄色 | 国产一区二区三区久久久久久久久 | 国产精品国产精品国产专区不蜜 | 看真人视频一级毛片 | av特级毛片 | 久久精品一 | 91视视频在线观看入口直接观看 | av看片| 久久午夜影院 | 亚洲精品区 | 国产精品自拍一区 | 免费av观看| 全免费a级毛片免费看视频免费下 | 91在线视频一区 | 日韩电影中文字幕 | 国产一区日韩在线 | 欧美国产日韩一区二区三区 | 国产91精品久久久久久久网曝门 | 日韩欧美国产精品一区 | 中日韩欧美一级片 | 一区二区三区在线免费观看 | 自拍 亚洲 欧美 老师 丝袜 | 国产99免费 | 亚洲精品在线观看视频 | 国产精品国产a级 | 91精品久久久 | av大片 | 亚洲视频中文字幕 | 中文字幕av第一页 | 国产成人在线一区二区 | a视频在线观看 | 国产午夜精品视频 |