欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
HT1632C程序燒進(jìn)去一點(diǎn)反應(yīng)都沒有,問題在哪,有無(wú)大神幫忙看看
[打印本頁(yè)]
作者:
nomoreclimbing
時(shí)間:
2024-7-25 16:49
標(biāo)題:
HT1632C程序燒進(jìn)去一點(diǎn)反應(yīng)都沒有,問題在哪,有無(wú)大神幫忙看看
#include<reg52.h>
#include<string.h>
/******************指令表**********************/
#define SYS_DIS 0x00 //關(guān)閉系統(tǒng)震蕩
#define SYS_EN 0x01 //打開系統(tǒng)震蕩
#define LED_OFF 0x02 //關(guān)閉LED顯示
#define LED_ON 0x03 //打開LED顯示
#define BLINK_OFF 0x08 //關(guān)閉閃爍
#define BLINK_ON 0x09 //打開閃爍
#define SLAVE_MODE 0x10 //從模式
#define RC_MASTER_MODE 0x18 //內(nèi)部RC時(shí)鐘
#define COM_OPTION 0x28 //20:8COM,NMOS。28:8COM,PMOS。
#define PWM_DUTY 0xaf //PWM亮度控制
/****************引腳定義**********************/
sbit cs1=P1^0;
sbit rd=P3^7;
sbit wr=P3^6;
sbit dat=P1^2;
void HT1632C_Write(unsigned char Data,unsigned char cnt)
{
unsigned char i;
for(i=0;i<cnt;i++)
{
wr=0;
if(Data&0x80) {dat=1;}
else {dat=0;}
wr=1;
Data<<=1;
}
}//MCU向HT1632C寫數(shù)據(jù)函數(shù),高位在前
void HT1632C_Write_CMD(unsigned char cmd)//MCU向HT1632c寫命令
{
cs1=0;
HT1632C_Write(0x80,3);//ID:100
HT1632C_Write(cmd,9);//命令數(shù)據(jù)位,第九位任意
cs1=1;
}
void HT1632C_Write_DATA(unsigned char Addr,unsigned char D,unsigned char cnt) //指定起始地址連續(xù)寫入數(shù)據(jù),cnt為寫入數(shù)據(jù)個(gè)數(shù),每個(gè)數(shù)據(jù)按位算
{
unsigned char i;
cs1=0;
HT1632C_Write(0xa0,3); //ID:101
HT1632C_Write(Addr<<1,7);//地址
for(i=0;i<cnt;i++) //連續(xù)寫入數(shù)據(jù)
{
HT1632C_Write(D,4);
}
cs1=1;
}
void HT1632C_clr(void) //清屏函數(shù)
{
unsigned char i;
cs1=0;
HT1632C_Write(0xa0,3);
HT1632C_Write(0x00,7);
for(i=0;i<48;i++)
HT1632C_Write(0,8);
cs1=1;
}
void HT1632C_Init(void) //HT1632C初始化函數(shù)
{
cs1=1;
wr=1;
dat=1;
HT1632C_Write_CMD(SYS_DIS);//關(guān)閉HT1632C內(nèi)部RC時(shí)鐘
HT1632C_Write_CMD(COM_OPTION);//選擇HT1632C工作模式,COM,NMOS模式
HT1632C_Write_CMD(RC_MASTER_MODE); //選擇內(nèi)部RC時(shí)鐘
HT1632C_Write_CMD(SYS_EN); //打開HT1632C內(nèi)部RC時(shí)鐘
HT1632C_Write_CMD(PWM_DUTY); //PWM亮度設(shè)置
HT1632C_Write_CMD(BLINK_OFF);//關(guān)閉閃爍
HT1632C_Write_CMD(LED_ON);//打開LED顯示
}
void lcdwd1(unsigned char num)
{
unsigned char i;
unsigned char addr=0;//寄存器起始地址0x00
for(i=0;i<num;i++)//num有效地址數(shù)
{
HT1632C_Write_DATA(addr,0xff,8);//addr為地址,0xff為數(shù)據(jù),8為8位數(shù)據(jù)
addr+=2;//順延2個(gè)4位地址碼
}
}
void main()
{
HT1632C_Init();
HT1632C_clr();
while(1)
{
lcdwd1(24);
}
}
作者:
2300606886
時(shí)間:
2024-7-26 15:25
這個(gè)代碼看起來(lái)沒有錯(cuò)誤,但需要實(shí)際硬件連接以及確保定義的GPIO口被正確配置才能運(yùn)行。如果在實(shí)際使用中遇到問題,確認(rèn)電路連接、宏定義的指令地址以及GPIO口的正確配置是關(guān)鍵。
作者:
a825563619
時(shí)間:
2024-7-26 17:01
有可能主控不行,也有可能接錯(cuò)線
作者:
nomoreclimbing
時(shí)間:
2024-8-4 15:02
用在TM1681上可以正常點(diǎn)亮,用在ITK16Y23不行
作者:
nomoreclimbing
時(shí)間:
2024-8-4 16:11
由于用了兩個(gè)驅(qū)動(dòng)芯片,因此cs2也要一起連起來(lái),不然就會(huì)不顯示
作者:
hezezeze
時(shí)間:
2024-8-7 16:06
從您給出的代碼來(lái)看,大部分的邏輯和實(shí)現(xiàn)看起來(lái)都是正確的。然而,有幾個(gè)可能引起問題的點(diǎn):
1. **初始化命令**:在`HT1632C_Init`函數(shù)中,您使用了如下命令:
```c
HT1632C_Write_CMD(RC_MASTER_MODE);
```
這個(gè)命令是在設(shè)置HT1632C使用內(nèi)部RC振蕩器,但它在初始化中被調(diào)用兩次。通常,只需要在初始化階段調(diào)用一次。可能您是想在初始化時(shí)同時(shí)設(shè)置為從模式(SLAVE_MODE),所以這里我建議您檢查您的代碼,確保每個(gè)初始化命令只調(diào)用一次。
2. **顯示更新**:`lcdwd1`函數(shù)用于寫入顯示數(shù)據(jù)。這個(gè)函數(shù)的目的是將24個(gè)字符寫入顯示器。然而,從您的代碼中沒有看到數(shù)據(jù)的內(nèi)容是如何生成的。確保在調(diào)用`lcdwd1`函數(shù)之前,您已經(jīng)設(shè)置了顯示內(nèi)容或字符。
3. **時(shí)序和兼容性問題**:確保您的代碼兼容所使用的硬件。不同的硬件可能需要不同的時(shí)鐘周期、引腳配置或初始化命令。
4. **檢查硬件連接**:檢查HT1632C的連接是否正確。確保所有必要的信號(hào)(如CS、WR、RD、DATA)都正確連接到微控制器的相應(yīng)引腳,并確保引腳配置在您的代碼中正確。
5. **檢查錯(cuò)誤處理**:您的代碼中沒有包含錯(cuò)誤處理機(jī)制。在實(shí)際應(yīng)用中,可能需要添加錯(cuò)誤檢查邏輯,比如檢查寫入數(shù)據(jù)是否成功。
最后,為了診斷問題,建議您:
使用串行監(jiān)視器或邏輯分析器來(lái)查看數(shù)據(jù)通信過程,檢查是否有數(shù)據(jù)丟失或錯(cuò)誤。
確認(rèn)硬件設(shè)置,如電源電壓、頻率、引腳拉高/拉低狀態(tài)等是否符合HT1632C的規(guī)格。
清晰地定義顯示內(nèi)容,例如可以使用字符串函數(shù)來(lái)生成或修改數(shù)據(jù)。
如果上述建議沒有解決問題,可能需要更深入地檢查具體的硬件實(shí)現(xiàn)或微控制器與HT1632C的通信細(xì)節(jié)。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1