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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6439|回復(fù): 0
收起左側(cè)

LCD PG160128A液晶屏仿真與單片機(jī)源程序

[復(fù)制鏈接]
ID:254911 發(fā)表于 2017-12-4 12:59 | 顯示全部樓層 |閱讀模式
PG160128A仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png 0.png

單片機(jī)源程序如下:
  1. #include  "config.h"
  2. /****************************************************************************
  3. * 名稱(chēng):DelayNS()
  4. * 功能:長(zhǎng)軟件延時(shí)
  5. * 入口參數(shù):dly                延時(shí)參數(shù),值越大,延時(shí)越久
  6. * 出口參數(shù):無(wú)
  7. ****************************************************************************/
  8. /*void  delay(uint32  dly)
  9. {  uint32  i;

  10.    for(; dly>0; dly--)
  11.       for(i=0; i<500; i++);
  12. }*/

  13. __inline void enable_irq()
  14.         {
  15.         uint8 tmp;
  16.         __asm
  17.                 {
  18.                 MRS tmp,CPSR
  19.                 BIC tmp,tmp,#0x80
  20.                 MSR CPSR_c,tmp
  21.                 }
  22.         }

  23. __inline void disable_irq()
  24.         {
  25.         uint8 tmp;
  26.         __asm
  27.                 {
  28.                 MRS tmp,CPSR
  29.                 ORR tmp,tmp,#0x80
  30.                 MSR CPSR_c,tmp
  31.                 }
  32.         }

  33. __inline void enable_frq()
  34.         {
  35.         uint8 tmp;
  36.         __asm
  37.                 {
  38.                 MRS tmp,CPSR
  39.                 BIC tmp,tmp,#0x40
  40.                 MSR CPSR_c,tmp
  41.                 }
  42.         }

  43. __inline void disable_frq()
  44.         {
  45.         uint8 tmp;
  46.         __asm
  47.                 {
  48.                 MRS tmp,CPSR
  49.                 ORR tmp,tmp,#0x40
  50.                 MSR CPSR_c,tmp
  51.                 }
  52.         }

  53. //**************lcd programme start*****************************
  54. #define wr (1<<8)
  55. #define rd (1<<9)
  56. #define cd (1<<10)


  57. void delay(int c)
  58.         {
  59.         int j;
  60.         while(c--)
  61.                 for(j=500;j>0;j--)
  62.                         ;
  63.         }

  64. uint8 rd_state()        //讀狀態(tài)
  65.         {
  66.         uint8 temp;
  67.         IODIR=0x700;
  68.         IOSET=cd;
  69.         IOCLR=rd;
  70.         temp=IOPIN;
  71.         IOSET=rd;
  72.         return(temp);
  73.         }

  74. void rd_enable()        //等待可讀寫(xiě)
  75.         {
  76.         uint8 temp;
  77.         temp=rd_state();
  78.         while((temp&0x03)!=0x03)
  79.                 temp=rd_state();
  80.         }

  81. void rd_auto()        //等待自動(dòng)讀寫(xiě)
  82.         {
  83.         uint8 temp;
  84.         temp=rd_state();
  85.         while((temp&0x04)!=0x04)
  86.                 temp=rd_state();
  87.         }

  88. void wr_auto()        //等待自動(dòng)寫(xiě)
  89.         {
  90.         uint8 temp;
  91.         temp=rd_state();
  92.         while((temp&0x08)!=0x08)
  93.                 temp=rd_state();
  94.         }

  95. /*寫(xiě)命令、寫(xiě)數(shù)據(jù)命令*********************
  96. 數(shù)據(jù)1、數(shù)據(jù)2、命令、參數(shù)個(gè)數(shù)*************
  97. *****************************************/
  98. void wr_data(char data1,char data2,char cmd,char num)
  99.         {
  100.         char temp;
  101.         temp=num;
  102.         if(temp==2)
  103.                 {
  104.                 rd_enable();
  105.                 IODIR=0x7ff;
  106.                 IOCLR=cd;
  107.                 IOCLR=0xff;
  108.                 IOSET=data1;
  109.                 IOCLR=wr;
  110.                 IOSET=wr;
  111.                 }
  112.          if(temp==2||temp==1)
  113.                  {
  114.                 rd_enable();
  115.                 IODIR=0x7ff;
  116.                 IOCLR=cd;
  117.                 IOCLR=0xff;
  118.                 IOSET=data2;
  119.                 IOCLR=wr;
  120.                 IOSET=wr;
  121.                 }
  122.         rd_enable();
  123.         IODIR=0x7ff;
  124.         IOSET=cd;
  125.         IOCLR=0xff;
  126.         IOSET=cmd;
  127.         IOCLR=wr;
  128.         IOSET=wr;
  129.         }

  130. char rd_data()        //讀數(shù)據(jù)
  131.         {
  132.         char temp;
  133.         rd_enable();
  134.         IODIR=0x700;
  135.         IOCLR=cd;
  136.         IOCLR=rd;
  137.         temp=IOPIN;
  138.         IOSET=rd;
  139.         return(temp);
  140.         }



  141. void lcd_init()
  142.         {
  143.         IODIR=cd|rd|wr;
  144.         IOSET=cd|rd|wr;
  145.         wr_data(0x00,0x00,0x40,0x02);        //設(shè)置文本顯示首地址
  146.         wr_data(0x14,0x00,0x41,0x02);        //設(shè)置文本顯示寬度
  147.         wr_data(0x40,0x01,0x42,0x02);        //設(shè)置圖形顯示首地址
  148.         wr_data(0x14,0x00,0x43,0x02);        //設(shè)置圖形顯示寬度
  149.         wr_data(0x00,0x00,0xa1,0x00);        //光標(biāo)形狀設(shè)置
  150.         wr_data(0x00,0x00,0x80,0x00);        //顯示方式設(shè)置,“或”
  151.         wr_data(0x00,0x00,0x9c,0x00);        //顯示開(kāi)關(guān)設(shè)置
  152.         }
  153. //******************lcd programme end*******************************


  154. /****************************************************************************
  155. ……………………

  156. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
2104控制的點(diǎn)陣lcd.rar (64.71 KB, 下載次數(shù): 90)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美午夜影院 | 亚洲国产91 | 香蕉久久a毛片 | 日本午夜精品一区二区三区 | 少妇午夜一级艳片欧美精品 | av无遮挡 | 蜜臀网 | 国产精品成人一区二区三区 | 91精品一区二区三区久久久久久 | 免费一区二区三区 | 91九色视频 | 国产在线97 | 黄色av观看 | 天堂资源 | 欧产日产国产精品v | 涩爱av一区二区三区 | 电影91久久久 | 在线播放一区二区三区 | 国产激情一区二区三区 | 国产一区二区三区四区在线观看 | 一区二区三区国产精品 | 精品国产高清一区二区三区 | 国产婷婷在线视频 | 91亚洲国产成人久久精品网站 | 久久精品91久久久久久再现 | 一区不卡在线观看 | 国产精品久久久久久久一区二区 | 欧美啊v在线观看 | 九色一区 | 99re视频 | 99欧美精品 | 国产一级片91 | 手机av网 | 欧美在线视频一区二区 | 狠狠涩 | 毛片.com| 国产极品粉嫩美女呻吟在线看人 | 日韩久久成人 | 久久国产一区二区 | 欧洲视频一区二区 | 国产在线一区二区三区 |