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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3385|回復: 8
打印 上一主題 下一主題
收起左側

關于單片機執行的時序沖突問題理解

[復制鏈接]
回帖獎勵 9 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
         請問一個困擾很久的問題,在做矩陣按鍵實驗時,采用行列掃描原理編程,假如上電后,我一直按著某個鍵,那么在讀取按鍵的程序中,三個斷點觸豈不是有矛盾了,我按鍵持續了幾秒,程序掃描了n多次,在幾秒之中的某一些時刻,我人為的按鍵給端口賦值與軟件語句賦值相沖突?

實際下載沒問題,怎么理解呀?




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

使用道具 舉報

沙發
ID:213173 發表于 2017-12-5 14:04 | 只看該作者
你按住某個鍵不放不是賦值操作,只是改變端口狀態,程序讀取端口狀態與所賦值作比較獲取鍵值。
回復

使用道具 舉報

板凳
ID:7485 發表于 2017-12-5 20:09 | 只看該作者

回帖獎勵 +1 黑幣

你在按住按鍵,程序已經固化了,你怎么“賦值”?
回復

使用道具 舉報

地板
ID:223571 發表于 2017-12-11 12:00 | 只看該作者
ahshmj 發表于 2017-12-5 20:09
你在按住按鍵,程序已經固化了,你怎么“賦值”?

請你詳細解釋一下,程序固化怎么理解,是程序停止不運行?
回復

使用道具 舉報

5#
ID:223571 發表于 2017-12-11 14:51 | 只看該作者
wulin 發表于 2017-12-5 14:04
你按住某個鍵不放不是賦值操作,只是改變端口狀態,程序讀取端口狀態與所賦值作比較獲取鍵值。

補充一下:程序前面是#define GPIO_KEY P1       
按你的意思賦值是對寄存器的賦值與端口狀態的電平不同,第045是賦值,048是讀取寄存器的賦值,如果滿足條件就執行下面的程序,那么問題來了:If條件滿足的原因不是按鍵的操作,致使寄存器的值發成改變嗎?

這該如何理解呢?
回復

使用道具 舉報

6#
ID:213173 發表于 2017-12-11 21:11 | 只看該作者
藍野 發表于 2017-12-11 14:51
補充一下:程序前面是#define GPIO_KEY P1       
按你的意思賦值是對寄存器的賦值與端口狀態的電平不同,第04 ...

端口寄存器的值只能軟件改變,按鍵只是暫時改變端口電平狀態,不能改變端口寄存器的值,一旦按鍵抬起,端口電平狀態恢復為端口寄存器的值。給你一個4*4矩陣鍵盤程序參考,每句都有注釋,不難理解。
#include <reg52.h>                                                 //頭文件
#define uchar unsigned char                         //宏定義
#define uint unsigned int                                 //宏定義
uchar key=0;                                                        //鍵值變量

void key_scan()                                                        //矩陣鍵盤掃描函數
{
        uchar temp1,temp2,temp3;                        //臨時變量
        static bit sign=0;                                        //按鍵自鎖標志
        static uchar count=0;                                //消抖計數變量
        P3=0xf0;                                                        //先給P3賦一個初值1111 0000
        if(P3!=0xf0)                                                 //判斷P3不等于所賦初值,說明有健按下
        {
                if(sign==0)                                                //如果按鍵自鎖標志為0
                {
                        count++;                                        //消抖計數,摒棄Delay延時方式
                        if(count>=250)                                //估算主循環周期調整100~255
                        {
                                sign=1;                                        //按鍵自鎖標志置1,鍵不抬起,按其他鍵無效
                                temp1=P3;                                //temp1保存高4位變化xxxx 0000
                                P3=0x0f;                                //再給P3賦值0x0f    0000 1111
                                temp2=P3;                                //temp2保存低4位變化0000 xxxx
                                temp3=temp2|temp1;                //temp3=temp2按位與temp1,等效于低4位+高4位
                                key=temp3;                                //保存鍵值
                        }
                }
        }
        else                                                                 //按鍵抬起
        {
                sign=0;                                                        //按鍵自鎖標志清0
                count=0;                                                //消抖計數清0
        }
}

void main()
{
        while(1)
        {
                key_scan();                                                //鍵盤掃描
                P1=key;                                                        //LED低電平亮顯示鍵值
        }                                                                               
}
回復

使用道具 舉報

7#
ID:223571 發表于 2017-12-13 10:17 | 只看該作者
wulin 發表于 2017-12-5 14:04
你按住某個鍵不放不是賦值操作,只是改變端口狀態,程序讀取端口狀態與所賦值作比較獲取鍵值。

再次請教一下:有的人表述為程序是讀取端口的狀態,有的說是檢測寄存器的值。這兩者 怎么區分?我該怎么辨別呢?
回復

使用道具 舉報

8#
ID:213173 發表于 2017-12-13 14:30 | 只看該作者
藍野 發表于 2017-12-13 10:17
再次請教一下:有的人表述為程序是讀取端口的狀態,有的說是檢測寄存器的值。這兩者 怎么區分?我該怎么辨 ...

這是表述不嚴謹,端口的電平狀態不一定就是端口寄存器的值,端口作為輸出,端口的電平通常是與寄存器的值相同,端口作為輸入其電平狀態是受外接電路的電平狀態影響的,端口的電平往往是與寄存器的值不相同。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品性视频 | 精品日本久久久久久久久久 | 日韩一区二区三区在线视频 | 亚洲精品成人 | 99热热精品 | 伊人免费在线观看 | 久久网站黄 | 国产精品久久久久久久久图文区 | 在线成人免费观看 | 欧美成人a∨高清免费观看 色999日韩 | 福利网址 | 国产精品色哟哟网站 | 九九天堂网 | 亚洲免费影院 | 一区日韩 | 日韩在线小视频 | 亚洲91精品 | 国产精品国产精品国产专区不卡 | 久久精品国产一区二区三区 | a黄在线观看| 久久免费精彩视频 | 成人美女免费网站视频 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 欧美日韩在线精品 | 久久成人一区 | 成人美女免费网站视频 | 成人免费一区二区三区视频网站 | 亚洲免费人成在线视频观看 | 成人久久18免费网站图片 | 日韩成人影院在线观看 | 亚洲视频不卡 | 日韩三级免费观看 | 暖暖成人免费视频 | 91社影院在线观看 | 中文字幕在线播放第一页 | 水蜜桃久久夜色精品一区 | 天天干狠狠干 | 黄色一级视频免费 | 九九九久久国产免费 | 亚洲日本欧美日韩高观看 | 99亚洲精品 |