串行1602的四位数据线程序-avr单片机
/*-----------------------------------------------------------------------
* DEC_Num_Disp :10进制数值显示函数
*
* 输入参数 :X 字符起始显示行坐标2
* Y 字符起始显示列坐标
* Num 需要显示的数值(最长8位)
* Bit 有效显示的位数
* 输出 :
-----------------------------------------------------------------------*/
void DEC_Num_Disp(unsigned char X,unsigned char Y,unsignedlongNum,char Bit)
{
unsigned char i = 0;
Locate( X, Y );
for (i=0 ; i
LCD_Buff[i] = CHR[Num%10];
Num = Num/10;
}
for (i=0 ; i
LCD_Write_Char(0,LCD_Buff[Bit-i-1]); //先写高位再写低位
}
}
/*-----------------------------------------------------------------------
* HEX_Num_Disp :16进制数值显示函数
*
* 输入参数 :X 字符起始显示行坐标
* Y 字符起始显示列坐标
* Num 需要显示的数值(最长8位)
* Bit 有效显示的位数
* 输出 :
-----------------------------------------------------------------------*/
void HEX_Num_Disp(unsigned char X,unsigned char Y,unsignedlongNum,char Bit)
{
char a = 0;
Locate( X, Y );
for(a=8-Bit ; a<8 ; a++)
{
LCD_Write_Char(0,CHR[(Num< (a < 2)) >>28]);
}
}
1602测试程序LCD.c
/*********************************************
* "1602Driver.h"库测试程序
*********************************************/
#include
#include "1602Driver.h"
void Port_Init(void)
{
DDRD = 0xff;
DDRC = 0xff;
}
void main (void)
{
int counter;
OSCCAL="0XA5";
Port_Init();
LCD_Init();
LCD_Write_Char(0x01,0); //清屏
HEX_Num_Disp(0,0,13,1);
DEC_Num_Disp(0,1,4,1);
//LCD_Write_String(2,0,"T");
LCD_Write_String(1,0,"Disp");
while(1);
}
串行1602数据线avr单片 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
