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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6810|回復: 10
打印 上一主題 下一主題
收起左側(cè)

C51單片機+LCD12864二維碼圖形和字體混合顯示Proteus仿真+程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:471909 發(fā)表于 2019-6-27 21:28 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
程序通過輸出直接Printf_lcd 打印就可以顯示,附件包含有字模取模和圖片取模方式!
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*
  2. 取模軟件 液晶漢字字模提取
  3. // 漢字字模表                                                          //
  4. // 漢字庫: 宋體16.dot 縱向取模下高位,數(shù)據(jù)排列:從左到右從上到下 輸出大小設置128*64  然后輸入字符串
  5. */
  6. #include<reg51.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  7. #include<stdio.h>
  8. #include "delay.h"
  9. #include "math.h"
  10. #include "string.h"
  11. #include "ascii_hz.h"
  12. #include "12864.h"

  13. #define uchar unsigned char
  14. #define uint unsigned int
  15. sbit JIESHOU=P3^7;
  16. sbit led=P1^4;

  17. unsigned char uart_rx_finish=0;  
  18. unsigned char uart_rx_cnt=0;
  19. unsigned char uart_rx_cnt_before=0;
  20. //char dis0[32];                   //串口數(shù)據(jù)顯示
  21. unsigned char dis2[17];                   //串口數(shù)據(jù)顯示
  22. unsigned char dis3[17];                   //去掉后綴0x0d 0x0a
  23. unsigned long time_20ms=0;           //定時器計數(shù)


  24. void Init_Timer0(void);                   //函數(shù)聲明
  25. void SendStr(unsigned char *s,unsigned char length);
  26. void UART_Init(void);
  27. void SendByte(unsigned char dat);
  28. void puts_to_SerialPort(uchar *s);

  29. void main (void)
  30. {     
  31.     uchar i=0;
  32.         Init_Timer0();        //定時器0初始化
  33.         UART_Init();
  34.             
  35.         InitLcd();           //初始化液晶


  36.         puts_to_SerialPort("Receiving From 8051...\r\n");
  37.         lcd12864_write_one(0,0,"二維碼測試系統(tǒng)");
  38.         lcd12864_write_one(2,0,"接收我二維碼: ");

  39. //        InitLcd();           //初始化液晶
  40. //        tupiandisplay();
  41. //         DelayS(5);
  42.         while (1)         //主循環(huán)
  43.         {

  44.         
  45.                    if(JIESHOU==0){
  46.                       tupiandisplay();
  47.                         }
  48.                                 if(uart_rx_finish==1){        

  49.                            uart_rx_finish=0;

  50. //                            lcd12864_write_one(2,0,"                 ");//顯示
  51. //                            lcd12864_write(4,0,dis2,"","");//顯示


  52.                             uart_rx_cnt_before=uart_rx_cnt;
  53.                            uart_rx_cnt=0;
  54. //                           memset(dis2,' ',sizeof(dis2));
  55.                         }

  56. //                        if(tx_send==0){
  57. //                                  DelayMs(20);
  58. //                                 if(tx_send==0) {
  59. //                                    puts_to_SerialPort("PC Receiving From 8051...\r\n");
  60. //                                 while(!tx_send);
  61. //                                }
  62. //                        }

  63.         }

  64. }

  65. void Init_Timer0(void)
  66. {
  67.         TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  68.         TH0=(65536-20000)/256;                  //重新賦值 20ms
  69.         TL0=(65536-20000)%256;
  70.         EA=1;            //總中斷打開
  71.         ET0=1;           //定時器中斷打開
  72.         TR0=1;           //定時器開關打開

  73. }

  74. void Timer0_isr(void) interrupt 1
  75. {
  76.         TH0=(65536-20000)/256;                  //重新賦值 20ms
  77.         TL0=(65536-20000)%256;
  78.         
  79.         time_20ms++;
  80.         if(time_20ms%50==0)                  //1s時間發(fā)藍牙
  81.         {
  82.                 led=~led;
  83.         }
  84. }


  85. void UART_Init(void)
  86. {
  87.     SCON  = 0x50;                        // SCON: 模式 1, 8-bit UART, 使能接收  
  88.     TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重裝
  89.         PCON = 0x00;
  90.     TH1   = 0xFD;               // TH1:  重裝值 9600 波特率 晶振 11.0592MHz
  91.         TL1 = TH1;  
  92.     TR1   = 1;                  // TR1:  timer 1 打開                        
  93.     EA    = 1;                  //打開總中斷
  94.     ES    = 1;                  //打開串口中斷
  95. }

  96. void SendByte(unsigned char dat)//串口發(fā)送單字節(jié)數(shù)據(jù)
  97. {
  98.         unsigned char time_out;
  99.         time_out=0x00;
  100.         SBUF = dat;                          //將數(shù)據(jù)放入SBUF中
  101.         while((!TI)&&(time_out<100))  //檢測是否發(fā)送出去
  102.         {time_out++;DelayUs2x(10);}        //未發(fā)送出去 進行短暫延時
  103.         TI = 0;                                                //清除ti標志
  104. }

  105. void SendStr(unsigned char *s,unsigned char length)           //發(fā)送定長度字符串
  106. {
  107.         unsigned char NUM;
  108.         NUM=0x00;
  109.         while(NUM<length)        //發(fā)送長度對比
  110.         {
  111.                 SendByte(*s);  //放松單字節(jié)數(shù)據(jù)
  112.                 s++;                  //指針++
  113.                 NUM++;                  //下一個++
  114.            }
  115. }
  116. void puts_to_SerialPort(uchar *s)
  117. {
  118.          while(*s != '\0')
  119.         {
  120.                  SendByte(*s);
  121.                 s++;
  122.                 DelayMs(5);        
  123.         }
  124. }
  125. void UART_SER (void) interrupt 4         //串行中斷服務程序
  126. {
  127.          uchar c;
  128.         if(RI)                        //判斷是接收中斷產(chǎn)生
  129.         {
  130.                 c  = SBUF;
  131.              if(c=='\n') {
  132.                 uart_rx_finish=1;  
  133.                 dis2[uart_rx_cnt]='\0';        
  134. ……………………

  135. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
二維碼顯示C51_V2圖片.rar (8.66 MB, 下載次數(shù): 235)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:15020 發(fā)表于 2019-6-28 09:38 | 只看該作者
此帖僅作者可見

使用道具 舉報

板凳
ID:548850 發(fā)表于 2019-12-8 22:35 | 只看該作者
此帖僅作者可見

使用道具 舉報

地板
ID:558751 發(fā)表于 2019-12-10 13:28 | 只看該作者
此帖僅作者可見

使用道具 舉報

5#
ID:97678 發(fā)表于 2019-12-19 09:10 | 只看該作者
此帖僅作者可見

使用道具 舉報

6#
ID:97678 發(fā)表于 2019-12-23 13:44 | 只看該作者
此帖僅作者可見

使用道具 舉報

7#
ID:684590 發(fā)表于 2020-2-16 20:42 | 只看該作者
此帖僅作者可見

使用道具 舉報

8#
ID:684590 發(fā)表于 2020-2-16 20:42 | 只看該作者
此帖僅作者可見

使用道具 舉報

9#
ID:229211 發(fā)表于 2020-4-13 08:33 | 只看該作者
此帖僅作者可見

使用道具 舉報

10#
ID:956087 發(fā)表于 2022-2-28 19:58 | 只看該作者
此帖僅作者可見

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日夜夜精品视频 | 欧美一区二区三区在线看 | 国产精品二区三区 | 久久最新 | 狠狠操婷婷 | 国产欧美日韩综合精品一区二区 | 综合亚洲视频 | 欧美成人精品激情在线观看 | 久久精品一 | 精品三级在线观看 | 久草新视频 | 亚洲国产成人精品一区二区 | 国产一区二区精品在线观看 | 午夜精品一区 | 一区二区在线免费观看 | 国产精品一区二区av | 久久aⅴ乱码一区二区三区 91综合网 | 亚洲激情在线观看 | 中文字幕第一页在线 | av黄色在线 | 久久精品国产99国产精品亚洲 | 天天看天天干 | 日韩中文字幕一区二区 | 久久99精品国产 | 小早川怜子xxxxaⅴ在线 | 91精品国产91久久久久久 | 日韩一级免费看 | 国内精品久久久久久 | 亚洲国产精品久久久久秋霞不卡 | 日韩成人免费中文字幕 | 亚洲一区二区三区福利 | 亚洲精视频 | 中文字幕在线观看成人 | 福利片一区二区 | 欧美精品久久久 | 综合久久99 | 亚洲国产一区二区三区在线观看 | 成人综合久久 | 亚洲大片在线观看 | 久久久久久亚洲 | 激情国产 |