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

📄 show.c

📁 单片机显示汉字实验
💻 C
字号:
#include <reg51.h>
#include <stdio.h>
#include "var.h"
#include "sub.h"


void showhz(void);
void main ()
{
int loop=9;
EA=1;
EX0=1;
IT0=1;

ET0=1;
TMOD=1;
TH0=0xFC;
TL0=0x17;
TR0=1;

InitLCD(30);

showhz();

while(loop==9){};

}

void showhz()
{
char col=0,row=0,j=0;

int start_tep=0,index=0;

for (hz_pointer=0;hz_pointer<hz_size;hz_pointer++)
   {
   row=hz_pointer/(12/2);//汉子所在的行数。
   col=hz_pointer%(12/2);//汉字的列数
   
  start_tep=row*LineChar*16+col*2;//下一个汉字的开启地址
  

   for(j=0;j<16;j++)
	   {
        start_tep=start_tep+LineChar;//地址换一行
        OutPortCom3( (unsigned char)(start_tep), (unsigned char)(start_tep>>8), 0x24); //set address
        index=hz_pointer*32+j*2;
        OutPortCom2( hzdot[index], 0xc0);//输出低位
        index=hz_pointer*32+j*2+1;
        OutPortCom2(hzdot[index], 0xc4);//输出高位

        OutPortCom3( (unsigned char)(start_tep+12), (unsigned char)((start_tep+12)>>8), 0x24); //set address
        index=hz_pointer*32+j*2;
        OutPortCom2( hzdot[index], 0xc0);//输出低位
        index=hz_pointer*32+j*2+1;
        OutPortCom2(hzdot[index], 0xc4);//输出高位
		 
       if(col<3)
	   {
        OutPortCom3( (unsigned char)(start_tep+24), (unsigned char)((start_tep+24)>>8), 0x24); //set address
        index=hz_pointer*32+j*2;
        OutPortCom2( hzdot[index], 0xc0);//输出低位
        index=hz_pointer*32+j*2+1;
        OutPortCom2(hzdot[index], 0xc4);//输出高位
		}
	 
		}
	  
 
   }



/*
OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
OutPortCom2( 0xff, 0xc0);
OutPortCom2( 0xff, 0xc4);*/


}
void shack() interrupt 0

{
if (key_counter<30)key_counter++;
else key_counter=0;
   
OutPortCom3((unsigned char)key_counter*60, (unsigned char)((key_counter*60)>>8), 0x42); //set address
     

}

void ontime() interrupt 1
{
TH0=0xFC;
TL0=0x17;

if (timer_counter<500)timer_counter++;
else
   {
   timer_counter=0;
   if (key_counter<8)key_counter++;
    else key_counter=0;
   OutPortCom3((unsigned char)(key_counter*240),(unsigned char)((key_counter*240)>>8), 0x42); //set address
   }
}

⌨️ 快捷键说明

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