|
|||||||||||
| 技術(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 |
這是我的1620驅(qū)動(dòng)程序,可就是調(diào)不通,大俠們看看阿 |
| 作者:hape 欄目:ARM技術(shù) |
#include "config.h" #define rs 0x04 #define rw 0x08 #define ep 0x10 uint32 P0; uint8 dis1[] = {"welcome!"}; uint8 dis2[] = {"www.willar.com"}; void DelayNS(uint32 dly) { uint32 i; for(; dly>0; dly--) for(i=0; i<1; i++); } void delay(uint8 ms) { // 延時(shí)子程序 uint8 i; while(ms--) { for(i = 0; i< 250; i++) { DelayNS(0); DelayNS(0); } } } uint32 lcd_status() { uint32 i; i=IO0PIN; i=i>>5; i=i & 0xFF; return i; } uint8 lcd_bz() { // 測(cè)試LCD忙碌狀態(tài) uint8 result; IO0CLR=rs; IO0SET=rw|ep; DelayNS(0); DelayNS(0); P0=lcd_status(); result = (uint8)(P0 & 0x80); IO0CLR=ep; return result; } void lcd_wcmd(uint32 cmd) { // 寫(xiě)入指令數(shù)據(jù)到LCD uint32 Ncmd; Ncmd=~cmd; Ncmd=Ncmd & 0xFF; cmd=cmd<<5; Ncmd=Ncmd<<5; while(lcd_bz()); IO0CLR=rs|rw|ep; DelayNS(0); IO0SET=cmd; IO0CLR=Ncmd; DelayNS(0); DelayNS(0); IO0SET=ep; DelayNS(0); DelayNS(0); IO0CLR=ep; } void lcd_pos(uint8 pos) { //設(shè)定顯示位置 lcd_wcmd(pos | 0x80); } void lcd_wdat(uint32 dat) { //寫(xiě)入字符顯示數(shù)據(jù)到LCD uint32 Ndat; while(lcd_bz()); Ndat=~dat; Ndat=Ndat & 0xFF; dat=dat<<5; Ndat=Ndat<<5; IO0SET=rs; IO0CLR=rw | ep; IO0SET=dat; IO0CLR=Ndat; Ndat=IO0SET; DelayNS(0); DelayNS(0); IO0SET=ep; DelayNS(0); DelayNS(0); IO0CLR=ep; } void lcd_init(void) { //LCD初始化設(shè)定 lcd_wcmd(0x38); // delay(1); lcd_wcmd(0x0C); // delay(1); lcd_wcmd(0x06); // delay(1); lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容 delay(1); } int main (void) {// add user source code uint8 i; PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; // 設(shè)置管腳連接,P0.16設(shè)置為EINT0,P0.20設(shè)置為EINT3 IO0DIR=0x1FFC; lcd_init(); // 初始化LCD delay(10); lcd_pos(4); // 設(shè)置顯示位置為第一行的第5個(gè)字符 i = 0; // while(dis1[i] != '\0') // { // 顯示字符"welcome!" lcd_wdat(0x27); // i++; // } lcd_pos(0x41); // 設(shè)置顯示位置為第二行第二個(gè)字符 // i = 0; // while(dis2[i] != '\0') // { lcd_wdat(0x27); // 顯示字符" www.willar.com " // i++; // } while(1); return 0; } |
| 2樓: | >>參與討論 |
| 作者: hape 于 2005/3/14 3:42:00 發(fā)布:
``````````` 我用的是EasyARM2119大俠們救救我 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |