csmyldl 發(fā)表于 2024-5-2 11:43
前面加一個16至4位二進制的編碼電路,不過這樣電路復雜了,不如用8個端口組成行列按鍵,或者用18個電阻串聯(lián) ...
188610329 發(fā)表于 2024-5-2 13:16
unsigned char MatrixKey()
{
unsigned char k=0;
Hephaestus 發(fā)表于 2024-5-2 15:01
但是你的數(shù)據(jù)跟DTMF矩陣完全對不上號。
bd5fna 發(fā)表于 2024-5-2 15:35
unsigned char k=0;
switch((P2>>2)&0x0f) K=0,那0的鍵值是不是無法提取出來。
xiaobendan001 發(fā)表于 2024-5-2 16:26
4位不就是最多16個啊,看樓上的真值表,0也是有用的,很明顯要有一個別的什么信號來確定是不是有按鍵按下 ...
bd5fna 發(fā)表于 2024-5-2 16:49
芯片上有一個STD信號在有按鍵按下時產生高電平。
zhuls 發(fā)表于 2024-5-2 16:42
你這個是在同一個端口,要取數(shù)簡直沒懈獎懔耍∧悴慰家幌攏�
temp=P1; //讀P1口數(shù)據(jù)值
temp=temp>>2; / ...
Hephaestus 發(fā)表于 2024-5-2 18:51
return("1234567890.#ABCD"[(P1>>2)&0xf]);
就一句話的事情,寫那么多干什么。
Hephaestus 發(fā)表于 2024-5-2 18:51
return("1234567890.#ABCD"[(P1>>2)&0xf]);
就一句話的事情,寫那么多干什么。
zhuls 發(fā)表于 2024-5-2 20:57
你看的懂,不代表天下人都看的懂
Hephaestus 發(fā)表于 2024-5-2 18:51
return("1234567890.#ABCD"[(P1>>2)&0xf]);
就一句話的事情,寫那么多干什么。
188610329 發(fā)表于 2024-5-2 23:13
確實,就一句話都還能寫錯……,還不如人家寫復雜一點的…… 至少能保證對。
bd5fna 發(fā)表于 2024-5-3 10:25
請各位大佬再幫忙看看,輸入密碼時任何鍵都不會顯示,只有按下確認鍵會顯示錯誤(任意鍵做確認鍵都會顯示錯 ...
lkc8210 發(fā)表于 2024-5-3 10:25
雖然精妙,可惜樓主的0到9不是ASCII
lkc8210 發(fā)表于 2024-5-3 14:48
STD 信號呢?
Hephaestus 發(fā)表于 2024-5-3 15:13
我回復15樓,你的問題找15樓說去,別在我的帖子里面插嘴。
bd5fna 發(fā)表于 2024-5-3 15:22
if(dtmf_ok==1)再檢測按鍵也一樣,不行。
Hephaestus 發(fā)表于 2024-5-3 15:13
我回復15樓,你的問題找15樓說去,別在我的帖子里面插嘴。
bd5fna 發(fā)表于 2024-5-5 12:35
已經改用下降沿觸發(fā)檢測按鍵,但還是開機滿屏的‘0’。
zhuls 發(fā)表于 2024-5-6 16:44
你要確認,DTMF解碼是否正常!d0-d3是否有輸出!
把STD接個電阻串個LED,再把OE接到STD,看看每按一次鍵 ...
bd5fna 發(fā)表于 2024-5-6 21:02
目前的情況給各位大佬匯報一下:
void main()
{
lkc8210 發(fā)表于 2024-5-7 11:10
代碼要貼全部
你的k在哪更新?
bd5fna 發(fā)表于 2024-5-7 22:04
這是完整的代碼,請各位大佬幫忙看看,哪里出錯了。
#include //#include
//#include
zhuls 發(fā)表于 2024-5-8 16:26
你是一字不改直接拿來用嗎?
看代碼D0-D ...
bd5fna 發(fā)表于 2024-5-8 21:15
硬件改過了,寫代碼不行,這些簡單的電路,還是可以搞定的。
zhuls 發(fā)表于 2024-5-8 23:46
如上所述,你的K值在哪里更新了?
你一直貼代碼,一直沒看到K值有更新的代碼。
你把電路也貼上來吧,或 ...
zhuls 發(fā)表于 2024-5-9 09:26
void External_Interrupt_Init()
{
EA = 1; ...
bd5fna 發(fā)表于 2024-5-9 08:23
這圖上接的是P2口,我已接到P1口上了。
bd5fna 發(fā)表于 2024-5-9 10:05
這個應該沒有問題,在STD高電平消失的一瞬間讀數(shù)據(jù),因為D0-D3的數(shù)據(jù)是在鎖存狀態(tài),TOE接的是高電平,按 ...
lkc8210 發(fā)表于 2024-5-9 11:10
LCD的端口改了嗎?
bd5fna 發(fā)表于 2024-5-9 18:37
各位大佬幫忙看看是不是1602驅動的問題,造成下一行無法顯示而覺得代碼有問題。
#include “LCD_16x2_8-bi ...
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |