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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3970|回復: 5
收起左側

單片機矩陣鍵盤與串口通信沖突

[復制鏈接]
ID:307391 發表于 2018-5-5 13:38 | 顯示全部樓層 |閱讀模式
電子秤使用矩陣鍵盤沒加串口通信是一切正常,在加入串口通信后,鍵盤在輸入25.5前都正常,但到25.6時LCD顯示就為00.0,25.7為0
0.1,25.8為0.02,這是咋回事呢??
回復

使用道具 舉報

ID:303383 發表于 2018-5-5 15:46 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

ID:307391 發表于 2018-5-5 16:36 | 顯示全部樓層
小貓貓愛吃魚 發表于 2018-5-5 15:46
char 定義改成 int ,問題并不是你說的加了串口后出現的

是改鍵盤程序里的char嗎,還是串口里的?
#include "keyboard.h"
extern bit bdata flag_key;
//按鍵掃描函數 :   
//功能;只掃描一個按鍵,按鍵為號小優先  
//返回鍵值:
//         1    2    3    10           //10:清零重量,兼去皮功能       
//         4    5    6    11           //11:清除單價
//         7    8    9    12           //12:顯示數值偏大調節按鍵  
//         14   0    15   13           //14:無功能(用于擴展)15:小數點   13:顯示數值偏小調節按鍵

unsigned char Getkeyboard(void)
{
    unsigned char number = 0;
    unsigned char i;
        //行輸入低電平
    ROW1=ROW2=ROW3=ROW4=0;
        //如果列輸出不全為高,則說明有鍵按下
        if (((COL1!=1)||(COL2!=1)||(COL3!=1)||(COL4!=1))&&flag_key==1)
        {
           //輸入0111
           flag_key=0;
           ROW1=0;
           ROW2=ROW3=ROW4=1;
           for (i=0;i<20;i++);
           if (COL1==0) return 1;           // 7
           else if (COL2==0) return 2;        //         8
           else if (COL3==0) return 3;         //        9
           else if (COL4==0) return 10;         //         10
           //輸入1011
           ROW2=0;
           ROW1=ROW3=ROW4=1;
           for (i=0;i<20;i++);
           if (COL1==0) return 4;          //4
           else if (COL2==0) return 5; //  5
           else if (COL3==0) return 6;        // 6
           else if (COL4==0) return 11;         //        11
           //輸入1101
           ROW3=0;
           ROW1=ROW2=ROW4=1;
           for (i=0;i<20;i++);
           if (COL1==0) return 7;  //1
           else if (COL2==0) return 8;          // 2
           else if (COL3==0) return 9;          //   3
           else if (COL4==0) return 12;          //   12
           //輸入0111
           ROW4=0;
           ROW1=ROW2=ROW3=1;
           for (i=0;i<20;i++);
           if (COL1==0) return 14;
           else if (COL2==0) return 0;
           else if (COL3==0) return 15;
           else if (COL4==0) return 13;
           //沒有檢測到列低電平
           return 99;
        }
        else if(COL1==1&&COL2==1&&COL3==1&&COL4==1)
        flag_key=1;
        return 99;
}
串口
#include <reg52.h>
#include "intrins.h"
#include "sci.h"

void InitSci(void)                 //設置串口
{
        EA = 1;                //開總中斷。
        ES = 1;                //串行口允許中斷
        SM0 = 0;                //設置串行口工作方式為方式1。SM0=0,SM1=0為工作方式0.依次類推
        SM1 = 1;
        REN = 1;                //串行口接收允許。REN=0時,禁止接收。
        TMOD |= 0x20;        //定時器1工作方式2.
        TH1 = 0xfd;        //相應波特率設初值計算方法。 初值X=(256-11059200/(12*32*9600))
        TL1 = 0xfd;        //9600為你要設置的波特率。11059200為晶振頻率。X的值最后要換算成16進制
        TR1 = 1;                //定時器T1開始工作,TR1=0,T1停止工作       
}

void SendSci(unsigned char SciData)                 //發送串口數據
{
        SBUF = SciData;
        while(!TI)
        {
                ;
        }
        TI = 0;
回復

使用道具 舉報

ID:307391 發表于 2018-5-5 16:46 | 顯示全部樓層
小貓貓愛吃魚 發表于 2018-5-5 15:46
char 定義改成 int ,問題并不是你說的加了串口后出現的

大神,是改哪里的char
回復

使用道具 舉報

ID:307391 發表于 2018-5-5 17:32 | 顯示全部樓層
小貓貓愛吃魚 發表于 2018-5-5 15:46
char 定義改成 int ,問題并不是你說的加了串口后出現的

謝謝大神,原來是price定義成字符串了,已經改好。再次感謝!!!!!
回復

使用道具 舉報

ID:291065 發表于 2018-6-12 19:02 | 顯示全部樓層
luxuan 發表于 2018-5-5 17:32
謝謝大神,原來是price定義成字符串了,已經改好。再次感謝!!!!!

說的是什么意思啊

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人3d动漫一区二区三区91 | 夜夜爽99久久国产综合精品女不卡 | 黄a免费网络| 色综合色综合色综合 | 久久久久黄 | 国产成人av一区二区三区 | 欧美成人a∨高清免费观看 欧美日韩中 | 国产亚洲二区 | 狼色网| 成人h视频 | 久久亚洲综合 | 性欧美精品一区二区三区在线播放 | 欧美激情a∨在线视频播放 成人免费共享视频 | 日日骚网| 午夜精 | 欧美日韩黄 | 精品国产一区二区三区性色av | 天天色综 | 成人妇女免费播放久久久 | 999免费网站| 一区二区国产精品 | 黄网站色大毛片 | 欧洲妇女成人淫片aaa视频 | 日本人做爰大片免费观看一老师 | 最新免费视频 | 老司机精品福利视频 | 久久久精品影院 | 亚洲精品电影 | 精品视频www | 日日夜夜草 | 日韩精品一区二区三区第95 | 国产一级毛片精品完整视频版 | 黄色一级免费 | 在线亚洲精品 | 国产一区二区在线免费观看 | 伊人久久综合 | 精品一区二区三区在线播放 | 毛片a区| 日韩三片| 国户精品久久久久久久久久久不卡 | 欧美一区二区三区免费电影 |