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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AD轉換顯示在12864

[復制鏈接]
跳轉到指定樓層
樓主
ID:244451 發表于 2017-10-31 09:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于MEGA128
12864是ST7920驅動

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

使用道具 舉報

沙發
ID:244451 發表于 2017-10-31 09:38
  1. #include <iom128v.h>
  2. #include <string.h>
  3. #include <macros.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. #define RS (1<<0)
  7. #define RW (1<<1)
  8. #define EN (1<<2)

  9. //延時函數
  10. void s_ms(uint ms)
  11. {
  12.         for(;ms>1;ms--);
  13. }       
  14. //字符串
  15. char Result[]={"RV2 :       "};
  16. char Result_1[]={"西安理工大學"};
  17. //寫數據
  18. void WriteDataLCM(unsigned char WDLCM)
  19. {
  20.         //ReadStatusLCM(); //檢測忙
  21.         s_ms(100);
  22.         PORTC|=RS;       //RS=1   
  23.         s_ms(100);
  24.         PORTC&=~RW;      //RW=0
  25.         s_ms(100);
  26.         PORTC|=EN;       //EN=1
  27.         s_ms(100);
  28.         PORTA=WDLCM;     //輸出數據
  29.         s_ms(100);
  30.         PORTC&=~EN;      //EN=0
  31.         s_ms(100);
  32. }

  33. //寫指令
  34. void WriteCommandLCM(unsigned char WCLCM)
  35. {
  36.         //ReadStatusLCM(); //根據需要檢測忙
  37.         s_ms(100);
  38.         PORTC&=~RS;      //RS=0
  39.         s_ms(100);
  40.         PORTC&=~RW;      //RW=0
  41.         s_ms(100);
  42.         PORTC|=EN;       //EN=1
  43.         s_ms(100);
  44.         PORTA=WCLCM;     //輸出指令
  45.         s_ms(100);
  46.         PORTC&=~EN;      //EN=0
  47.         s_ms(100);
  48. }

  49. //讀狀態:檢測忙
  50. void ReadStatusLCM(void)
  51. {
  52.         uchar temp;
  53.     uchar flag = 1;
  54.     while(flag==1)
  55.         {
  56.             DDRA=0x00;      //端口B改為輸入
  57.                 PORTA=0xff;   
  58.                 s_ms(100);
  59.                 PORTC&=~RS;     //RS=0
  60.                 s_ms(100);
  61.                 PORTC|=RW;      //RW=1
  62.                 s_ms(100);
  63.                 PORTC|=EN;      //EN=1
  64.                 s_ms(1000);
  65.                 temp = PINA;    //讀端口B
  66.                 s_ms(1000);
  67.                 DDRA=0xff;      //端口B改為
  68.                 s_ms(100);
  69.                 PORTC&=~EN;     //EN=0
  70.                 s_ms(100);
  71.                 if(temp>>7==0)
  72.                 flag = 0;
  73.         }
  74. }

  75. //LCM初始化
  76. void LCMInit(void)
  77. {
  78.         WriteCommandLCM(0x38);    //三次顯示模式設置,不檢測忙信號
  79.         s_ms(1000);
  80.         WriteCommandLCM(0x38);
  81.         s_ms(1000);
  82.         WriteCommandLCM(0x38);
  83.         s_ms(1000);
  84.         WriteCommandLCM(0x38);    //顯示模式設置,開始要求每次檢測忙信號
  85.         WriteCommandLCM(0x08);    //關閉顯示
  86.         WriteCommandLCM(0x01);    //顯示清屏
  87.         WriteCommandLCM(0x06);    //顯示光標移動設置
  88.         WriteCommandLCM(0x0C);    //顯示開及光標設置
  89. }





  90. void DisplayList(unsigned char X,char *DData)
  91. {
  92.         unsigned char length;
  93.         unsigned char i=0;
  94.         char *p;
  95.         p = DData;
  96.         length = strlen(p);
  97.         WriteCommandLCM(0x08);
  98.         WriteCommandLCM(X);
  99.         WriteCommandLCM(0x06);
  100.         WriteCommandLCM(0x0C);
  101.         WriteCommandLCM(X);
  102.         for(i=0;i<length;i++)
  103.         {
  104.                 WriteDataLCM(DData[i]);
  105.                 i++;
  106.                 WriteDataLCM(DData[i]);
  107.         }
  108. }
  109. unsigned int mega128_ad()
  110. {
  111.       unsigned int addata,haha;
  112.          DDRF|=BIT(PF1);
  113.          PORTF|=BIT(PF1);
  114.          ADMUX=0;//參考電壓選擇
  115.          ADCSRA=0X80;//ADC使能
  116.          ADCSRA|=BIT(ADSC);//開始轉換
  117.          while(!(ADCSRA&(BIT(ADIF))));//ADIF中斷標志
  118.      addata=ADCL;
  119.          addata=addata+ADCH*256;
  120.          return addata;
  121. }   
  122. void zifuchuan()
  123.    {
  124.    uchar data;
  125.    if(data>1000)
  126.         {
  127.         Result[6]=data/1000+'0';
  128.     Result[7]=data/100%10+'0';
  129.     Result[8]=data/10%10+'0';
  130.     Result[9]=data%10+'0';
  131.     Result[10]=0;
  132.         }
  133.         else if(data>100)
  134.         {
  135.         Result[6]=data/100+'0';
  136.     Result[7]=data/10%10+'0';
  137.     Result[8]=data%10+'0';
  138.     Result[9]=0;
  139.     Result[10]=0;
  140.         }
  141.         else if(data>10)
  142.         {
  143.         Result[6]=data/10%10+'0';
  144.     Result[7]=data%10+'0';
  145.     Result[8]=0;
  146.     Result[9]=0;
  147.     Result[10]=0;
  148.   }
  149.   else
  150.   {
  151.     Result[6]=data%10+'0';
  152.     Result[7]=0;
  153.     Result[8]=0;
  154.     Result[9]=0;
  155.     Result[10]=0;
  156.   }
  157. }
  158.        
  159. //主函數
  160. void main(void)
  161. {
  162.     uchar haha;//端口初始化
  163.         DDRA=0xff;
  164.         PORTA=0xff;
  165.         DDRC=0xff;
  166.         PORTC=0xff;
  167.         DDRD=0xff;
  168.         PORTD=0x00;
  169.         DDRF=0x00;
  170.         PORTF=0xff;
  171.        
  172.         s_ms(200);
  173.         s_ms(200);  
  174.         LCMInit(); //LCM初始化   //液晶初始化
  175.     while(1)
  176.         {
  177.         haha=mega128_ad();
  178.         zifuchuan(haha);
  179.     DisplayList(0x80,Result);
  180.         DisplayList(0x9a,Result_1);
  181.         s_ms(2000);
  182.         }     
  183. }
復制代碼

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

本版積分規則

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

Powered by 單片機教程網

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