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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6130|回復: 10
收起左側

使用stc15w408as單片機做頻譜顯示LCD1602 源程序

  [復制鏈接]
ID:95809 發表于 2021-1-9 19:21 | 顯示全部樓層 |閱讀模式
為了給自己做的功放加個頻譜顯示做的,LCD1602正好和原來的顯示屏大小一樣,就用1602做顯示了,為了防止對音頻信號的干擾,輸入用4558做的緩沖放大。
2021-01-09_19-20-42.jpg
單片機主程序如下:
  1. #include "STC15.H"
  2. #include "1602.h"
  3. sbit busyFlag = P2^7;
  4. /***********************************************/
  5. //自定義的8個字符 分別為第1橫格到8橫格
  6. uchar code Pic[8][8]=
  7. {
  8.         {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f},
  9.         {0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f},
  10.         {0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f},
  11.         {0x00,0x00,0x00,0x00,0x1f,0x00,0x1f,0x1f},
  12.         {0x00,0x00,0x00,0x1f,0x1f,0x00,0x1f,0x1f},
  13.         {0x00,0x00,0x00,0x1f,0x1f,0x00,0x1f,0x1f},
  14.         {0x00,0x1f,0x00,0x1f,0x1f,0x00,0x1f,0x1f},
  15.         {0x1f,0x1f,0x00,0x1f,0x1f,0x00,0x1f,0x1f},
  16. };
  17. /*********檢查LCD忙****************************/
  18. void lcdCheckbusy()                                
  19. {
  20.         lcdDb=0xff;
  21.         lcdRs=0;                                                 //dc=1為數據,=0為命令.
  22.         lcdRw=1;                                                 //rw=1為讀,=0為寫.
  23.         lcdE=1;                                                 //cs=1選通.
  24.         delay40us(1);
  25.         while(busyFlag);
  26.         lcdE=0;
  27. }
  28. /*******初始化函數*****************************/
  29. void lcdInit(void)
  30. {
  31.         lcdWriteCommand(0x38);                        //設置8位格式,2行,5x7
  32.         lcdWriteCommand(0x0c);                        //整體顯示,關光標,不閃爍
  33.         lcdWriteCommand(0x06);                        //設定輸入方式,增量不移位
  34.         lcdWriteCommand(0x01);                        //清除屏幕顯示
  35. }
  36. /********寫指令函數*****************************/
  37. void lcdWriteCommand(uchar dat)
  38. {
  39.         lcdCheckbusy();
  40.         lcdDb=dat;
  41.         lcdRs=0;                                        //指令
  42.         lcdRw=0;                                        //寫入
  43.         lcdE=1;                                                //允許
  44.         delay40us(1);
  45.         lcdE=0;
  46. }
  47. /********寫數據函數*****************************/
  48. void lcdWriteData(uchar dat)
  49. {
  50.         lcdCheckbusy();
  51.         lcdDb=dat;
  52.         lcdRs=1;                                //數據
  53.         lcdRw=0;                                //寫入
  54.         lcdE=1;                                        //允許
  55.         lcdE=0;
  56. }
  57. /********寫入CGRAM "自定義" 字符***************/
  58. void lcdWritePic()
  59. {
  60.         uchar i,j;
  61.         for(i=0;i<8;i++)
  62.          {
  63.                 lcdWriteCommand(0x40+i*8); //指令地址為0100 0000 +(0000 0000~0011 1000)具體參考說明書CGRAM的使用
  64.                 for(j=0;j<8;j++)lcdWriteData(Pic[i][j]);//向CGRAM寫入字型編碼數據(CGRAM數據).
  65.          }
  66. }
  67. /*******************************************************
  68. 功能:顯示一個字符
  69. 函數參數 : 顯示坐標(x,y,dat)范圍 (0~f,0~1,0~7)
  70. *******************************************************/
  71. void dispString(uchar x,uchar y,uchar dat)//dat范圍是0~7,表示顯示8個自定義字符的第幾個
  72. {
  73.         uchar address;
  74.         switch (y)
  75.         {
  76.                 case 0:  address=0x80+x;  //00000000B(00H)+10000000B(80H)=10000000B(80H)
  77.                         break;
  78.                 case 1:         address=0xc0+x;  //01000000B(40H)+10000000B(80H)=11000000B(C0H)
  79.                         break;
  80.         }
  81.         lcdWriteCommand(address);          //地址顯示
  82.         lcdWriteData(dat);                          //顯示自定義的第幾個字符
  83. }
  84. /********延時函數 1T 22.1148M***************/
  85. void delay40us(uint n)
  86. {
  87.         uchar a,b;
  88.         while(n--)
  89.         {   
  90.             for(b=185;b>0;b--)
  91.                 for(a=1;a>0;a--);
  92.         }
  93. }
復制代碼
51hei.png

程序下載: 15W408版本.rar (88.56 KB, 下載次數: 141)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:230742 發表于 2021-1-10 22:22 | 顯示全部樓層
大師,給個電路圖唄。謝謝了。
回復

使用道具 舉報

ID:95809 發表于 2021-1-11 11:41 來自觸屏版 | 顯示全部樓層
啤酒瓶子老大 發表于 2021-1-10 22:22
大師,給個電路圖唄。謝謝了。

D0-D7接P2口,RS.RW.EN接3.5/3.6/3.7。音頻接1.1口,PCB上都畫出來了,你也可以在程序里修改。
回復

使用道具 舉報

ID:390416 發表于 2021-1-15 20:56 | 顯示全部樓層
LCD1602顯示頻譜? 你也太會折騰了吧。好歹用LED點陣做啊
回復

使用道具 舉報

ID:95809 發表于 2021-1-15 21:42 | 顯示全部樓層
人人學會單片機 發表于 2021-1-15 20:56
LCD1602顯示頻譜? 你也太會折騰了吧。好歹用LED點陣做啊

有點陣做的,以前發的帖子里有,我的功放是用汽車收音機做外殼,1602正好和原來的顯示屏一樣大。
回復

使用道具 舉報

ID:98767 發表于 2021-1-17 18:11 | 顯示全部樓層
樓主用什么PCB軟件畫的,看上去不像AD啊。
回復

使用道具 舉報

ID:95809 發表于 2021-2-8 12:03 來自觸屏版 | 顯示全部樓層
kkfy888 發表于 2021-1-17 18:11
樓主用什么PCB軟件畫的,看上去不像AD啊。

LAYOUT  6.0。
回復

使用道具 舉報

ID:1063066 發表于 2023-2-15 20:35 | 顯示全部樓層
弱弱請問一下版主,408的設置頻率多少的
回復

使用道具 舉報

ID:1063066 發表于 2023-2-15 20:42 | 顯示全部樓層
請問一下版主這個408設置多少頻率的,40.96K  180個周期,怎么算好像不對
回復

使用道具 舉報

ID:95809 發表于 2023-6-12 17:23 來自觸屏版 | 顯示全部樓層
danny_003 發表于 2023-2-15 20:35
弱弱請問一下版主,408的設置頻率多少的

12M以上,越高越好。
回復

使用道具 舉報

ID:1131481 發表于 2024-9-6 15:12 | 顯示全部樓層
用1602做頻率顯示效果肯定好。我也試試
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看黄色片 | 欧美一级在线观看 | 在线一区视频 | 97色在线| 精品一区二区三区av | 亚洲成人二区 | 久久国产精品一区二区 | 免费三级黄色片 | 久久久久久久久国产精品 | 日本成人一区二区三区 | 伦一理一级一a一片 | 国产精品国产三级国产 | 亚洲高清在线播放 | 视频爱爱免费视频爱爱太爽 | 黄色大片在线免费观看 | 成人小视频在线观看 | 精品国产aⅴ麻豆 | 五月婷婷在线观看 | 亚洲成人免费 | 免费国产精品视频 | 精品国产一区二区三区久久久蜜月 | 国产一区二区三区视频在线 | 久综合| 午夜亚洲精品 | 亚洲精品一区二三区不卡 | 国产精品日韩在线 | 亚洲激情在线观看 | 免费在线播放av | 黄色av毛片| 国产一级免费观看 | 成人小视频在线观看 | 国产精品视屏 | 激情av网 | 欧美一区二区三区在线视频 | 日本看片网站 | 美女黄色一级片 | 欧美一级色 | 日韩专区中文字幕 | 成人免费网站在线观看 | 亚洲午夜av | 四虎永久在线 |