|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)幫我看看這段HT1621c程序. |
| 作者:liushaolin 欄目:單片機(jī) |
#include <Intrins.h> #include <AT89X51.H> #include <ABSACC.H> #define TRUE 1 #define FALSE 0 #define BIAS 0x52 //LCD 1/3bias #define XTAL 0x30 //LCD 時(shí)鐘源32K #define WDTDIS 0x0A //LCD 看門狗禁止 #define TMDIS 0x08 //LCD 禁止時(shí)基輸出 #define SYSEN 0x02 //LCD 打開系統(tǒng)振蕩 #define LCDON 0x06 //打開LCD偏置發(fā)生器 #define LCDOFF 0X04 //關(guān)閉LCD偏置發(fā)生器 #define SYSDIS 0x00 //關(guān)閉LCD系統(tǒng)振蕩 #define SOMENOP _nop_();_nop_();_nop_();_nop_(); sbit LIGHT = P0^0 ;//LCD的背景燈 sbit CS = P0^1 ;//LCD的CS線 sbit READ = P0^2 ;//LCD的READ線 sbit WRITE = P0^3 ;//LCD的WRITE線 sbit SDATA = P0^4 ;//LCD的DATA線 typedef unsigned CHAR BYTE ; void send1621com(unsigned CHAR command) { CHAR i,com; com = 0x80; CS = 0; for(i=0; i<4; i++)//發(fā)送1000 { SDATA = (bit)(com & 0x80); WRITE = 0; SOMENOP WRITE = 1; SOMENOP com<<=1; } for(i=0; i<8; i++) //發(fā)送命令 { SDATA = (bit)(command & 0x80); WRITE = 0; SOMENOP WRITE = 1; SOMENOP command<<=1; } WRITE = 1; CS = 1; SDATA = 1; } void send1621data(unsigned CHAR address,unsigned CHAR bytedata) { CHAR i; //先發(fā)送1 CS = 0; SDATA = 1; WRITE = 0; SOMENOP WRITE = 1; SOMENOP address = address | 0x40; //合并字符01+地址 for(i=0; i<8; i++) //發(fā)送兩個(gè)位的命令和六位的地址 { SDATA = (bit)(address & 0x80); WRITE = 0; SOMENOP WRITE = 1; SOMENOP address<<=1; } for(i=0; i<8; i++) //寫入八位數(shù)據(jù) { SDATA = (bit)(bytedata & 0X01); WRITE = 0; SOMENOP WRITE = 1; SOMENOP bytedata>>=1; } WRITE = 1; CS = 1; SDATA = 1; } void initlcd() { send1621com(BIAS); send1621com(XTAL); send1621com(WDTDIS); send1621com(TMDIS); send1621com(SYSEN); send1621com(LCDON); } void clearlcd() { unsigned CHAR i; for(i=0; i<32; i++) { send1621data(i,0); i++; } } main() { P0=0xff; //LIGHT = 0;//打開背景燈 initlcd(); clearlcd(); send1621data(0,0x08);//這處按LCD廠商給我的真值表應(yīng)該是顯示一個(gè)筆劃的,可調(diào)試時(shí)卻顯示了兩個(gè)筆劃.我的程序錯(cuò)了嗎? while(1); } 請(qǐng)哪位大俠幫我看看這段程序吧. |
| 2樓: | >>參與討論 |
| 作者: liushaolin 于 2005/5/11 11:03:00 發(fā)布:
ding up |
|
| 3樓: | >>參與討論 |
| 作者: cxd731 于 2005/5/11 11:09:00 發(fā)布:
你應(yīng)該先向大家介紹一下你的硬件架構(gòu) 你應(yīng)該先向大家介紹一下你的硬件架構(gòu),光看程序沒有意義 |
|
| 4樓: | >>參與討論 |
| 作者: xc_cz 于 2005/5/11 11:13:00 發(fā)布:
我覺的應(yīng)該顯示一個(gè)點(diǎn)啊。 |
|
| 5樓: | >>參與討論 |
| 作者: liushaolin 于 2005/5/11 12:01:00 發(fā)布:
ding LCD和89S51硬件接線: CS: P0^1 ;//LCD的CS線 RD: P0^2 ;//LCD的READ線 WR: P0^3 ;//LCD的WRITE線 DATA: P0^4 ;//LCD的DATA線 IRQ沒用 send1621data(0,0x08);//這處按LCD廠商給我的真值表應(yīng)該是顯示一個(gè)點(diǎn)的,可調(diào)試時(shí)卻顯示了兩個(gè)點(diǎn) |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |