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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD12864+51單片機仿真,為啥12864的全部引腳一起閃爍?

[復制鏈接]
跳轉到指定樓層
樓主
ID:1070075 發表于 2023-12-14 17:40 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.h>//應該是清屏失敗了#define uchar unsigned char #define uint unsigned int#define lcdrow 0xc0                        //起始列#define lcdpage 0xb8                 //起始頁#define lcdcolumn 0x40                  //起始列//#define c_page_max 0x08                //頁數最大值  8//#define c_column_max 0x40              //列數最大值  64#define bus P0sbit rst=P2^0;sbit e=P2^2;sbit rw=P2^3;sbit rs=P2^4;sbit cs1=P2^5;sbit cs2=P2^6;void delayms(uint);void delayus10(void);void select(uchar);void send_cmd(ucahr);void send_data(uchar);void clear_screen(void);void initial(void); void display_zf(uchar,uchar,uchar,uchar); void display_hz(uchar,uchar,uchar,uchar); void display(void);void CheckState(void);uchar code table_zf[]={// P0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//R0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//00xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//T0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// E0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//U0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//文字:S0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00};//漢字表//宋體12;此字體下對應的點陣為:寬X高=16X16//取模方式:縱向取模下高位,從上到下,從左到右取模uchar code table_hz[]={//文字:電0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,//文字:子0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xE2,0x12,0x0A,0x06,0x02,0x00,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,  //設        0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,//文字:計0x20,0x21,0x2E,0xE4,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x7F,0x20,0x10,0x08,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,//文字:與0x00,0x00,0x00,0x00,0x7E,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xCC,0x08,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x24,0x46,0x44,0x20,0x1F,0x00,0x00,//文字:創0x40,0x20,0xD0,0x4C,0x43,0x44,0x48,0xD8,0x30,0x10,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00,0x00,0x3F,0x40,0x40,0x42,0x44,0x43,0x78,0x00,0x00,0x07,0x20,0x40,0x3F,0x00,//文字:新0x20,0x24,0x2C,0x35,0xE6,0x34,0x2C,0x24,0x00,0xFC,0x24,0x24,0xE2,0x22,0x22,0x00,0x21,0x11,0x4D,0x81,0x7F,0x05,0x59,0x21,0x18,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,//文字:的0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00,//文字:最0x40,0x40,0xC0,0x5F,0x55,0x55,0xD5,0x55,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,0x20,0x20,0x3F,0x15,0x15,0x15,0xFF,0x48,0x23,0x15,0x09,0x15,0x23,0x61,0x20,0x00,//文字:佳0x40,0x20,0xF0,0x1C,0x47,0x4A,0x48,0x48,0x48,0xFF,0x48,0x48,0x4C,0x68,0x40,0x00,0x00,0x00,0xFF,0x00,0x40,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x46,0x64,0x40,0x00,//文字:平0x00,0x01,0x05,0x09,0x71,0x21,0x01,0xFF,0x01,0x41,0x21,0x1D,0x09,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,//文字:臺0x00,0x00,0x40,0x60,0x50,0x48,0x44,0x63,0x22,0x20,0x20,0x28,0x70,0x20,0x00,0x00,0x00,0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x00};void mian(){        CheckState();        initial();        display();        clear_screen();        display();        while(1);}void CheckState(void)                //狀態檢查,LCD是否忙?{   rs=0;   rw=1;         e=1;                           //僅當第7位為0時才可操作(判別busy信號)    while((bus&0x80)==0x80);    e=0;}void delayus10(void){        uchar i=5;        while(--i);}void delayms(uint j){        uchar i=250;        for(;j>0;j--)        {                while(--i);                i=249;                while(--i);i=250;}}//屏幕選擇-Cs=0選擇雙屏,cs=1選擇左半屏,cs=2選擇右半屏        //void select(uchar cs)void select(uchar cs){  if(cs==0) cs1=0,cs2=0;  else if(cs==1) cs1=0,cs2=1;        else cs1=1,cs2=0;}void send_cmd(uchar cmd)             //寫命令函數{        CheckState();        rs=0;rw=0;bus=cmd;delayus10();e=1;e=0;}void send_data(uchar dat)                 //寫數據函數{        CheckState();  rs=1;rw=0;bus=dat;delayus10();e=1;e=0;}void clear_screen(void)        //清屏函數{   uchar c_page,c_column;   select(0);   for(c_page=0;c_page<0x08;c_page++)   {     send_cmd(c_page+lcdpage);     send_cmd(lcdcolumn);     for(c_column=0;c_column<0x40;c_column++)     {        send_data(0x00);           }    }}void initial()       //LCD初始化{        CheckState();        select(0);        rst=0;delayms(10);rst=1;    clear_screen();  send_cmd(lcdrow);        send_cmd(lcdcolumn);        send_cmd(lcdpage);        send_cmd(0x3f);}//寫字符,c_page為當前頁,c_column為當前列,num為字符數,//offset為所取字符在顯示緩沖區中的偏移單位void display_zf(uchar c_page,uchar c_column,uchar num,uchar offset){uchar c1,c2,c3;    //這里將uchar改為了uintfor(c1=0;c1<num;c1++){  for(c2=0;c2<2;c2++)        {                        for(c3=0;c3<8;c3++)    {        send_cmd(lcdpage+c_page+c2);     //lcdpage是起始頁,一頁八行,一共8頁        send_cmd(lcdcolumn+c_column+c1*8+c3);   //lcdolumn是起始列,加當前列,再加              send_data(table_zf[(c1+offset)*16+c2*8+c3]); //     }  }}}//寫漢字,C_page為當前頁,C_
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1070075 發表于 2023-12-14 17:41 來自手機 | 只看該作者
/寫字符,c_page為當前頁,c_column為當前列,num為字符數,//offset為所取字符在顯示緩沖區中的偏移單位void display_zf(uchar c_page,uchar c_column,uchar num,uchar offset){uchar c1,c2,c3;    //這里將uchar改為了uintfor(c1=0;c1<num;c1++){  for(c2=0;c2<2;c2++)        {                        for(c3=0;c3<8;c3++)    {        send_cmd(lcdpage+c_page+c2);     //lcdpage是起始頁,一頁八行,一共8頁        send_cmd(lcdcolumn+c_column+c1*8+c3);   //lcdolumn是起始列,加當前列,再加              send_data(table_zf[(c1+offset)*16+c2*8+c3]); //     }  }}}//寫漢字,C_page為當前頁,C__column為當前列,num為字符數,//offset為所取漢字在顯示緩沖區中的偏移單位void display_hz(uchar c_page,uchar c_column,uchar num,uchar offset){uchar c1,c2,c3;for(c1=0;c1<num;c1++){  for(c2=0;c2<2;c2++)     {     for(c3=0;c3<16;c3++)       {         send_cmd(lcdpage+c_page+c2);         send_cmd(lcdcolumn+c_column+c1*16+c3);         send_data(table_hz[(c1+offset)*32+c2*16+c3]);                         }                 }         } }void display(void){  select(1);  display_zf(0,40,3,0);        display_hz(2,0,4,0);        display_hz(4,32,2,8);        delayus10();        select(2);  display_zf(0,0,4,3);        display_hz(2,0,4,4);        display_hz(4,0,2,10);}

}538UB4TVJ%EHZE@ZCCRS$A.png (80.16 KB, 下載次數: 27)

}538UB4TVJ%EHZE@ZCCRS$A.png
回復

