TTP229BSF電容式觸摸鍵盤-測試16鍵程序-C51:串口通信PC顯示值


 一、配置

(1) TTP229BSF設置

TP0=0,TP2 = 0,TP7 = 0,其余默認為1

2線串行輸入——CMOS低電平有效輸出

有效按鍵最大輸入時間設定為80s

(2) STC89C52設置

11.0592MHz時鍾

P10口接鍵盤SCL(雙線串行數據傳輸輸入時鍾)

P11口接鍵盤SDO(雙線串行數據傳輸輸出)

sbit scl=P1^0;
sbit sdo=P1^1;

二、時序圖

 

 三、程序源碼

 1 #include<reg51.h>
 2 #include<intrins.h>
 3 sbit scl=P1^0;
 4 sbit sdo=P1^1;
 5 
 6 void delay10us(unsigned int n)
 7 {
 8     while(n--);
 9 }
10 
11 void delay(unsigned z)
12 {
13     unsigned int x,y;
14     for(x = z; x > 0; x--)
15         for(y = 114; y > 0 ; y--);
16 }
17 
18 unsigned char ttp229_write(void)
19 {
20     unsigned char i;
21     unsigned char temp=0;
22     sdo=0;
23     delay10us(10);//115.02us
24     sdo=1;
25     delay10us(2);    //36us
26     for(i=0;i<16;i++)
27     {
28         scl=0;
29         if(!sdo) temp += i;
30         scl=1;            //132KHz
31     }
32 return temp;
33 }
34 
35 
36 void UART_init()
37 {
38     TMOD = 0x20;//T1工作模式2  8位自動重裝
39     TH1 = 0xfd;
40     TL1 = 0xfd; //比特率9600
41     TR1 = 1;        //啟動T1定時器
42     SM0 = 0;
43     SM1 = 1;         //串口工作方式1 10位異步
44     REN = 1;        //串口允許接收
45     EA  = 1;        //開總中斷
46     ES  = 1;        //串口中斷打開
47 }
48 
49 void main()
50 {
51     UART_init();
52     while(1)
53     {
54         delay(500);//500ms
55         SBUF = ttp229_write();
56   }
57 }
測試程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM