欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機驅動ASD7843觸摸屏控制芯片C語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:51773 發表于 2013-7-19 02:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
8051單片機驅動ADS7846/ADS7843芯片,ADS7846/7843芯片 適合用在4線制觸摸屏,它通過標準SPI協議和CPU通信,操作簡單,精度高,當觸摸屏被按下時(即有觸摸事件發生)則ADS7846向CPU發中斷請求,CPU接到請求后,應延時一下再響應其請求,目的是為了消除抖動使得采樣更準確。如果一次采樣不準確。
  1. #include "reg51.h"
  2. #include "intrins.h"


  3. sbit DCLK=P1^6;
  4. sbit CS=P2^2;
  5. sbit DIN=P2^3;
  6. sbit DOUT=P2^4;
  7. sbit BUSY=P2^5;

  8. delay(unsigned char i--)
  9. {
  10. while(i--);
  11. }


  12. void start() //SPI開始
  13. {
  14. DCLK=0;
  15. CS=1;
  16. DIN=1;
  17. DCLK=1;
  18. CS=0;
  19. }

  20. WriteCharTo7843(unsigned char num) //SPI寫數據
  21. {
  22. unsigned char count=0;
  23. DCLK=0;
  24. for(count=0;count<8;count++)
  25. {
  26. num<<=1;
  27. DIN=CY;
  28. DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效
  29. DCLK=1; _nop_();_nop_();_nop_();
  30. }
  31. }


  32. ReadFromCharFrom7843() //SPI 讀數據
  33. {
  34. unsigned char count=0;
  35. unsigned int Num=0;
  36. for(count=0;count<12;count++)
  37. {
  38. Num<<=1;
  39. DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效
  40. DCLK=0; _nop_();_nop_();_nop_();
  41. if(DOUT) Num++;
  42. }
  43. return(Num);
  44. }

  45. void ZhongDuan() interrupt 0 //外部中斷0 用來接受鍵盤發來的數據
  46. {
  47. unsigned int X=0,Y=0;
  48. delay(10000); //中斷后延時以消除抖動,使得采樣數據更準確
  49. start(); //啟動SPI
  50. // while(BUSY); //如果BUSY信號不好使可以刪除不用
  51. delay(2);
  52. WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式讀X坐標 詳細請見有關資料
  53. // while(BUSY); //如果BUSY信號不好使可以刪除不用
  54. delay(2);
  55. DCLK=1; _nop_();_nop_();_nop_();_nop_();
  56. DCLK=0; _nop_();_nop_();_nop_();_nop_();
  57. X=ReadFromCharFrom7843();
  58. WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式讀Y坐標 詳細請見有關資料
  59. DCLK=1; _nop_();_nop_();_nop_();_nop_();
  60. DCLK=0; _nop_();_nop_();_nop_();_nop_();
  61. Y=ReadFromCharFrom7843();
  62. CS=1;
  63. }


  64. main()
  65. {
  66. TMOD=0x11; // 記數器0 計數器1 都以 16 位 記數
  67. TCON=0x00;
  68. IE=0x83; //1000 0001 EA=1中斷允許,
  69. IP=0x01;
  70. while(1);
  71. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:29434 發表于 2015-6-6 10:35 | 只看該作者
回復

使用道具 舉報

板凳
ID:29434 發表于 2015-6-6 10:41 | 只看該作者
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表