国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

零基礎學FPGA(十七)新人必進,1602動態電子可調時鐘設計,練一下代碼風格吧

發布時間:2016-2-18 14:14    發布者:designapp
關鍵詞: FPGA , 1602
  之所以取這個標題名呢~感覺這個實驗還是蠻重要的,當初我在學單片機的時候也是通過這個實驗來鞏固了一下自己的代碼風格,當然這個實驗涉及的東西還是挺多的,如果是新手,想要自己設計出來還是有點難度的,當然這個設計目前對我來說不算難了應該,寫這篇文章的目的呢就是想鞏固一下自己的代碼風格,因為以前學習大多是先看懂別人的代碼之后,然后根據自己的理解再敲上一遍,這次不同,這次的代碼是小墨同學沒有參考任何其他教程的情況下,用自己腦子里的東西寫的,自我感覺條理還算清楚,估計新手看起來應該還是比較容易上手的,不過由于小墨同學資歷尚淺,對于資源,速度的問題考慮的過少,沒有對這個設計進行優化,但是想想,以一種直白的方式交給剛入門的同學,避免了優化代碼帶來的一些迷惑,這便是這篇文章的目的了。這篇文章只介紹電子時鐘設計部分,至于1602的其他用法希望各位自行學習~
  現在已經進入了12月,也就是考試月了,對于我這么一個大三的學生來說,專業課鋪天蓋地可以說,再說我們通信專業也不是什么好學的科目,估計未來一個月文章會更新的慢一點。希望大家多多支持~下面我們開始是今天的教學
  這次我們要做的是一個電子時鐘,動態可調并在1602上顯示,那我們就先來了解一下1602.其實液晶這部分感覺都差不多,大家要是會了1602,那么上手12864也不成問題了
  1、操作時序
  


  1602要用到的管腳也就是4個,即
  1、rs數據命令選擇端
  2、wr讀寫控制端
  3、lcden使能信號
  4、8位的數據端口
  而且1602的讀功能我們用不到,所以wr一直置0即可,要控制的就是rs端,數據端和lcden端
  2、寫時序
  由于讀操作我們用不到,直接來看寫操作好了
  


  由上圖得,我們如果要寫命令的話,就要在rs為低電平的時候給數據端送8位命令數據,然后等一段時間后有一個lcden的高脈沖即可使數據有效,注意這個lcden的高脈沖要掩飾一點時間
  3、初始化設置
  


  這里我們要顯示一個2行,16位的液晶,5x7點陣,8位數據接口,不顯示光標
  故初始化的時候我們要進行的操作是送1602這兩個命令,好下面我們開始寫程序
  4、程序設計
  有些人會問,1602的時序圖上的延時怎么操作?這個問題已經有好幾位網友問過我了,這里,我們需要用到狀態機。由于我們的時鐘是50Mhz,一個周期為20ns,對于1602來說這個頻率太高了,因此我們需要分頻。再看看1602的datasheet里的延時參數,這里我們設置供1602的時鐘
  


  做好了時鐘我們就可以來寫狀態機了,首先我們需要把RS拉低,因為我們要對1602進行初始化,然后給1602送初始化數據,即0x38,延時一個時鐘周期之后將使能端拉高。注意這里的一個時鐘周期是我們之前的分頻后的時鐘,大約1ms,然后再等待一個時鐘周期后將lcden拉低,并送光標顯示數據0x3c
  


  接著,按照上述方法設置1603寫一個字符后地址指針加1和顯示清零命令,即0x06和0x01
  


  然后我們需要確定我們的時鐘的時間顯示地址
  


  例如,我想把時鐘的小時的十位寫在04的位置上,這樣我們就需要寫命令給1602,告訴它我們要寫的地址為 0x80 +4 = 0x84,故要給1602送0x84
  


  這樣我們的初始化就結束了,初始化結束之后,我們需要寫數據了。與寫指令不同的是,這里僅需將RS拉高,其他時序不變,下面我們來寫時間,我的思路是先將時分秒寫進去,再利用狀態機循環刷新
  


  分鐘和秒鐘的書寫規則和小時相同,寫完后要回到剛開始寫的地址處進行循環,即0x84
  


  靜態時鐘寫完了,這個時候如果把程序下到板子里,液晶屏上應該顯示“00:00:00”,下面我們讓這個時鐘動起來,這就需要我們令開啟一個進程,專門用來進行時鐘計數,這里要用到分頻電路,這次要分頻1秒鐘
  


  計數完成之后我們需要將時分秒進行處理,因為我們往1602里寫數據一次只能寫1位,故,我們需要把時分秒的十位和各位分開來再送到1602,這里就用到了求模求余算法了
  


  這樣的話我們的時鐘應該就可以動起來了,這里再說一下求模求余算法,例如分鐘是45分,45對10求模即4,送到相應的10位上去,45對10求余,即5,送到相應的個位上去即可。
  除了讓時鐘動起來之外,我們還可以再加一個功能,實現可調,這就需要用到按鍵,功能如下:
  1、鍵1按下時,時鐘停止計時
  2、鍵2、3、4按下時,分別對時分秒進行調整
  3、鍵1再次按下時,時鐘開始計時
  說到按鍵,就要用到按鍵消抖了,這就是前面的知識了,這里不做重復,詳細見源代碼,這里提供部分代碼
  


  接著對相應位進行操作即可
  


  


  這樣我們的時鐘算是設計完成了,至于其他功能,大家可以另行拓展,在這里小墨同學就給大家布置一項作業吧,實現多功能電子時鐘設計,功能如下:
  1、 實現年月日顯示,并按照平年閏年,大月小月計數
  2、實現定時報警功能,即鬧鐘
  3、讓顯示的時間上電的時候從右面慢慢滑進來
  下面是實驗結果測試圖片
  

                               
               
本文地址:http://m.qingdxww.cn/thread-160871-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 全部免费特别黄的视频播放| 玉女性经| 国产精品无码AV天天爽人妻蜜桃| 欧美在线激情| 日韩欧美国产综合| 日本激情视频网站w| 青娱乐综合| 中文字幕第二一区| 中文字幕精品在线观看| 巨污全肉np一女多男| 在线a亚洲视频| 欧美综合在线播放| 色偷偷资源| 99热婷婷国产精品综合| 秋霞影音先锋一区二区| 性生活黄色毛片| 天美传媒影视在线网址| 亚洲天堂免费在线| 护士被老头边摸边吃奶的视频| 一级做a爰片久久毛片免费 | 又粗又大的机巴好爽爽| 麻豆AV福利AV久久AV| 日韩中文字幕精品免费一区| 日韩啪啪网站| 亚洲18gay video| 国产亚洲精品久久久久小| 王晶三级作品| 欧美亚洲国产日韩综合在线播放| 亚洲精品在线观看91| 在线麻豆视频| 欧美深深色噜噜狠狠yyy| 亚洲免费成人网| 午夜久久久精品| 曰批全过程又爽又大又黄| 免费视频精品38| 亚洲精品视频在线播放| 天天操天天干天天拍| 一个人免费视频观看在线www| 久久伊人中文字幕有码| 欧美久久久久| 天天射天|