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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

超聲波測距320x240TFT顯示的單片機源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:246796 發(fā)表于 2017-11-7 03:37 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

nbctft.c:320x240TFT驅(qū)動程序,控制TFT實現(xiàn)漢字,字符顯示,畫點功能

超聲波測距主程序:
  1. #include"reg52.h"
  2. #include"DELAY.h"
  3. #include"NBCTFT.h"
  4. #include"HC-SR04.h"

  5. #define White          0xFFFF   //LCD color
  6. #define Black          0x0000
  7. #define Blue           0x001F
  8. #define Blue2          0x051F
  9. #define Red            0xF800
  10. #define Magenta        0xF81F
  11. #define Green          0x07E0
  12. #define Cyan           0x7FFF
  13. #define Yellow         0xFFE0

  14. unsigned int Device_code;      //TFT控制IC型號
  15. //**************聲明外部函數(shù)和變量********************
  16. extern void delayms(unsigned int count);
  17. //extern unsigned int HC_SR04_Distance;
  18. unsigned char i;
  19. void main(void)
  20. {
  21.                 Device_code=0x9328;                //TFT控制IC型號
  22.                 TFT_Initial();                     //初始化LCD
  23.                 HC_SR04_Init();                                           //初始化超聲波
  24.                 Show_RGB(0,239,0,319,Yellow);
  25.                 while(1)
  26.                 {
  27.                 //DELAY_nMS(30);
  28.                 LCD_PutChar(0,0,HC_SR04_Gets()/1000  %10+'0',Black,Yellow);
  29.             LCD_PutChar(8,0,HC_SR04_Gets()/100   %10+'0',Black,Yellow);
  30.                 LCD_PutChar(16,0,HC_SR04_Gets()/10   %10+'0',Black,Yellow);
  31.                 LCD_PutChar(24,0,HC_SR04_Gets()/1    %10+'0',Black,Yellow);
  32.                 }
  33. }

復制代碼

單片機源程序如下:
  1. #include"reg52.h"
  2. #include"DELAY.h"
  3. #include"HC-SR04.h"

  4. sbit HC_SR04_Trig=P3^3;// 超聲波模塊 輸入端口 用來輸入啟動信號
  5. sbit HC_SR04_Echo=P3^2;// 超聲波模塊 輸出端口 用來聲波信號返回

  6. unsigned char HC_SR04_GetsFlag=0;           // 超聲波模塊 才完成標志位         
  7. unsigned char HC_SR04_TimeL=0;              // 超聲波模塊 定時器低位
  8. unsigned char HC_SR04_TimeH=0;              // 超聲波模塊 定時器高位
  9. //unsigned int HC_SR04_Distance;
  10. void HC_SR04_Init(void)
  11. {
  12.         HC_SR04_Trig=0;         // 拉低信號
  13.         // 配置INT0外部中斷
  14.         IT0=1;         // 設置 下降沿觸發(fā)
  15.         EX0=1;
  16.         PX0=1;
  17.         // 配置T0定時器
  18.         TMOD = 0x10;         // 模式1
  19.         ET1=1;        
  20.         TL1=0;         // 清除初始化時間TL
  21.         TH1=0;         // 清除初始化時間TH
  22.         TR1=1;         // 開啟定時器
  23.         EA=1;         // 打開 總中斷 開關
  24. }
  25. unsigned int HC_SR04_Gets(void)
  26. {
  27.         unsigned int HC_SR04_Distance = 0;
  28.         //--------------------------------------------------------
  29.         // 發(fā)送超聲波啟動信號
  30.         //--------------------------------------------------------
  31.         EX0=0;         // 關閉外部中斷0,外部中斷捕獲起始信號
  32.         ET1=0;         // 關閉定時中斷1,定時器計算時間長度
  33.         
  34.         HC_SR04_Trig=1;         // 拉高信號
  35.         DELAY_nUS(20);         // 20us啟動時間
  36.         HC_SR04_Trig=0;         // 拉低信號,此過程為發(fā)送超聲波操作
  37.         
  38.         //--------------------------------------------------------
  39.         // 若Echo未拉高 說明采集未開始
  40.         //--------------------------------------------------------
  41.         while(HC_SR04_Echo==0);
  42.         HC_SR04_GetsFlag=0;
  43.         
  44.         //--------------------------------------------------------
  45.         // 若拉高 說明采集開始,配置各個寄存器
  46.         //--------------------------------------------------------        
  47.         EX0=1;         // 打開外部中斷0,外部中斷捕獲起始信號,注意修改
  48.         ET1=1;         // 打開定時中斷1,定時器計算時間長度,注意修改
  49.         
  50.         TL1=0;         // 清除初始化時間TL
  51.         TH1=0;         // 清除初始化時間TH
  52.         TF1=0;         // 清除溢出標志位
  53.         TR1=1;         // 開啟定時器
  54.         
  55.         //--------------------------------------------------------
  56.         // 若拉高 說明采集開始
  57.         //--------------------------------------------------------
  58.         DELAY_nMS(20);         // 20ms等待時間
  59.         EX0=0;         // 關閉外部中斷
  60.         TR1=0;         // 關閉定時器
  61.         ET1=0;         // 打開定時中斷1

  62.         //--------------------------------------------------------
  63.         // 判斷是否成功
  64.         //--------------------------------------------------------
  65.         if(HC_SR04_GetsFlag==1)
  66.         {
  67.                 HC_SR04_Distance=HC_SR04_TimeH*256+HC_SR04_TimeL;
  68.                 HC_SR04_Distance=(float)(HC_SR04_Distance)*0.172;        // 厘米
  69.         }        
  70.         return HC_SR04_Distance;
  71. }
  72. void HC_SR04_EXT_IRQHandler(void) interrupt 0
  73. {
  74. ……………………

  75. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
http://www.zg4o1577.cn/bbs/dpj-97776-1.html



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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合伊人 | aⅴ色国产 欧美 | 欧美久久视频 | 国产精品毛片无码 | 丝袜美腿av| 午夜成人在线视频 | 极品国产视频 | 精品国产91久久久久久 | 中文字幕亚洲区一区二 | 久久99精品久久久久久国产越南 | 久久久国产一区二区三区 | 日韩一区二区在线视频 | 国产精品一区二区视频 | 1000部精品久久久久久久久 | 96av麻豆蜜桃一区二区 | 国产小网站 | 日韩精品999 | 91热在线| 婷婷综合五月天 | 操久久| 精品一区二区三区在线视频 | 午夜免费av | 久久久国产一区二区三区 | 毛片一级片 | 黄网站涩免费蜜桃网站 | 在线视频一区二区 | 欧美在线一区二区三区 | 中文字幕一区在线观看视频 | 日韩免费一区 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 日本黄色大片免费看 | 99久久久无码国产精品 | 在线中文字幕视频 | 欧洲高清转码区一二区 | 久久精品女人天堂av | 亚洲精品自拍 | 成人在线视频网站 | 成人国产精品入口免费视频 | 成人免费在线观看 | 情侣黄网站免费看 | 国产成人精品在线 |