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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430單片機printf函數移植

[復制鏈接]
跳轉到指定樓層
樓主
ID:108615 發表于 2016-3-14 18:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本程序是《MSP430系列單片機系統工程設計與實踐》書里面的源碼,完整例程下載(包含工程文件 (例4.1.4))):http://www.zg4o1577.cn/bbs/dpj-46245-1.html

關于本程序的詳細解說大家可以下載電子書點擊上圖即可
  1. #include "msp430x42x.h"  /*單片機寄存器頭文件*/
  2. #include "ctype.h"       /*isdigit函數需要該頭文件*/
  3. #include "LCD_Display.h" /*LCD函數庫頭文件*/
  4. char  FirstChrFlag=1;  //第一個字符標志位


  5. /****************************************************************************
  6. * 名    稱:putchar()
  7. * 功    能:向LCD顯示屏輸出一個ASCII字符。
  8. * 入口參數:ch: 待發送的字符  
  9. * 出口參數:發出的字符
  10. * 說    明: printf函數會調用該函數作為底層輸出。該函數將字符輸出到LCD上
  11.             因此printf的結果將顯示在LCD上。
  12. ****************************************************************************/
  13. int putchar(int ch)
  14. {
  15. if(FirstChrFlag) LCD_Clear(); //第一個字符到來的時候清除上一屏顯示內容
  16. FirstChrFlag=0;
  17. if(ch=='\f')     LCD_Clear(); //'\f'表示走紙翻頁,相當于清除顯示
  18. if(isdigit(ch))  LCD_InsertChar(ch-0x30); //若字符是數字則顯示數字
  19. //數字和對應ASCII字母之間差0x30   '1'=0x31 '2'=0x32... isdigit也是C語言標準函數
  20. else             //否則,不是數字,是字母
  21. {
  22.     switch(ch)    //根據字母選擇程序分支
  23.     {
  24.       case 'A': case 'a':  LCD_InsertChar(AA);break;  //字符A
  25.       case 'B': case 'b':  LCD_InsertChar(BB);break;  //字符B
  26.       case 'C': case 'c':  LCD_InsertChar(CC);break;  //...
  27.       case 'D': case 'd':  LCD_InsertChar(DD);break;  
  28.       case 'E': case 'e':  LCD_InsertChar(EE);break;
  29.       case 'F': case 'f':  LCD_InsertChar(FF);break;
  30.       case 'G': case 'g':  LCD_InsertChar(GG);break;
  31.       case 'H': case 'h':  LCD_InsertChar(HH);break;
  32.       case 'I': case 'i':  LCD_InsertChar(II);break;
  33.       case 'J': case 'j':  LCD_InsertChar(JJ);break;
  34.       case 'K': case 'k':  LCD_InsertChar(KK);break;
  35.       case 'L': case 'l':  LCD_InsertChar(LL);break;
  36.       case 'M': case 'm':  LCD_InsertChar(mm);break;
  37.       case 'N':            LCD_InsertChar(NN);break;
  38.       case 'n':            LCD_InsertChar(nn);break;
  39.       case 'O':            LCD_InsertChar(OO);break;
  40.       case 'o':            LCD_InsertChar(oo);break;
  41.       case 'P': case 'p':  LCD_InsertChar(PP);break;
  42.       case 'Q': case 'q':  LCD_InsertChar(QQ);break;
  43.       case 'R': case 'r':  LCD_InsertChar(rr);break;
  44.       case 'S': case 's':  LCD_InsertChar(SS);break;
  45.       case 'T': case 't':  LCD_InsertChar(tt);break;
  46.       case 'U': case 'v':  LCD_InsertChar(UU);break;
  47.       case 'V': case 'u':  LCD_InsertChar(VV);break;
  48.       case 'W': case 'w':  LCD_InsertChar(WW);break;
  49.       case 'Y': case 'y':  LCD_InsertChar(YY);break;  //...
  50.       case 'Z': case 'z':  LCD_InsertChar(ZZ);break;  //字符Z
  51.       case '-':            LCD_InsertChar(BR);break;  //字符-
  52.       case '`':            LCD_InsertChar(DT);break;  //字符`
  53.       case ' ':            LCD_InsertChar(SP);break;  //空格
  54.       case '.':            LCDM1|=0x10;       break;  //小數點,直接顯示在右下角
  55.       case '\n': case '\r':  FirstChrFlag=1;  break;  //換行符的下一個字母將清屏
  56.       default :            LCD_InsertChar(SP);break;//顯示不出來的字母用空格替代
  57.       }
  58.   }
  59. return(ch);  //返回顯示的字符(putchar函數標準格式要求返回顯示字符)
  60. }

  61. /****************************************************************************
  62. * 名    稱:putchar()
  63. * 功    能:向標準終端設備發送一字節數據(1個ASCII字符)
  64. * 入口參數:ch: 待發送的字符  
  65. * 出口參數:發出的字符
  66. * 說    明: UART.c內的putchar函數printf函數,這里從串口輸出字符到PC機的超
  67.             級終端軟件上,printf的結果將打印到超級終端上。供對比。
  68. ****************************************************************************/
  69. /*
  70. int putchar(int ch)
  71. {
  72.   if (ch == '\n')        //  '\n'(回車)擴展成 '\n''\r' (回車+換行)
  73.   {
  74.     UART_PutChar(0x0d) ; //'\r'
  75.   }
  76.   UART_PutChar(ch);      //從串口發出數據  
  77.   return (ch);
  78. }
  79. */
復制代碼



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

使用道具 舉報

沙發
ID:521781 發表于 2019-5-23 21:14 | 只看該作者
LCD庫頭文件是什么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久久久久 | 一区二区中文 | 午夜天堂精品久久久久 | 97精品国产97久久久久久免费 | 成人福利在线观看 | 国产精品精品视频一区二区三区 | 特级黄一级播放 | 你懂的免费在线 | 一区二区三区国产好 | 中文福利视频 | av大全在线| 久久精品一 | 日本天天操 | 日本精品视频一区二区三区四区 | 99re热精品视频 | 精品一区二区久久久久久久网站 | 伊人性伊人情综合网 | а_天堂中文最新版地址 | 国产精品小视频在线观看 | 成人久久网 | 一区二区电影网 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 亚洲精品免费观看 | 久久久久久久国产精品影院 | 天天色天天射天天干 | 亚洲一区二区三区桃乃木香奈 | 韩国成人在线视频 | 国产精品视频导航 | 亚洲福利网| 嫩草影院黄 | 欧美xxxx在线 | 97人人澡人人爽91综合色 | 九色 在线 | 国产精品成人国产乱 | 国产一级视频在线 | 毛片国产 | 99久久婷婷国产亚洲终合精品 | 日韩av一区二区在线 | 日韩精品一区二区三区中文字幕 | 亚洲日本中文字幕在线 | 国产夜恋视频在线观看 |