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

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

QQ登錄

只需一步,快速開始

搜索
查看: 3906|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

stm32c8t6 lcd1602的設(shè)計(jì)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:311924 發(fā)表于 2018-4-19 19:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如附件所示

單片機(jī)源程序如下:
  1. #include "Lcd_1602.h"

  2. unchar count,s1num;
  3. char miao,shi,fen;
  4. unchar table[] =  "      ZNSYS    ";
  5. unchar table1[] =  "    00 00.00";

  6. void LCD_GPIO_init(void){
  7.         GPIO_InitTypeDef GPIO_InitStructure;
  8.         //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
  10.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  11.         DBGMCU_CR&=0xFFFFFFDF;
  12.        
  13.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;       
  16.         GPIO_Init(GPIOB, &GPIO_InitStructure);       
  17.        
  18.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  19.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  20.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;       
  21.         GPIO_Init(GPIOB, &GPIO_InitStructure);       
  22.                
  23.        
  24.         GPIO_SetBits(GPIOB,GPIO_Pin_All);  
  25. }

  26. void LCD_GPIO_WriteData(unchar data)
  27. {
  28.         part_h_o=((data&0x80)>>7);
  29.         part_g_o=((data&0x40)>>6);
  30.         part_f_o=((data&0x20)>>5);
  31.         part_e_o=((data&0x10)>>4);
  32.         part_d_o=((data&0x08)>>3);
  33.         part_c_o=((data&0x04)>>2);
  34.         part_b_o=((data&0x02)>>1);
  35.         part_a_o=((data&0x01));
  36. }

  37. unchar LCD_GPIO_RedData(void)
  38. {
  39.         unchar data=0x00;
  40.         data=0x80&(data+0x7f+part_a_i);
  41.         data=0xc0&(data+0x3f+part_b_i);
  42.         data=0xe0&(data+0x1f+part_c_i);
  43.         data=0xf0&(data+0x0f+part_d_i);
  44.         data=0xf8&(data+0x07+part_e_i);
  45.         data=0xfc&(data+0x03+part_f_i);
  46.         data=0xfe&(data+0x01+part_g_i);
  47.         data=0xff&(data+0x00+part_h_i);
  48.         return data;
  49. }
  50. void LCD_Write_com(unchar com)
  51. {
  52.         lcd_rs=0;
  53.         lcd_en=0;
  54.         LCD_GPIO_WriteData(com);
  55.         delay_us(50);
  56.         lcd_en=1;
  57.         delay_us(50);
  58.         lcd_en=0;       
  59. }

  60. void LCD_Write_date(unchar date)
  61. {

  62.         lcd_rs=1;
  63.         lcd_en=0;
  64.         LCD_GPIO_WriteData(date);
  65.         delay_us(50);
  66.         lcd_en=1;
  67.         delay_us(50);
  68.         lcd_en=0;       
  69. }

  70. void LCD_Init(void)
  71. {

  72.         unchar num;

  73.         lcd_en=0;
  74.         fen=59;
  75.         miao=53;
  76.         shi=23;             
  77.   lcd_rw=0;
  78.         LCD_Write_com(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
  79.         LCD_Write_com(0x0c);//開顯示,不顯示光標(biāo)
  80.         LCD_Write_com(0x06);//寫個(gè)字符地址加一
  81.         LCD_Write_com(0x01);//顯示清0,數(shù)據(jù)指針清零
  82.         LCD_Write_com(0x80);
  83.         for(num=0;num<15;num++)
  84.                 {

  85.                         LCD_Write_date(table[num]);
  86.                         delay_us(50);
  87.                 }
  88.         LCD_Write_com(0x80+0x40);

  89.         for(num=0;num<12;num++)
  90.                 {
  91.                         LCD_Write_date(table1[num]);
  92.                         delay_us(50);

  93.                 }
  94. }

  95. void Write_num(unchar add,unchar date){//add 4 7 10
  96.         unchar shi,ge;
  97.         shi=date/10;
  98.         ge=date%10;
  99.         LCD_Write_com(0x80+0x40+add);
  100.         LCD_Write_date(0x30+shi);
  101.         LCD_Write_date(0x30+ge);
  102. }
  103. /*void write_sfm(unchar add,unchar date)
  104. {
  105.         unchar shi,ge;
  106.         shi=date/10;
  107.         ge=date%10;
  108.         LCD_Write_com(0x80+0x40+add);
  109.         LCD_Write_date(0x30+shi);
  110.         LCD_Write_date(0x30+ge);
  111. }
  112. void keyscan()
  113. {
  114.         if(s1==0)       
  115.         {
  116.                 delay(5);
  117.                 if(s1==0)
  118.                 {        s1num++;
  119.                         while(!s1);
  120.                         if(s1num==1)
  121.                         {
  122.                                 TR0=0;
  123.                                 LCD_Write_com(0x80+0x40+10);
  124.                                 LCD_Write_com(0x0f);
  125.                         }
  126.         }
  127.                         if(s1num==2)
  128.                         {
  129.                                 write_com(0x80+0x40+7);
  130.                         }
  131.                         if(s1num==3)
  132.                         {
  133.                                 write_com(0x80+0x40+4);
  134.                         }
  135.                         if(s1num==4)
  136.                         {
  137.                                 s1num=0;
  138.                                 write_com(0x0c);
  139.                         }

  140.                                
  141.                 }
  142.                 if(s1num!=0)
  143.                 {
  144.                         if(s2==0)
  145.                         {
  146.                                 delay(5);
  147.                                 if(s2==0)
  148.                                 {
  149.                                         while(!s2);
  150.                                         if(s1num==1)
  151.                                         {
  152.                                                 miao++;
  153.                                                 if(miao==60)
  154.                                                         miao=0;
  155.                                                 write_sfm(10,miao);
  156.                                                 write_com(0x80+0x40+10);
  157.                                                
  158.                                                
  159.                                         }
  160.                                         if(s1num==2)
  161.                                         {
  162.                                                 fen++;
  163.                                                 if(fen==60)
  164.                                                         fen=0;
  165.                                                 write_sfm(7,fen);
  166.                                                 write_com(0x80+0x40+7);
  167.                                         }
  168.                                         if(s1num==3)
  169.                                         {
  170.                                                 shi++;
  171.                                                 if(shi==24)
  172.                                                         shi=0;
  173.                                                 write_sfm(4,shi);
  174.                                                 write_com(0x80+0x40+4);
  175.                                         }
  176.                                 }
  177.                         }
  178.                         if(s3==0)
  179.                         {
  180.                                 delay(5);
  181.                                 if(s3==0)
  182.                                 {
  183.                                         while(!s3);
  184.                                         if(s1num==1)
  185.                                         {
  186.                                                 if(miao==0)
  187.                                                 {
  188.                                                         miao=59;
  189.                                                         write_sfm(10,miao);
  190.                                                         write_com(0x80+0x40+10);
  191.                                
  192.                                                 miao--;
  193.                                                 if(miao==-1)
  194.                                                         miao=59;
  195.                                                 write_sfm(10,miao);
  196.                                                 write_com(0x80+0x40+10);
  197.                                         }
  198.                                         if(s1num==2)
  199.                                         {
  200.                                                 fen--;
  201.                                                 if(fen==-1)
  202.                                                         fen=59;
  203.                                                 write_sfm(7,fen);
  204.                                                 write_com(0x80+0x40+7);
  205.                                         }
  206.                                         if(s1num==3)
  207.                                         {
  208.                                                 shi--;
  209.                                                 if(shi==-1)
  210.                                                         shi=23;
  211.                                                 write_sfm(4,shi);
  212.                                                 write_com(0x80+0x40+4);
  213.                                         }
  214.                                 }
  215.                         }
  216.                 }
  217. }
  218. void main()
  219. {
  220.         LCD_init();
  221.         while(1)
  222.         {
  223.                 keyscan();
  224.                
  225.         }
  226. //        while(1);
  227. }
  228. /////////////////////////////////////////////////////////////////////////////////////此處屬于中斷

  229. void timer0() interrupt 1
  230. ……………………

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

所有資料51hei提供下載:
LCD1602.zip (2.16 KB, 下載次數(shù): 106)


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

使用道具 舉報(bào)

沙發(fā)
ID:526282 發(fā)表于 2019-5-4 09:42 | 只看該作者
老哥好使嘛
回復(fù)

使用道具 舉報(bào)

板凳
ID:168926 發(fā)表于 2019-11-29 19:18 | 只看該作者
這個(gè)可以用嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:917844 發(fā)表于 2021-5-10 18:58 | 只看該作者
有接線圖嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:663396 發(fā)表于 2021-5-12 20:13 | 只看該作者
就兩文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一级二级三级 | 蜜臀久久99精品久久久久野外 | 国产伦一区二区三区久久 | 国产一区欧美 | 涩涩鲁亚洲精品一区二区 | 秋霞电影院午夜伦 | 日日久 | 日韩成人精品一区二区三区 | 国内精品视频在线观看 | 九九亚洲精品 | 狠狠色综合网站久久久久久久 | 亚洲欧美综合精品久久成人 | 亚洲一区精品在线 | 久久久精 | 香蕉视频91 | www.国产精品| 欧美精品在线免费 | 成人av一区 | 国产精品一区二区在线观看 | 中文字幕在线观看成人 | 成人国产精品久久 | 91精品国产一区二区三区 | www.婷婷亚洲基地 | 日韩在线精品 | 国产在线不卡 | 三级视频在线观看 | 亚洲国产免费 | 欧美一区二区久久 | 日韩中文字幕一区 | 欧美中文字幕一区二区三区亚洲 | 国产视频一区二区 | 日日操夜夜操视频 | 精品一区二区三 | 黄色片在线观看网址 | 国产精品一区二区不卡 | 91麻豆久久久 | 国产精品成人av | 欧美日日| 欧美在线a | av电影手机在线看 | 亚洲第一av |