由于是初次接触这个..所以有很多东西不是很懂:
1、首先是ht1621的初始化,给一个高电平脉冲,指的是CS端直接置1,还是先置0,再置1;
2、ht1621的数据传输时(比如写的模式),在WR由高电平变为低电平,和低电平变为高电平,这个时间最大和最小是多少,也就是说这个周期是多少;
3,下面根据自己写的一段程序,不知道哪里错了,就是没法显示数据
说一下自己程序的思路:只显示一个数码管的值,在0-9之间循环逐渐递增,时间是由定时器来完成的。下面就是我的程序了
#include
#define LCD_CS1 PORTCbits.RC7
#define LCD_CS2 PORTCbits.RC6
#define LCD_WR PORTCbits.RC5
#define LCD_DA PORTCbits.RC4
#define SCAN_KEY_A PORTAbits.RA3
#define SCAN_KEY_B PORTAbits.RA5
//#define POWER_KEY PORTAbits.RA4
#define LCD PORTBbits.RB1
#define uchar unsigned char
#define WRITEDATA 0x05
#define WRITECMD 0x04
#define BIAS 0x52 //0b1000 0101 0010 1/3duty 4com
#define SYSDIS 0X00 //0b1000 0000 0000 关振系统荡器和LCD偏压发生器
#define SYSEN 0X02 //0b1000 0000 0010 打开系统振荡器
#define LCDOFF 0X04 //0b1000 0000 0100 关LCD偏压
#define LCDON 0X06 //0b1000 0000 0110 打开LCD偏压
#define XTAL 0x28 //0b1000 0010 1000 外部接时钟
#define RC256 0X30 //0b1000 0011 0000 内部时钟
#define TONEON 0X12 //0b1000 0001 0010 打开声音输出
#define TONEOFF 0X10 //0b1000 0001 0000 关闭声音输出
#define WDTDIS 0X0A //0b1000 0000 1010 禁止