⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: PG160128液晶图形滚动演示
//-----------------------------------------------------------------
//  说明: 本例可显示一幅图像,可控制图像滚动,反白,合上"图文"开关时,
//        还可以显示一幅条形统计图.
//
//-----------------------------------------------------------------
#include <pic.h>
#include "PG160128.h"
#include "PictureDots.h"
//开关定义
#define S1_ON() (RB0 == 0)  //正常显示
#define S2_ON() (RB2 == 0)  //反白
#define S3_ON() (RB4 == 0)  //滚动
#define S4_ON() (RB7 == 0)  //图文
//当前操作序号
INT8U Current_Operation = 0;
//待显示的统计数据
INT8U Statistics_Data[] = {20,70,80,40,90,65,30};
//-----------------------------------------------------------------
// 绘制条形图
//-----------------------------------------------------------------
void Draw_Bar_Graph(INT8U d[])
{
    INT8U i,h;
    Line(4,2,4,100,1);      //纵轴
    Line(4,100,158,100,1);  //横轴
    Line(4,2,1,10,1);       //纵轴箭头
    Line(4,2,7,10,1);     
    Line(158,100,152,97,1); //横轴箭头
    Line(158,100,152,103,1);
    for (i = 0; i < 7; i++)
    {   h = 100 - d[i];
        Line(10 + i * 20, h,    10 + i * 20,     100, 1);
        Line(10 + i * 20, h,    10 + i * 20 + 15,  h, 1);
        Line(10 + i * 20 + 15,h,10 + i * 20 + 15,100, 1);
    }
}

//-----------------------------------------------------------------
// 延时函数
//-----------------------------------------------------------------
void delay(INT8U x)
{
    while (--x) __delay_ms(100);
}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
    INT8U i,j,m,c = 0;  INT16U k;
    TRISB = 0xFF;           //按键输入端口
    RBPU = 0;
    PORTC = TRISC = 0x00;   //液晶输出端口
    PORTD = TRISD = 0x00;
    LCD_Initialise();       //初始化LCD
    while(1)
    {   if      (S1_ON()) Current_Operation = 1;//正常
        else if (S2_ON()) Current_Operation = 2;//反白
        else if (S3_ON()) Current_Operation = 3;//滚动
        else if (S4_ON()) Current_Operation = 4;//图文
        //如果操作类型未改变则仅执行延时.
        if ( c == Current_Operation) goto delayx;
        c = Current_Operation; 
        switch (Current_Operation)
        {    case 1://正常或反白显示(在160x128液晶上显示160x80BMP图像,
             case 2://余下面部分用间隔线条填充. 









                    
             case 3://滚动显示




  



             case 4://图文显示




          } 
          delayx: delay(3);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -