date:2011.08.15 made by ac
1、 關於ds1302時鐘ic與12864的時間顯示:為什麼ds1302工作正常,而12864lcd顯示時卻不能正常顯示出秒數呢?(解決問題分析:首先必須確定硬體沒問題,其次是,資料處理問題,最後是時隙的控制)(基於這個思路,我分析了電路,分析了程式….)
經自己分析,發現,如果lcd如果沒有顯示很有可能,「lcd正常工作而你對lcd取資料時,你的資料位址不正確的話,這時候,你的程式亂了,自然,你的顯示也就亂了~~謹記」,我就是遇到這個問題,我把位址好好整理了,lcd正常顯示了,可是,隨之而來的就是我提到的那個問題(秒數顯示不正確啊!!!),我硬體除錯,發現顯示的資料有一定的規律,這是,我懷疑是時間的問題!!!看看我的程式:
displaylistchar(1, 2, temp); ,很明顯的呀,這裡的顯示之後,下面還有很多延時,
write_byte_address(25,'p'); 如果,你的延時超過一秒的話,那豈不是影響到下
k=read_byte_address(25); 一秒的顯示,且12864的資料讀取需要一定的時間呢!
delay400ms(); 把語句displaylistchar(1, 2, temp);後面的稍微去掉
delay400ms(); 即可得到正確的顯示!
displayonechar(3,4,k);
delay400ms();
總結:顯示時一定要注意資料的正確操作及時間延時的控制(最好不要超過200ms,否則顯示不正確哦!!!!),
2、當你用全域性替換時,一定要注意,把程式弄亂了(假如傳參變數和全域性變數的名字一樣的時候,假如你要進行全域性變數的字元替換,這時候,你會把傳參變數的字元也換掉了)
3、假如你設定的顯示的字元個數為16個,而你定義的數字長度為8,則程式會出錯,程式會把那些亂碼傳遞個lcd的ram導致lcd不能正常工作!!!!
eg: uchar temp[8];(出錯)uchar temp[16];(ok)displaylistchar(1, 2, temp);
4、昨天的第六問,解決了,原來是儲存器的讀寫需要一定的時間(5~10ms),調好這個時間,讀寫就方便呢!!!!!
物件導向程式設計的思想(3)
開閉原則是物件導向開發中所有設計原則的核心 名稱 開閉原則 open closed principle ocp 核心 乙個物件對擴充套件開放,對修改關閉。換言之 程式中的實體物件 模組 類 方法等 應該可以進行擴充套件,但不應該可以修改。對類的修改是通過增加 實現的,而不能通過修改 實現。例子 例如...
程式設計思想
pop面向過程的程式設計思想把電腦程式看作是一組命令的集合,即一組函式的順序執行。面向過程設計時,將整個程式切分成幾個函式模組,每乙個模組負責解決乙個問題。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的方法 method 物件導向的程式設計把電腦程式視為一組物件的集合,每個物件都可以...
java程式設計思想英文版閱讀3
k s vt.追,使 跑 vi.追,使 跑 vt.1.tearscourseddown his cheeks.眼淚從他的面頰上流下。vi.1.theycoursedin the forest.他們在樹林中狩獵。n.1.she took acoursein philosophy.她選讀了一門哲學課程。...