在开发板上显示彩虹c语言(800*480屏幕)

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <error.h>
#include <unistd.h>
#include <sys/mman.h>

int lcd_fd = -1;     //帧缓冲文件描述符
int * plcd = NULL;//帧缓冲设备


//屏幕初始化
void CH_init()
{
int fd = open("/dev/fb0",O_RDWR);
if(fd==-1)
{
perror("open pingmv shibai");
}
lcd_fd = fd;
plcd = mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);//映射到屏幕
}

//画点函数
void huadian(int x0, int y0, int color)
{
if (x0 >= 0 && x0 < 480&&y0 >= 0 && y0 < 800  )
    {
        *(plcd + x0 * 800 + y0) = color;
    }
}

//白屏
void chushihua()
{
    int color = 0xffffffff;
    for(int i = 0;i<480;i++)
    {
        for(int j = 0;j<800;j++)
        {
             huadian(i,j,color);
        }
    }
}
     
 
//画圆函数
void huayuan()
{
int color[800*480]={0};
for(int i=0;i<480;i++)
{
for(int j=0;j<800;j++)
    {
    if((i-480)*(i-480)+(j-400)*(j-400)>122500 && (i-480)*(i-480)+(j-400)*(j-400)<160000) 
        {
            huadian(i,j,0x0F0FFaa0);
        }
    if((i-480)*(i-480)+(j-400)*(j-400)>90000 && (i-480)*(i-480)+(j-400)*(j-400)<122500) 
        {
            huadian(i,j,0x0F0F0F00);
        }
    if((i-480)*(i-480)+(j-400)*(j-400)>62500 && (i-480)*(i-480)+(j-400)*(j-400)<90000) 
        {
            huadian(i,j,0x0F0FFFF0);
        }
    }
}
}


//关闭屏幕
void guanbi_init()
{
munmap(plcd,800*480*4);
plcd = NULL;
close(lcd_fd);
}

int main()
{
CH_init();
chushihua();
huayuan();
guanbi_init();
}


 

要在普中51单片机开发板上实现8*8点阵滚动显示汉字,需要先将汉字转换为点阵格式,并将点阵数据存储到单片机的存储器中。然后,通过编写C语言程序控制单片机将点阵数据显示在点阵屏幕上,并通过移位操作实现滚动显示效果。 以下是一个简单的C语言程序示例,用于在普中51单片机开发板上实现汉字滚动显示: ```c #include <reg51.h> // 定义点阵数据数组 unsigned char code Font8x8[][8] = { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 空格 {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}, // 横线 // 其他汉字的点阵数据 }; // 定义滚动显示函数 void scroll_display(unsigned char *data, unsigned char n) { unsigned char i, j; for (i = 0; i < n; i++) { for (j = 0; j < 8; j++) { P0 = *(data + i + j); delay(10); } } } // 主函数 void main() { unsigned char i, j; unsigned char str[] = "你好,世界!"; // 要显示的汉字字符串 unsigned char data[8*8]; // 存储转换后的点阵数据 unsigned char len = sizeof(str) / sizeof(str[0]); for (i = 0; i < len; i++) { // 将汉字转换为点阵数据 for (j = 0; j < 8; j++) { data[j] = Font8x8[str[i] - 0xA1][j]; } // 滚动显示 scroll_display(data, 8); } } ``` 在上述程序中,定义了一个点阵数据数组`Font8x8`,用于存储汉字的点阵数据。在`main`函数中,先定义了要显示的汉字字符串`str`,然后遍历字符串每个字符,将其转换成点阵数据,并调用`scroll_display`函数进行滚动显示。`scroll_display`函数通过移位操作实现滚动显示效果,其中`delay`函数用于控制滚动速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值