4_實(shí)驗(yàn)設(shè)備及字符液晶編程技術(shù)_第1頁
4_實(shí)驗(yàn)設(shè)備及字符液晶編程技術(shù)_第2頁
4_實(shí)驗(yàn)設(shè)備及字符液晶編程技術(shù)_第3頁
4_實(shí)驗(yàn)設(shè)備及字符液晶編程技術(shù)_第4頁
4_實(shí)驗(yàn)設(shè)備及字符液晶編程技術(shù)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)箱的總體介紹 TD2410K 1 實(shí)驗(yàn)箱介紹 由多個(gè)獨(dú)立的功能電路模塊組成 可以自由組合出多個(gè)實(shí)驗(yàn)項(xiàng)目綜合了目前市場(chǎng)的多種最新技術(shù) 非接觸智能IC卡技術(shù) 語音錄放技術(shù) usb技術(shù)等等各模塊之間用撥碼開關(guān)連通 ON表示接通 硬件結(jié)構(gòu)框圖 模塊位置圖 顯示器接口及程序 LCD顯示器 字符液晶編程技術(shù) 字符液晶接口字符液晶常用函數(shù)字符液晶程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)應(yīng)用實(shí)訓(xùn) LCD1602概述 顯示漢字 字符 數(shù)字等讓產(chǎn)品更具有交互性 1602引腳 字符液晶接口說明 時(shí)序 字符液晶特性 液晶顯示器有8位數(shù)據(jù)操作模式和四位數(shù)據(jù)操作模式 在四位數(shù)據(jù)操作模式下采用DB4 DB7作數(shù)據(jù)線 DB0 DB3不用 可與4位或者8位MPU接口 接口由使能信號(hào)E控制 標(biāo)志位BF為模塊內(nèi)部工作狀態(tài)標(biāo)志 MPU訪問模塊時(shí) 首先應(yīng)判斷狀態(tài)標(biāo)志位BF 與MCU接口 8位模式 與AVRMCU接口 4位模式 CAVR液晶編程介紹一 1 聲明與LCD通信端口 asm equ lcd port 0 x18 endasm2 加入lcd h include 在使用液晶顯示器之前 要設(shè)定I O接口地址和包含lcd h頭文件 CAVR液晶編程介紹二 3 與lcd連線方式 LCD AVRPort RS pin4 bit0RD pin5 bit1EN pin6 bit2DB4 pin11 bit4DB5 pin12 bit5DB6 pin13 bit6DB7 pin14 bit7 CAVR液晶編程介紹三 4 LCD低級(jí)函數(shù) void lcd ready void 液晶內(nèi)部操作忙判斷 void lcd write data unsignedchardata 向LCD寫一個(gè)字節(jié)數(shù)據(jù) unsignedcharlcd read byte unsignedcharaddr 向LCD讀一個(gè)字節(jié)數(shù)據(jù) CAVR液晶編程介紹四 5 LCD高級(jí)函數(shù) voidlcd init unsignedcharlcd columns 初始化液晶列數(shù) 光標(biāo)位于0行0列 voidlcd clear void LCD清屏 光標(biāo)位于0行0列 voidlcd gotoxy unsignedcharx unsignedchary 設(shè)定顯示坐標(biāo)X列Y行 voidlcd putchar charc 當(dāng)前位置顯示字符C voidlcd puts char str 當(dāng)前位置顯示字符串 voidlcd putsf charflash str 顯示Flash中字符串 CAVR液晶編程練習(xí)一 include include asm equ lcd port 0 x18 PORTB endasm 定義變量 lcd port為PORTB 此處為匯編宏命令 includechar sss AVR Charflash aaa 16 voidmain void lcd init 16 16列數(shù)據(jù)lcd gotoxy 2 0 lcd putsf Hello 直接顯示字符串只能使用lcd putsf函數(shù)lcd puts sss lcd putsf aaa while 1 字符串StringofChar 定義字符串是用一對(duì)雙引號(hào)括起來的字符序列 這些字符可以是一般的可顯示字符 也可以是某些特殊的控制字符 字符串只能用字符數(shù)組來處理 沒有字符串變量 字符串在內(nèi)存中存放時(shí) 系統(tǒng)將自動(dòng)在字符串的末尾添加一個(gè)字符串的結(jié)束標(biāo)記 0 空字符 碰到第一個(gè) 0 就認(rèn)為字符串處理結(jié)束 字符數(shù)組ArrayofChar 定義charstr 20 字符串保存在SRAM中charflashstring SZPT 字符串保留在FLASH中初始化逐個(gè)為數(shù)組中各元素指定初值字符 charflashstr 4 w e l l 對(duì)一個(gè)字符數(shù)組指定一個(gè)字符串初值 charstr goodmorning charstr goodmorning AVR存儲(chǔ)器 AVR具有兩個(gè)主要的存儲(chǔ)器器空間 數(shù)據(jù)存儲(chǔ)器空間和程序存儲(chǔ)器空間 ATmega16 16KB的Flash 存放程序指令代碼 SRAM數(shù)據(jù)存儲(chǔ)器 32個(gè)通用寄存器 64個(gè)I O存儲(chǔ)器 1024Byte內(nèi)部數(shù)據(jù)SRAM EEPROM數(shù)據(jù)存儲(chǔ)器 512B 保存數(shù)據(jù) 字符串StringofChar 用字符串給字符數(shù)組初始化charst 8 welcome 等價(jià)于charst 8 w e l c o m e 0 注意 這里的st不是一個(gè)字符串變量 而是字符數(shù)組的名字 代表字符數(shù)組在內(nèi)存中的起始地址 是一個(gè)常量 那么這個(gè)賦值表達(dá)式是指將字符串中的每一個(gè)字符依次賦給以st開始的地址單元 字符串的長(zhǎng)度定義charch Good 則數(shù)組ch的元素個(gè)數(shù)是5 而不是4 也就是說 字符串的長(zhǎng)度是雙引號(hào)中所包括的字符個(gè)數(shù)加1 指針和指針變量的概念 內(nèi)存中每個(gè)字節(jié)有一個(gè)編號(hào) 地址 程序中 inti chark i k 編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元 變量是對(duì)程序中數(shù)據(jù)存儲(chǔ)空間的抽象 指針 一個(gè)變量的地址指針變量 專門存放變量地址的變量叫指針變量 2000 指針 指針變量 變量的內(nèi)容 變量的地址 指針與指針變量 指針與指針變量 指針變量的定義 一 基本術(shù)語地址 字節(jié)的編號(hào)直接引用 通過變量名訪問內(nèi)存單元間接引用 通過變量地址訪問內(nèi)存單元指針 就是地址指針變量 存放指針的變量二 指針變量的定義數(shù)據(jù)類型 指針變量 指針變量2 指針變量定義舉例 例如 int p1 p2 char p 基類型 指針變量的標(biāo)志 指針變量名 指針變量的使用 指針變量必須先賦值 再使用main inti 10 int p p i printf d p 取內(nèi)容運(yùn)算符表示 指針變量所指存儲(chǔ)單元 地址 的內(nèi)容 將變量的值送入指針變量指向的存儲(chǔ)單元中 指針變量的使用 main int p1 p2 a b a 10 b 100 P1 取地址運(yùn)算符將變量在內(nèi)存的地址保存在指針變量中 字符串的指針和指向字符串的指針變量 在 語言中 既可以用字符數(shù)組表示字符串 也可用字符指針變量來表示 字符串在內(nèi)存中的起始地址稱為字符串的指針 可以定義一個(gè)字符指針變量指向一個(gè)字符串 定義一 定義并初始化字符指針變量string 用串常量 IloveBeijing 的地址給string賦初值 char string IloveBeijing 定義二 先定義字符指針變量string 再用字符串常量 IloveBeijing 給string賦初值 char string string IloveBeijing 使用時(shí) 系統(tǒng)首先輸出string指向的第一個(gè)字符 然后使string自動(dòng)加 指向的地址加1 使之指向下一個(gè)字符 重復(fù)上述過程 直至遇到字符串結(jié)束標(biāo)志 字符指針變量與字符數(shù)組之比較 雖然用字符指針變量和字符數(shù)組都能實(shí)現(xiàn)字符串的存儲(chǔ)和處理 但二者是有區(qū)別的 不能混為一談 1 存儲(chǔ)內(nèi)容不同 字符指針變量中存儲(chǔ)的是字符串的首地址 而字符數(shù)組中存儲(chǔ)的是字符串本身 數(shù)組的每個(gè)元素存放一個(gè)字符 2 賦值方式不同 對(duì)字符指針變量 可采用下面的賦值語句賦值 char pointer pointer Thisisaexample 而字符數(shù)組 雖然可以在定義時(shí)初始化 但不能用賦值語句整體賦值 下面的用法是非法的 charchar array 20 char array Thisisaexample 非法用法 3 指針變量的值是可以改變的 字符指針變量也不例外 而數(shù)組名代表數(shù)組的起始地址 是一個(gè)常量 而常量是不能被改變的 include include asm equ lcd port 0 x18 PORTB endasm includevoidmain void unsignedchari 0 PORTB 0 x00 DDRB 0 x00 lcd init 8 8列數(shù)據(jù)while 1 lcd gotoxy 0 0 lcd putsf Shenzhen lcd gotoxy 0 1 lcd putsf sec lcd gotoxy 5 1 lcd putchar i 0 x30 delay ms 1000 實(shí)現(xiàn)功能 LCD顯示屏上的顯示位置 DDRAM地址與LCD顯示屏上的顯示位置的對(duì)應(yīng)關(guān)系如下 兩行顯示 利用CodeWizardAVR生成LCD控制程序代碼框架 設(shè)置與LCD通信的端口 生成相應(yīng)代碼為 asm equ lcd port 0 x18 endasm 設(shè)置字符液晶每行顯示的字符個(gè)數(shù) 生成相應(yīng)代碼為 lcd init 8 字符液晶顯示控制的實(shí)戰(zhàn)演練LCDDisplayDesign 設(shè)計(jì)內(nèi)容1 在字符液晶的第一行最左端起顯示 Hi AVR LCD1 c 相關(guān)的程序語句 1 include 包含lcd h頭文件2 asm 宏匯編命令 equ lcd port 0 x18 定義lcd的I O端口變量 lcd port指向PORTB endasm3 lcd init 16 lcd初始化為2行16列顯示方式4 lcd gotoxy 0 0 光標(biāo)定位在lcd的0行0列5 lcd putsf Hi AVR 在光標(biāo)處顯示flash中的字符串6 lcd puts string1 光標(biāo)處顯示保存在SRAM中的字符串變量string1的內(nèi)容7 lcd putsf string2 光標(biāo)處顯示保存在flash中的字符串變量string1r的內(nèi)容 課堂練習(xí)一 液晶顯示編程設(shè)計(jì)內(nèi)容一 在字符液晶的第一行最左端起顯示 Hi AVR 液晶顯示編程設(shè)計(jì)內(nèi)容二 在字符液晶第二行的每隔1秒循環(huán)顯示數(shù)字0 9 課堂練習(xí)二 液晶顯示編程設(shè)計(jì)內(nèi)容三 在字符液晶第二行的最左邊每隔1秒循環(huán)顯示時(shí)鐘的秒數(shù)數(shù)字0 59 提示 1 秒數(shù)數(shù)字0 59是數(shù)字量 不能直接顯示 需將其轉(zhuǎn)換

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論