freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)(編輯修改稿)

2025-01-06 19:33 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 一行顯示算式,一行顯示結(jié)果,所以本設(shè)計(jì)采用 TC1602 字符型液晶模塊進(jìn)行顯示。 TC1602 的工作原理: TC1602 顯示模塊采用點(diǎn)陣圖形來(lái)顯示字符,顯示分為 2 行、每行 16 個(gè)字符或 1 行 16 個(gè)字符兩種模式,常用模式為 2 行 16 個(gè)字符。它有 16 個(gè)引腳,其引腳和電路連接如圖 所示,引腳功能如下: 第 1 腳 GND:電源地。 第 2 腳 Vcc:接 +5V 電源。 第 3 腳 VL:液晶顯示器對(duì)比度調(diào)整端。 第 4 腳 RS:寄存器選擇信號(hào)線。高電平時(shí)進(jìn)行讀操作,低電平時(shí)選擇指令寄存器。 第 5 腳 RW:讀寫信號(hào)線。高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。 第 6 腳 E:使能端,當(dāng) E 端由高電平跳變成低電平時(shí),可以寫入數(shù)據(jù)。 第 7~ 14 腳: 8 位雙向數(shù)據(jù)線 D0~ D7。 第 15 腳 BLA:背光電源正極輸入端。 第 16 腳 BLK:背光電源負(fù)極輸入端。 BLA 接正, BLK 接負(fù)便會(huì)點(diǎn)亮背光燈。 圖 TC1602 電路圖 圖中 7~ 14 腳接單片機(jī)的 P0 口。 15 TC1602 液晶顯示模塊內(nèi)置有字符發(fā)生 ROM,字符發(fā)生 RAM 和字符顯示 RAM,字符發(fā)生存儲(chǔ)器已經(jīng)存儲(chǔ)了 192 個(gè)不同的點(diǎn)陣字符圖形,每一個(gè)字符都有固定的代碼,我們可以通過(guò)查表找出所需要顯示的字符的地址讓其在液晶中顯示出來(lái)。 [1] DS1302 實(shí)時(shí)時(shí)鐘電路的設(shè)計(jì) 在本設(shè)計(jì)中, DS1302 時(shí)鐘電路屬于一個(gè)系統(tǒng)擴(kuò)展模塊,是一個(gè)附加功能,它跟計(jì)算器是分離開來(lái)的,在時(shí)間和硬件條件的允許下,我決定添加這個(gè)模塊,讓我的計(jì)算器除了能進(jìn)行計(jì)算外,還能當(dāng)電子表使用,使系統(tǒng)功能更加完善。計(jì)算器和電子表兩種模式通過(guò)一個(gè)獨(dú)立按鍵來(lái)進(jìn)行切換,在同一塊液晶屏上顯示。 實(shí)時(shí)時(shí)鐘電路 DS1302是 DALLAS 公司的一種具有涓細(xì)電流充電能力的電路,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能 , 采用普通 晶振 , 工作電壓為 ~ 。它可以對(duì)年、月、日、周、日 、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能 。在本設(shè)計(jì)中,我們?cè)O(shè)計(jì)的只是電子表,所以用上的只有時(shí)、分、秒,這似乎有點(diǎn)大材小用了,我爭(zhēng)取在以后對(duì)系統(tǒng)進(jìn)一步擴(kuò)展,比如做個(gè)萬(wàn)年歷,使時(shí)鐘芯片得到充分的利用。 其引腳和電路連接如圖 ,引腳功能如下: 第 1腳 Vcc2:主電源。 第 2腳 X第 3腳 X2:振蕩源,外接 的晶振。 第 4腳 GND:地線。 第 5腳 RST :復(fù)位 /片選線。 16 第 6腳 I/O:串行數(shù)據(jù)輸入 /輸出端(雙向 )。 第 7腳 SCLK:串行時(shí)鐘輸入。 第 8腳 Vcc1:后背電源。 圖 DS1302電路圖 一般的電子表都具有設(shè)置時(shí)間的功能,我的也不例外。在此模塊中,我選擇使用 4 個(gè)獨(dú)立式按鍵,分別是: “ 設(shè)置 ” 、 “ 確認(rèn) ” 、 “ +” 、 “ ” ,用來(lái)對(duì)時(shí)間進(jìn)行設(shè)置。設(shè)置方法是:按設(shè)置鍵 1 下,可按 “ +” 、 “ ” 對(duì) “ 小時(shí) ” 進(jìn)行設(shè)置,設(shè)置完畢按確認(rèn)鍵退出;同理,按設(shè)置鍵 2 下對(duì) “ 分 ” 進(jìn)行設(shè)置,按設(shè)置鍵 3 下對(duì) “ 秒 ” 進(jìn)行設(shè)置。 獨(dú)立式按鍵是指直接用一根 I/O 口線構(gòu)成的單個(gè)按鍵電路,每個(gè)獨(dú)立式按鍵單獨(dú)占有一根 I/O 口線,每根 I/O 口線上的按鍵的工作狀態(tài)不會(huì)影響其他 I/O 口線的工作狀態(tài)。獨(dú)立式按鍵接口電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單。其電路設(shè)計(jì)如圖 所示。 圖 時(shí)間設(shè)置按鍵電路 17 計(jì)算器的硬件電路原理圖 圖 計(jì)算器硬件電路原理圖 18 4. 計(jì)算器的軟件系統(tǒng)設(shè)計(jì) 本設(shè)計(jì)需單片機(jī)硬件電路及軟件編程相結(jié)合, 在單片機(jī)的應(yīng)用系統(tǒng)程序設(shè)計(jì)時(shí),常用的是匯編語(yǔ)言和 C 語(yǔ)言。本設(shè)計(jì)采用 C 語(yǔ)言進(jìn)行程序的編寫。 C 語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備了匯編語(yǔ)言的功能。 C 語(yǔ)言是為了能夠勝任系統(tǒng)程序設(shè)計(jì)的要求而開 發(fā)的,因此有很強(qiáng)的表達(dá)能力,能夠用于描述系統(tǒng)軟件各方面的特性。它具有較高的可移植性,提供了種類豐富的運(yùn)算符和數(shù)據(jù)類型,極大地方便了程序設(shè)計(jì)。同時(shí)它具有豐富的庫(kù)函數(shù),運(yùn)算速度快、編譯效率高,且可以直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制。它具有完善的模塊程序結(jié)構(gòu),因此在軟件開發(fā)中可以采用模塊化程序設(shè)計(jì)方法。目前,使用 C 語(yǔ)言進(jìn)行程序設(shè)計(jì)已成為軟件開發(fā)的主流。 [5] 主模塊程序的設(shè)計(jì) 主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有 “ 自上而下 ” 和 “ 自下而上 ” 兩種方式, “ 自上而下 ” 法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程 序最終功能實(shí)現(xiàn)的多少與好壞。 本設(shè)計(jì)的主功能是計(jì)算器,而不是電子表,電子表只是在計(jì)算器功能順利完成的基礎(chǔ)上附加的功能,因此在設(shè)計(jì)的時(shí)候要分清主次,系統(tǒng)一開機(jī)進(jìn)入的應(yīng)該是計(jì)算模式,而不是電子表模式,用戶可以根據(jù)自己的需要通過(guò)模式切換鍵進(jìn)行兩者的切換。本設(shè)計(jì)的主模塊的程序流程圖如圖 所示。 19 N Y N Y 圖 主模塊程序流程圖 鍵盤掃描模塊程序的設(shè)計(jì) 矩陣按鍵掃描程序是一種節(jié)省 I/O 口的方法 ,按鍵數(shù)目越多節(jié)省 I/O 口就越可觀。鍵盤掃描模塊程序的 流程圖如圖 所示 。 鍵盤掃描子程序應(yīng)具有以下功能: ( 1)判斷有無(wú)鍵按下,若有則計(jì)算鍵值。其方法為:行輸出口輸出全為 0,讀列輸入口信息,若列輸入值為全 1,則說(shuō)明無(wú)鍵按下;若不為全 1,開始 初始化液晶屏、 DS1302 及相關(guān)變量 計(jì)算模式 判斷模式切換鍵是否按下 電子表模式 判斷模式切換鍵是否按下 返回 20 則說(shuō)明有鍵按下,并計(jì)算鍵值。 ( 2)消除按鍵的抖動(dòng)。在按鍵的使用過(guò)程中,由于彈性作用的影響按鍵的機(jī)械觸電在閉合及斷開的瞬間都會(huì)有抖動(dòng)現(xiàn)象,即不能馬上實(shí)現(xiàn)按鍵的完全閉合或斷開,從而使輸入電壓信號(hào)也出現(xiàn)抖動(dòng)現(xiàn)象,抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為 5ms~ 10ms。但實(shí)際應(yīng)用中,應(yīng)大于 20ms,否則,會(huì)導(dǎo)致按一次做多次處理 ,影響程序的正常執(zhí)行。 N Y N Y N Y 圖 鍵盤掃描模塊程序流程圖 開始 是否有鍵按下 消抖 確實(shí)有鍵按下 判斷并計(jì)算鍵號(hào),執(zhí)行相應(yīng)命令 按鍵是否釋放 返回 21 (3)判斷按鍵是否釋放。計(jì)算出閉合鍵的鍵值后,再判斷按鍵是否釋放。若按鍵釋放則等待;若鍵已釋放,則再延時(shí)消抖。 (4)命令處理。根據(jù)閉合鍵的鍵值,程序應(yīng)完成該鍵所設(shè)定的功能。 [2] 運(yùn)算模塊程序的設(shè)計(jì) 在此模塊中,要實(shí)現(xiàn)“加”、“減”、“乘”、“除”四種整數(shù)的運(yùn)算,我們需要定義三個(gè)數(shù): a、 b、 c ,類型為長(zhǎng)整型( 2147483648~ +2147483647);其中 a 為第一個(gè)數(shù), b 為第二個(gè)數(shù), c 為兩數(shù)運(yùn)算的結(jié)果。本設(shè)計(jì)還要求可以根據(jù)需要進(jìn)行連續(xù)多次的運(yùn)算,即把 c 的值賦給 a,輸入運(yùn)算符,再輸入b,按下“ =”號(hào),再得到 c,再賦給 a,以此反復(fù)。 在運(yùn)算中 a 的值有可能是負(fù)數(shù),而 b 必定是正數(shù),所以在進(jìn)行“加”、“減”、“乘”三種運(yùn)算時(shí)都可能產(chǎn)生溢出,都需要進(jìn)行報(bào)錯(cuò);在除法運(yùn)算時(shí),若除數(shù)為 0,也需要報(bào)錯(cuò)。 設(shè) d=+2147483647, e=2147483648,判斷溢出的方法是: ( 1)加法:當(dāng) 0ad 時(shí),若 bda,則溢出; ( 2)減法:當(dāng) ea0 時(shí),若 bae,則溢出; ( 3)乘法:當(dāng) 0ad 時(shí),若 bd/a,則溢出; 當(dāng) ea0 時(shí),若 be/a,則溢出; 需要注意的是,在本設(shè)計(jì)中除法運(yùn)算時(shí)為了保留四位小數(shù)需對(duì) c 轉(zhuǎn)化為float 型并進(jìn)行 10000 的操作,我們可以想象當(dāng) c + 時(shí), c 擴(kuò)大一萬(wàn)倍就不再屬于長(zhǎng)整型的范圍了,這就產(chǎn)生了溢出錯(cuò)誤。為了不讓這種情況發(fā)生,本設(shè)計(jì)規(guī)定了當(dāng) c + 或 c 時(shí),結(jié)果顯示不保留小數(shù);當(dāng) c+ 或 c 時(shí),結(jié)果顯示保留四位 22 小數(shù)。運(yùn)算模塊程序流程圖如圖 所示。 N Y Y N 圖 運(yùn)算模塊程序流程圖 顯示模塊程序的設(shè)計(jì) 在本設(shè)計(jì)中,液晶只用顯示字符,不需要顯示漢字或圖形,且需要顯示的字符在 TC1602 液晶模塊內(nèi)置的字符發(fā)生存儲(chǔ)器里都有,在編寫程序時(shí),只要查表就可得到相應(yīng)字符的代碼,比較方便。 顯示程序的流程圖如圖 所示。 開始 判斷是哪個(gè)運(yùn)算符 加 減 乘 除 除數(shù)是否為0 運(yùn)算結(jié)果是否溢出 數(shù)值送顯示緩沖區(qū) 錯(cuò)誤信息送顯示緩沖區(qū) 23 N Y Y N Y 圖 顯示程序流程圖 在這個(gè)模塊中,我們需要了解液晶的基本操作時(shí)序 —— 寫指令和寫數(shù)據(jù)。寫指令:輸入: RS=L, RW=L, D0~ D7=指令碼, E=高脈沖;輸出:無(wú)。寫數(shù)據(jù):輸入: RS=H, RW=L, D0~D7=數(shù)據(jù), E=高脈沖;輸出:無(wú)。 4. 5 DS1302 實(shí)時(shí)時(shí)鐘模塊程序的設(shè)計(jì) 從前面我們已經(jīng)了解到了時(shí)鐘芯片的功能很強(qiáng)大,設(shè)計(jì)這部分程序前,開顯示 液晶初始化 判斷是否顯示字符 送地址 送數(shù)據(jù) 相應(yīng)功能的設(shè)置 判斷是否顯示完 返回 24 我們必須對(duì) DS1302 有關(guān)日歷、時(shí)間的寄存器進(jìn)行深入的了解。在 本設(shè)計(jì)中,我們只用到了時(shí)間,所以我們?cè)谶@里就只對(duì)時(shí)間寄存器進(jìn)行解釋,時(shí)( 85H、84H)、分( 83H、 82H)、秒( 81H、 82H)寄存器及控制寄存器( 8FH、 8EH)介紹如表 所示。 表 時(shí)、分、秒、控制寄存器介紹 讀寄存器 寫寄存器 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 范圍 81H 80H CH 10 秒 秒 00~59 83H 82H 10 分
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1