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

正文內(nèi)容

基于linux平臺(tái)c語(yǔ)言的計(jì)算器設(shè)計(jì)(編輯修改稿)

2024-12-18 15:28 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 C56800uF/35VR210KVSC6 圖 36. 可擴(kuò)流過(guò)壓保護(hù) 5V穩(wěn)壓電源 綜上所述,方案一電路簡(jiǎn)單,而且已符合本次設(shè)計(jì)的要求,再加上第二種方案所用元件較多,性能價(jià)格比不高,所以我們選擇方案一,基于本次設(shè)計(jì)我們需要5V和 12V電源。 11 鍵盤設(shè)計(jì) 方案一:獨(dú)立鍵盤。獨(dú)立鍵盤為一端接地,另一端接 I/O 口,并且要接上拉電阻。這種鍵盤的硬件都很容易實(shí)現(xiàn),但 每一個(gè)按鍵就要用一個(gè) I/O 口,非常的浪費(fèi)單片機(jī)的 I/O 口資源,不適合本次設(shè)計(jì)。 方案二:通過(guò) PS2 協(xié) 議 用鍵盤同單片機(jī)相接,從而實(shí)現(xiàn)單片機(jī)與鍵盤通信。其電路如圖 18 所示?,F(xiàn)在 PC 機(jī)廣泛采用的 PS/2 接口為 miniDIN 6 引腳的連接器。 1—數(shù)據(jù)線( DATA); —未用; 3—電源地( GND); 4—電源( +5 V); 5—時(shí)鐘( CLK); 6—未用。 圖 37. 鍵盤與單片機(jī)接口圖 由此圖可知 ,使用鍵盤硬件結(jié)構(gòu)比較簡(jiǎn)單 ,但鍵盤的體積太大 ,所以此系統(tǒng)不采用此方案。 方案三 :自制編碼鍵盤。編碼鍵盤的電路如圖 19 所示,這種鍵盤有編程簡(jiǎn)單,占用資源少,但其硬件比較復(fù)雜,要用很多的二極管,不是很理想。 圖 38. 自制編碼鍵盤電路圖 12 方案四: 4*4 矩陣式鍵盤。其電路圖如圖所示,這種鍵盤的硬件簡(jiǎn)單,使用的I/O 口也不多,而且這種鍵盤的編程方法已很成熟。所以本次設(shè)計(jì)采用這種矩陣式鍵盤。其電路圖如圖 圖 39. 4*4 矩陣式鍵盤電路圖 顯示電路的設(shè)計(jì) 顯示電路目前市場(chǎng)上有以下方案選擇: 方案一:數(shù)碼管顯示方案。數(shù)碼管顯示使用兩個(gè)四位一體動(dòng)態(tài)數(shù)碼管顯示方案,此設(shè)計(jì)電路如 圖 21 所示。采用動(dòng)態(tài)數(shù)碼管顯示,具有程序簡(jiǎn)單, 對(duì)外界環(huán)境要求低,易于維護(hù),同時(shí)其精度比較高,精確可靠,操作簡(jiǎn)單。顯示直觀的特點(diǎn)。但只能顯示數(shù)字和一些代碼,不能顯示漢字及一些常用的符號(hào),且硬件設(shè)計(jì) 較復(fù)雜。 方案二:采用漢字圖形點(diǎn)陣液晶顯示器顯示方案。 RT12864M 漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形。供電電源為 ~+5V(內(nèi)置升壓電路,無(wú)需負(fù)壓 ),能采用并行和串行兩種通信方式。并有光標(biāo)顯示、畫(huà)面移位、自定義字符、睡眠模式等功能。 13 A11B7C4D2E1F10G5H3112283946JP2Q129012Q179012Q189012Q199012VCC VCC VCC VCCR49 10KR50 10KR51 10KR53 10KQ59012Q69012VCC VCC VCC VCCR42 10KR46 10KR47 10KR48 10KKBIT1KBIT2KBIT3KBIT4KBIT5KBIT6KBIT7KBIT8A11B7C4D2E1F10G5H3112293846R57Component_1Q39012Q49012D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 圖 14 4 軟件設(shè)計(jì) 本設(shè)計(jì)中采用 C 語(yǔ)言對(duì)單片機(jī)進(jìn)行編程。采用的是自下而上的設(shè)計(jì)方式,先設(shè)計(jì)出每一個(gè)模塊(子程序),然后再慢慢擴(kuò)大,最后組成整個(gè)系統(tǒng)。 液晶顯示設(shè)計(jì) 本次設(shè)計(jì)我采用液晶來(lái)作顯示模塊。對(duì)這種器件只要會(huì)看時(shí)序圖,那么所有的問(wèn)題都會(huì)迎難而解。其時(shí)序圖如圖 圖 41 液晶讀時(shí)序圖 圖 42 液晶寫(xiě)時(shí)序圖 15 由時(shí)序圖我們可以寫(xiě)出液晶的初始化函數(shù)、功能設(shè)置函數(shù)、清屏函數(shù)、寫(xiě)指令函數(shù)、寫(xiě)數(shù)據(jù) 函數(shù)。 //LCD 初始化 // void lcd_int() { ret=0。 delay(10)。 ret=1。 _nop_()。 psb=1。 //將 PSB 置 1,通信方式為 8BIT 數(shù)據(jù)并口 // _nop_()。 } //LCD 功能設(shè)置 // void lcd_set() { mand=0x30。 //基本指令集 // write_mand(mand)。 mand=0x01。 write_mand(mand)。 mand=0x06。 write_mand(mand)。 mand=0x0c。 write_mand(mand)。 } //清屏程序 // void clear_lcd () { 16 mand=0x01。 write_mand(mand)。 mand=0x34。 write_mand(mand)。 mand=0x30。 write_mand(mand)。 } //寫(xiě)指令程序 // void write_mand(uchar mand) { delay(5)。 rs=0。 rw=0。 P0=mand。 en=1。 _nop_()。 _nop_()。 en=0。 } //寫(xiě)數(shù)據(jù)程序 // void write_data(uchar data0) { delay(5)。 rs=1。 rw=0。 P0=data0。 en=1。 _nop_()。 _nop_()。 17 en=0。 } 鍵盤輸入設(shè)計(jì) 這里我 先用 4*4 矩陣式鍵盤。鍵盤掃描函數(shù)如下: //鍵掃描程序 // uchar keyscan() {uchar scancode,tmpcode。 P1=0xf0。 // 行全為 0 if((P1amp。0xf0)!=0xf0) //有鍵按下 {delay(100)。 //延時(shí)去抖動(dòng) if((P1amp。0xf0)!=0xf0) //判是否真的有鍵按下 {scancode=0xfe。 //逐 行掃描 while((scancodeamp。0x10)!=0) {P1=scancode。 if((P1amp。0xf0)!=0xf0) //本行有鍵按下 {tmpcode=(P1amp。0xf0)|0x0f。 //返回特征字節(jié)碼 ,為 1 的位即對(duì)應(yīng)于行和列 return((~scancode)+(~tmpcode))。 } else scancode=(scancode1)|0x01。 //行掃描碼左移一位 } } } return(0)。 //無(wú)鍵按下 ,返回值為 0 } 計(jì)算器函數(shù)設(shè)計(jì) 計(jì)算器的設(shè)計(jì)是本次設(shè)計(jì)的重點(diǎn)。因?yàn)榭紤]到該硬件中只有 16 個(gè)按鍵,所以我采用了按鍵復(fù)用的方式來(lái)解決這一難題。這 16 個(gè)鍵分別是 0~9 十個(gè)數(shù)字鍵。四個(gè)運(yùn)算符號(hào)鍵,一個(gè)小數(shù)點(diǎn)鍵,一個(gè)多功能鍵。這個(gè)多功能鍵單擊時(shí)為 “=”,雙擊時(shí)為 18 請(qǐng)零鍵,三擊時(shí)為運(yùn)算類型選擇鍵。在待機(jī)時(shí),該計(jì)算器顯示萬(wàn)年歷,如果要進(jìn)行計(jì)算則按任意鍵 即可進(jìn)入計(jì)算界面。默認(rèn)的計(jì)算是加減乘除,如果說(shuō)要進(jìn)行加減乘除以外的運(yùn)算,那么就三鍵等號(hào)鍵,就可進(jìn)入運(yùn)算類型選擇模式。 程序流程圖 開(kāi) 始液 晶 初 始 化 , 鬧 鐘 初 始 化 , 定 時(shí) 器 初 始 化1 鍵 按 下 ?否是是否開(kāi) 定 時(shí) 器關(guān) 鬧 鐘0 鍵 按 下 ?調(diào) 鬧 鐘 鍵 掃 鍵處 理 程 序否否計(jì) 算 器 工 作 模 式初 始 化3 鍵 按 下 ?是“ = ” 連 續(xù) 按 下 四 次 ?調(diào) 計(jì) 算 器 鍵 掃鍵 處 理 程 序返 回 圖 43 主程序流程圖 19 顯 示 開(kāi) 始L C D初 始 化相 應(yīng) 功 能設(shè) 置送 地 址送 數(shù) 據(jù)返 回顯 示 漢 字 或A C S I I 碼相 應(yīng) 功 能設(shè) 置送 行 地 址和 列 地 址送 數(shù) 據(jù)顯 示 圖 形是否是是否否是 否顯 示 完是 否顯 示 完是否 圖 44 顯示程序流程圖 20 圖 4 5 鍵掃程序流程圖 21 附 錄 C 語(yǔ)言程序 include include include include define uchar unsigned char define uint unsigned int define ulong unsigned long sbit rs=P2^0。 sbit rw=P2^1。 sbit en=P2^2。 sbit psb=P2^3。 sbit ret=P2^5。 sbit rd=P3^7。 sbit s=P1^0。 sbit s1=P1^4。 sbit s2=P1^5。 sbit s3=P1^6。 sbit s4=P1^7。 uchar count,s1num。 unsigned int nin,ss。 char yue,re,qi,shi,fen,miao。 uchar dshi,dfen,dmiao,ling,aa,t1,p。 uchar mand,data0,data1,data2,0,j,l。 unsigned char mand,data1,data2,0,bb,bb0,aa,cc,i,yun。// uchar lcdH,lcdL,key。 float ds,m,k。 ulong ds0。 22 bit flag,flag1,flag2,flag3,flag4。 uchar disbuf[9]={0}。 //定義顯示緩沖區(qū) // uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e}。 uchar code table1[]={0xc8,0xd5,0xd2,0xbb,0xb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9}。 //日 ~六 // uchar code table2[]={0x32,0x30,0x30,0x39,0xc4,0xea,0x30,0x35,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦

基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)-資料下載頁(yè)

【總結(jié)】電》