使用道具 舉報

板凳
ID:61140 發表于 2023-12-17 23:13 | 只看該作者
仿真中不需要判忙,因為在仿真中元件都是理想狀態。只在實際應用中才判忙。
把判忙去掉應該就可以了。
回復

使用道具 舉報

地板
ID:1070075 發表于 2023-12-31 15:34 | 只看該作者
xiaoyuxinke 發表于 2023-12-17 23:13
仿真中不需要判忙,因為在仿真中元件都是理想狀態。只在實際應用中才判忙。
把判忙去掉應該就可以了。

好的,謝謝。我找到原因是,就是main寫成了mian.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性一交一乱一伦视频免费观看 | 国产美女在线精品免费 | 久久久成人免费一区二区 | 国产精品福利一区二区三区 | 欧美一区二区三区在线观看 | 国产精品久久久久久久三级 | 国产精品永久免费视频 | av在线黄 | 亚洲一区久久 | 国产在线精品一区二区 | 亚洲福利av | 久久精品欧美视频 | 成人在线精品视频 | 一区二区三区在线免费观看 | 国产久| 国产一级片一区二区三区 | 国产精品免费大片 | 黄色一级大片在线免费看产 | 欧美一区二区在线免费观看 | 黄色视频a级毛片 | 国产在线一区二区三区 | 亚洲免费视频一区二区 | 91欧美精品成人综合在线观看 | 亚洲va欧美va天堂v国产综合 | 精品一区二区av | 久久久久成人精品 | 一级爱爱片 | 国产精品一区二区三区99 | 久久久女 | 国产精品国产精品国产专区不卡 | 久久人人网 | 亚洲精品久久久久久一区二区 | 毛片久久久 | 国产亚洲欧美日韩精品一区二区三区 | 欧美亚洲国产日韩 | 成人免费福利 | 国产精品成人av | 国产欧美一区二区三区国产幕精品 | 久久精品小视频 | 日韩有码在线观看 | 久操福利 |