本帖最后由 Jack602 于 2010-11-7 21:47 编辑
开头有定义这么个数组
uchar code Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
0,0x00,0x00,0x00};
********************************************************/
函数名称:void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
功能描述: HT1621连续写入方式函数
全局变量:无
参数说明:Addr为写入初始地址,*p为连续写入数据指针,
cnt为写入数据总数
返回说明:无
设 计 人:ZHCE
版 本:1.0
说 明:HT1621的数据位4位,此处每次数据为8位,写入数据
总数按8位计算
********************************************************/
void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
{
uchar i;
HT1621_CS=0;
Ht1621Wr_Data(0xa0,3); //写入数据标志101
Ht1621Wr_Data(Addr<<2,6); //写入地址数据 他这边初始地址给了后,
接下来就没给定地址了
for (i=0;i<cnt;i++)
{
Ht1621Wr_Data(*p,8); //写入数据
p++;
}
HT1621_CS=1;
_Nop();
}
********************************************************/
主函数
********************************************************/
main()
{
Ht1621WrAllData(0,Ht1621Tab,16);//清除1621寄存器数据,暨清屏
}
1621不是有4*32的映射RAM吗 只能写入4位数据
那为什么void Ht1621WrAllData这个函数 写入的是8位数据又不用映射RAM地址+1?
不知道为什么 |