找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2937|回复: 2
收起左侧

0.96寸7针oled在msp430源程序

[复制链接]
ID:515998 发表于 2020-11-1 00:17 | 显示全部楼层 |阅读模式
  1. //   GND  电源地
  2. //   VCC  接5V或3.3v电源
  3. //   D0   P33(时钟)
  4. //   D1   P34(数据)
  5. //   RES  接P35
  6. //   DC   接P32
  7. //   CS   接P36         
  8. #include <io430.h>
  9. #include "oled.h"

  10. char e=34,s=27,i=16;

  11. int a=0;
  12. int j;
  13. int ii;

  14. void main( void )
  15. {       
  16.   WDTCTL = WDTPW + WDTHOLD;
  17.   
  18. P2REN |= BIT1;
  19. P2OUT |= BIT1;
  20. P2IES |= BIT1;
  21. P2IFG &=  ~BIT1;  //打开中断
  22. P2IE |= BIT1;
  23.   
  24.   OLED_Init();                //初始化OLED  
  25.   OLED_Clear();
  26.   
  27.   TA0CCTL0 = CCIE;
  28.   TA0CCR0 = 2500;
  29.   
  30.   OLED_ShowCHinese(0,0,0);
  31.   OLED_ShowCHinese(18,0,1);
  32.   OLED_ShowCHinese(36,0,2);
  33.   OLED_ShowCHinese(54,0,3);
  34.   OLED_ShowCHinese(72,0,4);
  35.   OLED_ShowCHinese(90,0,5);
  36.   OLED_ShowCHinese(108,0,6);
  37.   OLED_ShowChar(30,4,16);
  38.   OLED_ShowChar(40,4,e);
  39.   OLED_ShowChar(50,4,38);//时间:
  40.   OLED_ShowChar(60,4,s);
  41.   OLED_ShowChar(70,4,i);

  42. // TA0CTL|=TASSEL_1+MC_2+TACLR;//时钟源
  43. //TA0CTL=TASSEL_1+TACLR+MC_1;
  44.   TA0CTL=TASSEL_1+TACLR+MC_3;
  45.   //TACLR  为定时器清除位   
  46.   //MC_3处于增减计数模式下
  47. //TASSEL_1时钟源选择为辅助时钟
  48.   __enable_interrupt();
  49.   
  50.   while(1)
  51.   {
  52.   if(a%2==1)
  53.   {
  54.     TA0CCR0 = 2500;  //增计数模式,ccr0计数到0时P1IF置位。
  55.    //TA0CTL=TASSEL_1+TACLR+MC_3;
  56.    TA0CCTL0 = CCIE;   //允许中断
  57.   }
  58.   if(a%2==0)   
  59.   {
  60.   //  TA0CTL=MC_0;
  61.    TA0CCTL0 = ~CCIE;    //禁止中断
  62.   }
  63.   }
  64. }
  65. #pragma vector=TIMER0_A0_VECTOR
  66. __interrupt void TIMER0_A0_ISR(void)
  67. {
  68.   ii++;
  69. //if(ii==12)
  70. if(ii==7)
  71. {
  72.   OLED_ShowChar(30,4,16);
  73.   OLED_ShowChar(40,4,e);
  74.   OLED_ShowChar(50,4,38);
  75.   OLED_ShowChar(60,4,s);
  76.   OLED_ShowChar(70,4,i);
  77.   i++;
  78.   
  79.   if(i==26)
  80.   {
  81.     i=16;
  82.     s++;
  83.   }
  84.   if(s==33)
  85.   {
  86.     s=27;
  87.      e++;
  88.   }
  89.     if(e==37)
  90.   {
  91.     e=34;
  92.   }

  93.   ii=0;
  94. }
  95. }

  96. #pragma vector=PORT2_VECTOR
  97. __interrupt void Port_2(void)  //按键按下
  98. {
  99.   int x;
  100.   for(x=0;x<25000;x++);//延时消抖
  101.   if((P2IN&0xff)!=0xff)
  102.   {
  103.     a++;
  104.   }
  105.   P2IFG &= ~BIT1;//标志位清零
  106. }
  107. /*
  108. #pragma vector=PORT1_VECTOR
  109. __interrupt void Port_1(void)
  110. {
  111.   int j;
  112.   for(j=0;j<25000;j++);//延时消抖
  113.   if((P1IN&0xff)!=0xff)
  114.   {
  115.    e=34;
  116.    s=27;
  117.    i=16;
  118.   }
  119.     P1IFG &= ~BIT1;//标志位清零
  120. }*/
复制代码


oled计时器.rar

718.68 KB, 下载次数: 42, 下载积分: 黑币 -5

回复

使用道具 举报

ID:837187 发表于 2021-7-22 14:31 | 显示全部楼层
请问oled不显示数字怎么办
回复

使用道具 举报

ID:837187 发表于 2021-7-22 14:32 | 显示全部楼层
请问oled无法显示汉字怎么回事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表