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

正文內(nèi)容

基于單片機的脈搏測量儀設(shè)計畢業(yè)論文-資料下載頁

2025-06-30 16:40本頁面

【導(dǎo)讀】基于單片機的脈搏測量儀設(shè)計

  

【正文】 應(yīng)用 [M],北京:機械工業(yè)出版社, 20xx. 25 附 錄 附錄 A:系統(tǒng)整體原理圖 : U2ST188VCCR4330GNDR520KC410uFR1124K1OUT11IN21IN+3GND42IN+52IN62OUT7Vcc8U3LM358R12100KR13330GNDR620kR10D1R3330VCCR710KR810KC51uFC61uF56KR912345678RST9(RXD)10(TXD)11(INT0)12(INT1)13(T0)14(T1)15(WR)16(RD)17XTAL218XTAL119GND202122232425262728PSEN29ALE/PROG30EA/VPP313233343536373839VCC40U1STC89C52Y112MC2 20C3 20VCCGNDR210KC1 10uFVCCS1單片主控電路LCD1602液晶接口GND1VCC2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BG/VCC15BG/GND16LCD1LCD1602GNDGNDVCCVCCR12KP00 P01 P02 P03 P04 P05 P06 P07P00P01P02P03P04P05P06P07P10 P11 P12P32VCC 26 附錄 B:系統(tǒng)源程序 include //調(diào)用單片機頭文件 define uchar unsigned char //無符號字符型 宏定義 變量范圍 0~255 define uint unsigned int //無符號整型 宏定義 變量范圍 0~65535 include sbit dq = P1^5。 //18b20 IO 口的定義 sbit beep = P1^4。 //蜂鳴器 IO 口定義 bit flag_300ms 。 uchar code table_num[]=0123456789abcdefg。 sbit rs=P1^0。 //寄存器選擇信號 H:數(shù)據(jù)寄存器 L:指令寄存器 sbit rw=P1^1。 //寄存器選擇信號 H:數(shù)據(jù)寄存器 L:指令寄存器 sbit e =P1^2。 //片選信號 下降沿觸發(fā) 27 unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=0。 unsigned int time[6]={0}。 /***********************1ms 延時函數(shù) *****************************/ void delay_1ms(uint q) { uint i,j。 for(i=0。iq。i++) for(j=0。j110。j++)。 } /******************************************************************** * 名稱 : delay_uint() * 功能 : 小延時。 28 * 輸入 : 無 * 輸出 : 無 ***********************************************************************/ void delay_uint(uint q) { while(q)。 } /******************************************************************** * 名稱 : write_(uchar ) * 功能 : 1602 命令函數(shù) * 輸入 : 輸入的命令值 * 輸出 : 無 ***********************************************************************/ void write_(uchar ) { 29 e=0。 rs=0。 rw=0。 P0=。 delay_uint(25)。 e=1。 delay_uint(100)。 e=0。 } /******************************************************************** * 名稱 : write_data(uchar dat) * 功能 : 1602 寫數(shù)據(jù)函數(shù) * 輸入 : 需要寫入 1602 的數(shù)據(jù) * 輸出 : 無 ***********************************************************************/ void write_data(uchar dat) 30 { e=0。 rs=1。 rw=1。 P0=dat。 delay_uint(25)。 e=1。 delay_uint(100)。 e=0。 } /******************************************************************** * 名稱 : write_string(uchar hang,uchar add,uchar *p) * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示 ab cd ef ,調(diào)用該函數(shù)如下 write_string(1,5,ab cd ef。) * 輸入 : 行, 列,需要輸入 1602 的數(shù)據(jù) * 輸出 : 無 31 ***********************************************************************/ void write_string(uchar hang,uchar add,uchar *p) { if(hang==1) write_(0x80+add)。 else write_(0x80+0x40+add)。 while(1) { if(*p == 39。\039。) break。 write_data(*p)。 p++。 } } /***********************lcd1602 上顯示特定的字符************************/ void write_zifu(uchar hang,uchar add,uchar date) 32 { if(hang==1) write_(0x80+add)。 else write_(0x80+0x40+add)。 write_data(date)。 } /***********************lcd1602 上顯示兩位十進(jìn)制數(shù)************************/ void write_sfm3(uchar hang,uchar add,uint date) { if(hang==1) write_(0x80+add)。 else write_(0x80+0x40+add)。 write_data(0x30+date/100%10)。 write_data(0x30+date/10%10)。 33 write_data(0x30+date%10)。 } /***********************lcd1602 初始化設(shè)置 ************************/ void init_1602() { write_(0x38)。 // write_(0x0c)。 write_(0x06)。 delay_uint(1000)。 write_string(1,0, Heart Rate )。 write_string(2,0, 000/min )。 } /*************定時器 0 初始化程序 ***************/ void time_init() { EA = 1。 //開總中斷 34 TMOD = 0X01。 //定時器 0、定時器 1 工作方式 1 ET0 = 1。 //開定時器 0 中斷 TR0 = 1。 //允許定時器 0 定時 } /***********外部中斷 0 初始化程序 ****************/ void init_int0() //外部中斷 0 初始化程序 { EX0=1。 //允許外部中斷 0 中斷 EA=1。 //開總中斷 IT0 = 1。 //外部中斷 0 負(fù)跳變中斷 } /****************主函數(shù) ***************/ void main() { init_1602()。 //1602 初始化 35 time_init()。 //初始化定時器 init_int0()。 //外部中斷 0 初始化程序 while(1) { if(displayOK==0)//如果顯示關(guān) { rate = 0。 } else//如果顯示開 { rate=60000/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5)。 } write_sfm3(2,5,rate)。 delay_1ms(300)。 } } 36 void int0() interrupt 0 { EX0=0。//暫時關(guān)外部中斷 if(timecount8) //當(dāng)連續(xù)兩次檢測時間間隔小 于 8*50ms=400ms不處理 { TR0=1。//開定時器 } else { time[i]=timecount*50+TH0*+TL0/1000。//算出間隔時間 TH0 = 0x3c。 TL0 = 0xb0。 // 50ms 12M timecount=0。//50ms 計數(shù)清零 i++。 if(i==6)//記錄到超過等于 6 次時間 { i=1。//計數(shù)從 1 開始 37 displayOK=1。 //測 得 5 次開始顯示 ? } } } /*************定時器 0 中斷服務(wù)程序 ***************/ void time0_int() interrupt 1 { TH0 = 0x3c。 TL0 = 0xb0。 // 50ms 12M timecount++。//每 50ms 一次計數(shù) if(timecount25) //當(dāng)超過 25*50ms= 沒有檢測到信號停止顯示 { i=0。//數(shù)據(jù)個數(shù)清零 timecount=0。//50ms 計數(shù)清零 displayOK=0。//顯示關(guān) TR0=0。//定時器關(guān) TH0 = 0x3c。 38 TL0 = 0xb0。 // 50ms 12M } }
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1