?? function.c
字號:
#include <./Atmel/at89x52.h>
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include <string.h>
#include "source.h"
void Msm_init(void){//初始化msm6255
MCSIO_ENABLE();
REG_INSTR=0X00;//選擇模式控制寄存器
REG_DATA=0X0b;//光標關,顯示開,4比特并行圖形模式
REG_INSTR=0X01;//選擇字符點數寄存器
REG_DATA=0X07;//一個字節的全部數據顯示到屏幕上
REG_INSTR=0X02;//選擇水平字符個數寄存器
REG_DATA=80;//每行顯示81個字符,也就是81x8=648個點,這是根據AF1的時序設置的
REG_INSTR=0X03;//選擇顯示行數寄存器
REG_DATA=239;//選擇行數為240行,因為是并行模式,所以總共為240x2=480行
REG_INSTR=0X05;//選擇低端開始地址寄存器
REG_DATA=0; //設置顯示存開始開始地址的低8位為0
REG_INSTR=0X06;//選擇高端開始地址寄存器
REG_DATA=0; //設置顯示存開始開始地址的高8位為0,這樣顯存開始地址就從0開始
}
void Clear_Screen(void){//清除整個屏幕
int i;
VRAM_BUSY=1;
for(i=0;i<81*480;i++){
while(VRAM_BUSY==0);//如果MSM6255正在取數據則等待
MCSIO_DISABLE();//把MSM6255的DIEN信號設置為低,訪問顯存
XBYTE[i]=0;//把顯存相應的位置設置為0
MCSIO_ENABLE();//把MSM6255的DIEN信號設置為高,屏幕顯示有效
}
}
void Draw_Pic(int x,int y,int w,int h,unsigned char *buf){
//在屏幕的x,y的位置上畫高為h,寬度為W的圖片,x和w必須為8的倍數,buf為圖片數據
int i,j;
int vrbase;
VRAM_BUSY=1;
x=x/8;
w=w/8;
vrbase=SCREEN_WIDTH*y+x;//確定起始位置
for(j=0;j<h;j++){//遍歷所有圖片數據
for(i=0;i<w;i++){//畫一行數據
while(VRAM_BUSY==0);//如果MSM6255正在取數據則等待
MCSIO_DISABLE();//把MSM6255的DIEN信號設置為低,訪問顯存
XBYTE[vrbase+i]=*(buf+j*SCREEN_WIDTH+i);//設置顯存相應的為圖片的數值
MCSIO_ENABLE();//把MSM6255的DIEN信號設置為高,屏幕顯示有效
}
vrbase +=SCREEN_WIDTH;//換下一行
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -