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

正文內(nèi)容

畢業(yè)設(shè)計-基于單片機的簡易計算器的設(shè)計-資料下載頁

2024-12-01 19:33本頁面

【導(dǎo)讀】由于單片機體積小、價格低、可靠性高、適用面寬以及有其本身的。指令系統(tǒng)等諸多優(yōu)勢,在各個領(lǐng)域、各個行業(yè)都得到了廣泛應(yīng)用。本科院校都開設(shè)了關(guān)于單片機原理與應(yīng)用方面的課程。并在計算器順利完成的基礎(chǔ)上,對系統(tǒng)進行了簡單的擴展,增。加了電子表功能,使系統(tǒng)完善化和多功能化。

  

【正文】 urn temp1。 } void ds1302_init() //ds1302 初始化 { write_ds1302(0x8e,0x00)。 //wp 為 0,允許寫操作 delay(5)。 write_ds1302(0x84,0x12)。 //寫入小時 12 點 delay(5)。 write_ds1302(0x82,0x30)。 // 寫入分 30 分 delay(5)。 write_ds1302(0x80,0x00)。 //寫入秒 00 秒 delay(5)。 write_ds1302(0x8e,0x80)。 //WP 為 1,禁止寫操作 } void check() //判忙函數(shù) { do{ P0=0xFF。 rs=0。 rw=1。 //讀 rs rw 的值為 01 lcden=0。 //E=0,禁止讀寫 delay(1)。 //等待,液晶顯示器處理數(shù)據(jù) lcden=1。 //E=1,允許讀寫 }while(busy==1)。 //判斷是否為空閑, 1 為忙, 0 為空閑 } void write_(uchar ) //LCD 寫指令函數(shù) { P0=。 rs=0。 rw=0。 lcden=0。 check()。 36 lcden=1。 } void write_date(uchar date) //LCD 寫數(shù)據(jù)函數(shù) { P0=date。 rs=1。 rw=0。 lcden=0。 check()。 lcden=1。 } void lcdinit() //LCD 初始化 { delay2(2)。 write_(0x38)。 //設(shè)定 DDRAM 地址, 5*7 點陣, 8 位數(shù)據(jù)接口 delay1(4)。 write_(0x38)。 //(硬件中必須有,否則初始化不完整;軟件仿真時可以沒有 ) delay1(4)。 write_(0x0c)。 //開顯示,光標(biāo)關(guān),不閃爍 delay1(10)。 write_(0x06)。 //增量方式不移位 delay1(4)。 write_(0x80)。 //設(shè)置數(shù)據(jù)地址指針 delay1(4)。 write_(0x01)。 //清屏 delay1(10)。 } void init() //相關(guān)變量初始化 { lcden=1。 delay(1)。 i=0。 j=0。 a=0。 //第一個參與運算的數(shù) b=0。 //第二 個參與運算的數(shù) c=0。 //a 與 b 的運算結(jié)果 flag=0。 //flag 表示是否有符號鍵按下, fuhao=0。 // fuhao 表示按下的是哪個符號 } void LCDTestWord(bit i,unsigned char word) { if(i==0) 37 {write_(word)。 } else { write_date(word)。 } } void display_hour(void) //顯示時 { hour=read_ds1302(0x85)。 LCDTestWord(0,0x80+0x02)。 LCDTestWord(1,(hour/16)+0x30)。 LCDTestWord(1,hour%16+0x30)。 } void display_min(void) //顯示分 { min=read_ds1302(0x83)。 LCDTestWord(0,0x80+0x04)。 LCDTestWord(1,0x3a)。 LCDTestWord(1,(min/16)+0x30)。 LCDTestWord(1,min%16+0x30)。 LCDTestWord(1,0x3a)。 } void display_sec(void) //顯示秒 { sec=read_ds1302(0x81)。 LCDTestWord(0,0x80+0x08)。 LCDTestWord(1,(sec/16)+0x30)。 LCDTestWord(1,sec%16+0x30)。 } void display_name(void) //顯示名字和笑臉 { write_(0x80+0x4a)。 write_date(0x5e)。 write_date(0x5f)。 write_date(0x5e)。 write_date(0x4c)。 write_date(0x44)。 write_date(0x44)。 } 38 void UpDate(void) //顯示時間函數(shù) { display_hour()。 display_min()。 display_sec()。 } void SetTime(unsigned char count) //設(shè)置時間子函數(shù) { unsigned char address,item。 unsigned char max,mini。 write_(0x80+0x40)。 if(count==3) { write_date(0x73)。address=0x81。 max=59。mini=0。} if(count==2) {write_date(0x6d)。address=0x83。 max=59。mini=0。} if(count==1) {write_date(0x68)。address=0x85。 max=23。mini=0。} item=read_ds1302(address)。 //讀取 DS1302 某地址上的數(shù)值賦給 item item=(item/16)*10+item%16。 if(pluskey==0) //PlusKey 加 item++。 //數(shù)加 1 if(reducekey==0) //ReduceKey 減 item。 //數(shù)減 1 if(itemmax) item=mini。 //查看數(shù)值有效范圍 if(itemmini) item=max。 write_ds1302(0x8e,0x00)。 item=(item/10)*16+item%10。 write_ds1302(address1,item)。 / /將調(diào)整好的 item 值寫入 DS1302 UpDate()。 } void Key(void) //設(shè)置時間函數(shù) { if (setkey==0) // 設(shè)置時間 { delay(20)。 //按鍵消抖 if(setkey==0amp。amp。w==0) //當(dāng)是正常狀態(tài)時就進入調(diào)時狀態(tài) { w=1。 //進入調(diào)時 SetTime(next)。 //調(diào)整 } if(setkey==0amp。amp。w==1) //當(dāng)是調(diào)時狀態(tài),本鍵用于調(diào)整下一項 { next++。 if(next3) {next= 0。} 39 SetTime(next)。 //調(diào)整 } while(setkey==0)。 //等待鍵松開 } if(surekey==0) // 當(dāng)在調(diào)時狀態(tài)時就退出調(diào)時 { delay(20)。 //按鍵消抖 if(surekey==0amp。amp。w==1) { w=0。 next=0。 write_(0x80+0x40)。 write_date(0x20)。 } while(surekey==0)。 //等待鍵松開 } if (pluskey==0) //加調(diào)整 { delay(20)。 //按鍵消抖 if(pluskey==0amp。amp。w==1) { SetTime(next)。 //調(diào)整 } while(pluskey==0)。 //等待鍵松開 } if (reducekey==0) //減調(diào)整 { delay(20)。 //按鍵消抖 if(reducekey==0amp。amp。w==1) { SetTime(next)。 //調(diào)整 } while(reducekey==0)。 //等待鍵松開 } } void error() //報錯函數(shù) { write_(0x80+0x4f)。 for(k=0。k5。k++) write_date(err[k])。 a=0。b=0。flag=0。fuhao=0。 } 40 void keyscan() //鍵盤掃描函數(shù)(包含運算模塊程序) {P1=0xfe。 //掃描第 0 行 if(P1!=0xfe) { delay(20)。 //消抖 if(P1!=0xfe) { temp=P1amp。0xf0。 switch(temp) { case 0xe0:num=0。 break。 case 0xd0:num=1。 break。 case 0xb0:num=2。 break。 case 0x70:num=3。 break。 } } while(P1!=0xfe)。 if(num==0||num==1||num==2||num==3)//如果按下的是 39。039。,39。139。,39。239?;?39。339。 { if(j!=0) { write_(0x01)。 j=0。 } if(flag==0)//沒有按過符號鍵 { a=a*10+table[num]。 } else //如果按過符號鍵 { b=b*10+table[num]。 } } i=table1[num]。 write_date(0x30+i)。 } P1=0xfd。 //掃描第 1 行 if(P1!=0xfd) { delay(20)。 if(P1!=0xfd) { temp=P1amp。0xf0。 switch(temp) { case 0xe0:num=4。 break。 case 0xd0:num=5。 break。 case 0xb0:num=6。 break。 case 0x70:num=7。 break。 } 41 } while(P1!=0xfd)。 if(num==4||num==5||num==6||num==7)//如果按下的是 39。439。,39。539。,39。639。或 39。739。 { if(j!=0) {write_(0x01)。 j=0。 } if(flag==0)//沒有按過符號鍵 { a=a*10+tab
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦

畢業(yè)設(shè)計(論文)-基于mc51單片機的簡易計算器設(shè)計-資料下載頁

【總結(jié)】電》