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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430做AD轉換并在液晶12864上顯示的程序,液晶上沒有任何顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:50606 發表于 2013-5-28 16:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <msp430x14x.h>



  2. double data;//用來存儲ADC12MEM中的數據

  3. unsigned int a,b,c=0; //用來存儲將要顯示在LCD上的各位數據



  4. //初始化時鐘

  5. void initClock(void){

  6. BCSCTL1=RSEL2+RSEL1+RSEL0+DIVA_1;//XT2開啟 LFXT1工作在低頻模式 ACLK 2分頻( 注釋:原來的人沒做分頻,我擔心頻率過高) 最高的標稱頻率

  7. DCOCTL=DCO2+DCO1+DCO0;//DCO為最高頻率

  8. do{

  9. IFG1&=~OFIFG;//清除振蕩器失效標志

  10. for(unsigned int i=255;i>0;i--);

  11. }while(IFG1&OFIFG);//判斷XT2是否起振

  12. BCSCTL2=SELM1+SELS;//MCLK SMCLK時鐘源為TX2CLK不分頻

  13. }

  14. //延時函數

  15. void delay(unsigned int m){

  16. for(unsigned int i=0;i<m;i++)

  17. _NOP();

  18. }





  19. //ADC12采樣初始化,并打開中斷子程序計算采樣值的大小

  20. void initADC12(){



  21. P6SEL=0X01;//P6.0作為模擬輸入

  22. ADC12IE=0X01; //開放中斷ADC12IFG.0

  23. ADC12CTL0=ADC12ON+SHT0_4+REFON+REF2_5V;//打開ADC轉換的核,采用內部參考電壓2.5v;

  24. ADC12CTL1=SHP; //信號源內部觸發

  25. ADC12CTL0 |=ENC; //開放使能

  26. _EINT();//開放系統總中斷

  27. ADC12CTL0 |=ADC12SC; //開始轉換,轉換完成之后自動進入中斷服務子程序



  28. }





  29. #pragma vector=ADC_VECTOR

  30. __interrupt void ADC12ISR(){

  31. data=ADC12MEM0*2.5/4095; //data為全局變量

  32. }

  33. //基本寫入函數命令

  34. void Lcd_InsWrite(unsigned int i,char Instruction)

  35. {

  36. P4DIR=0XFF; // P4口設置成輸出模式

  37. if(i==0)

  38. P3OUT=0x1F; // RS=0,R/W=0 寫指令

  39. else P3OUT=0x9F; // RS=0,R/W=0 寫數據

  40. P3OUT|=BIT5; //E=1 使能

  41. P4OUT=Instruction; //功能設定

  42. delay(3); //延時

  43. P3OUT&=~BIT5; //E=0:下降沿鎖存數據

  44. }



  45. //LCD初始化函數

  46. //函數聲明:采用MSP430端口p3.5-3.7連接LCD的E,RW,和RS端口;P4口用來傳送數據

  47. void init_lcd(void)

  48. {

  49. P3DIR=0XE0; //P3.5-E,P3.6-R/W,P3.7-RS輸出

  50. Lcd_InsWrite(0,0x38);//8位數據端口,2行顯示,5*7點陣

  51. delay(400);

  52. Lcd_InsWrite(0,0x0c);//開啟顯示, 無光標

  53. delay(400);

  54. Lcd_InsWrite(0,0x06);//AC遞增, 畫面不動

  55. delay(400);

  56. Lcd_InsWrite(0,0x01);//清屏

  57. delay(400);

  58. }





  59. //將ADC轉換后的值寫入LCD

  60. void WriteData(){

  61. data*=100;

  62. int temp=(int)data;

  63. a=temp/100;//考慮到由于內部參考電壓的限制,且僅考慮兩位小數的情況

  64. b=(temp%100)/10;

  65. c=(temp%10);

  66. Lcd_InsWrite(1,a+0x30);

  67. Lcd_InsWrite(1,'.');

  68. Lcd_InsWrite(1,b+0x30);

  69. Lcd_InsWrite(1,c+0x30);

  70. }



  71. //主函數部分

  72. void main(){

  73. WDTCTL=WDTPW+WDTHOLD;//關閉看門狗

  74. initClock();//初始化時鐘

  75. initADC12();//ADC12采樣初始化,并打開中斷子程序計算采樣值的大小

  76. init_lcd(); //lcd初始化

  77. Lcd_InsWrite(0,0x80); //顯示在第一行

  78. WriteData(); //將采樣值分別計算出對應位的輸出

  79. }



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成视频 | 日韩精品一区二区三区四区视频 | a级在线免费观看 | 国产免费拔擦拔擦8x高清 | 嫩草视频在线 | 午夜精品一区二区三区在线观看 | 日韩www | 久久福利电影 | 国产精品综合网 | 成年人在线观看视频 | 免费国产一区 | 黄色大片在线 | 中文字幕日韩欧美 | 国产成人精品一区 | 免费福利视频一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 欧美区日韩区 | 亚洲三级在线观看 | 一区二区免费 | 一区二区三区小视频 | 龙珠z国语版在线观看 | 欧美成人a| 久久机热 | 亚洲成人免费观看 | 中文字幕国产一区 | 九九久久国产 | 亚洲精品乱码 | 91免费福利视频 | 91免费观看视频 | 中文字幕一区在线观看视频 | 日本精品久久 | 九色视频网 | www.日本国产| 国产二区视频 | 日韩视频国产 | 欧美中文字幕一区 | 久久久久免费观看 | 日韩欧美亚洲 | 欧美日韩中文字幕在线 | 久久国产精品一区二区 | 在线观看免费黄色片 |