這里通過三種方法實現了單片機控制字符串的滾動
方法一:向液晶寫入字符串后,連續發送0x1c指令可以是整個屏幕向左滾動,0x18向右滾動這個方法在我上傳的程序中沒有用到
方法二:通過軟件的方法讓液晶的整個屏幕滾動,效果和方法一相同,實現較復雜,不建議使用這種方法在lcd.c文件中封裝成了rolling_screen()函數
方法三:由于上兩種方法會將屏幕的上下兩行同時滾動,無法實現一行滾動一行靜止不動,所以方法三通過:每次打印后對寫入首地址的移動和對字符串指針的移動來實現字符串的滾動效果,這種方法在led.c文件中封裝成了rolling_str()函數,這個函數僅作原理示范,不建議直接調用,
在我的程序中我把這個函數分解后放入了定時器,利用定時器完成每一次刷新,main()函數中使用的就是定時器刷新的方法
另注:time.c文件中定義了延時和定時器初始化函數,是lcd.c的支持文件
關于程序更詳細的說明我放在了PPT中,版本支持位2013+
程序工程使用Keil4建立仿真使用Proteus7.8,連接方式見lcd.h文件關于底層端口的定義
視頻預覽:
0.png (156.5 KB, 下載次數: 51)
下載附件
2019-4-13 15:37 上傳
PPT內容預覽(內含關于1602液晶滾動顯示源程序的詳細講解):
0.png (154.64 KB, 下載次數: 52)
下載附件
2019-4-13 15:34 上傳
0.png (148.42 KB, 下載次數: 39)
下載附件
2019-4-13 15:34 上傳
捕獲.PNG (88.53 KB, 下載次數: 43)
下載附件
2019-4-13 09:18 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (7.28 KB, 下載次數: 63)
下載附件
2019-4-13 15:33 上傳
單片機源程序如下:
0.png (4.9 KB, 下載次數: 51)
下載附件
2019-4-13 15:36 上傳
所有資料51hei提供下載:
ppt(程序詳細講解和實驗現象視頻).rar
(3.46 MB, 下載次數: 22)
2019-4-13 09:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
程序和仿真.rar
(67.66 KB, 下載次數: 18)
2019-4-13 09:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|