搜索
bottom↓
回复: 1

请教HT1621B 上传了程序 和LCD规格书,不知道怎么点亮指定位置

[复制链接]

出0入0汤圆

发表于 2011-9-21 09:36:25 | 显示全部楼层 |阅读模式
哪位能帮我编一段编码 让LCD里面的四个8可以像数码管那样加减。
实在不行的话帮我修改一下程序,可以点亮指定段也可以,谢谢。

这是LCD的规格书
点击此处下载 ourdev_678246TK63O7.pdf(文件大小:140K) (原文件名:HD61749 Model (1).pdf)


//---------------------------------------
//日期:20110907
//-----------------------------------------  
#include <SH88F2051.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define _nop() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
#define BIAS   0x24  //0b1000 0010 1010  1/3duty 3com
#define SYSDIS 0X00     //0b1000 0000 0000  关振系统荡器和LCD偏压发生器
#define SYSEN  0X01     //0b1000 0000 0010 打开系统振荡器
#define LCDOFF 0X04     //0b1000 0000 0100  关LCD偏压
#define LCDON  0X03     //0b1000 0000 0110  打开LCD偏压
#define XTAL   0x28     //0b1000 0010 1000 外部接时钟
#define RC256  0X30     //0b1000 0011 0000  //系统时钟选择为片内RC振荡器
#define TONEON  0X12    //0b1000 0001 0010  打开声音输出
#define TONEOFF 0X10    //0b1000 0001 0000 关闭声音输出
#define WDTDIS1  0X0A  //0b1000 0000 1010  禁止看门狗
#define TIMERDIS 0X08                    //时基输出禁能

uchar a[10];

//-------------------------------------库函数声明,管脚定义-----------

sbit DOWN=P1^3;      //15pin 减
sbit UP=P1^2;    //14pin 加
sbit STOP=P1^1;   //13pin 停止
sbit START=P1^0;   //12pin 开始
sbit LED=P3^5;     //9pin  0 LED OPEN
sbit BUZZ=P4^0;       //1pin 0 BUZZ OPEN
sbit KA1=P3^7;     //11pin 主控制继电器
sbit KA2=P3^4;     //8pin 极性转换A
sbit KA3=P3^3;     //7pin 极性转换B
sbit DATA=P1^4;   
sbit WRD=P1^5;   
sbit CS=P1^6;
void SENDBYTE (uchar dat);  
void SENDBIT (uchar dat,uchar bitcnt);   


void init()
{
SCON=0x00;   //串行控制关
CLKCON=0x00;  //系统时钟频率分频器。机器周期fsys=震荡周期fosc,1/4=0.25us
DOWN=1;      //15pin 减
UP=1;    //14pin 加
STOP=1;   //13pin 停止
START=1;   //12pin 开始
}
   
/***************************延时子函数******************************/
void delay1s()                           //延时1S
{
uchar i;
uint j;
for(i=0;i<10;i++)
    for(j=0;j<1300;j++);
}
/*********************************************************/
void SendBit_1621(uchar data1,uchar cnt) //data1的高位cnt位写入HT1621,高位在前
{
uchar i;
for(i=0;i<cnt;i++)
{
if((data1&0x80)==0) DATA=0;//DATA=IO
else DATA=1;
WRD=0;
_nop();
WRD=1;
data1<<=1;
}
}
void SendDataBit_1621(uchar data1,uchar cnt)  //data1的低cnt位写入HT1621,低位在前
{
uchar i;
for(i=0;i<cnt;i++)
{
if((data1&0x01)==0) DATA=0;
else DATA=1;
WRD=0;
_nop();
WRD=1;
data1>>=1;
}
}

void SendCmd(uchar command)
{
CS=0;
SendBit_1621(0x80,3);
SendBit_1621(command,9);
CS=1;
}
void Write_1621(uchar addr, uchar data1)
{
CS=0;
SendBit_1621(0xa0,3);    //写入标志吗101
SendBit_1621(addr<<2,6);  //写入6位addr
SendDataBit_1621(data1,4); //写入data的低4位
CS=1;
}
void WriteAll_1621(uchar addr,uchar *p,uchar cnt)
{
uchar i;
CS=0;
SendBit_1621(0xa0,3);    //写入标志吗101
SendBit_1621(addr<<2,6);  //写入6位addr
for(i=0;i<cnt;i++,p++)   //连续写入数据
{
SendDataBit_1621(*p,8);
}
CS=1;
}
void lcd_init()
{
SendCmd(BIAS);
SendCmd(SYSEN);
SendCmd(LCDON);
}
/*******************************主函数******************************/
main()                                   //主函数
{
init();
     LED=1;
lcd_init();
a[0]=0x21;a[1]=0x43;a[2]=0x65;a[3]=0x87;a[4]=0xa9;
Write_1621(0x09,0x09);
WriteAll_1621(0,a,5);
               
}  //main end
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 13:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表