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

正文內(nèi)容

基于51單片機(jī)的數(shù)字電容測量儀設(shè)計(jì)實(shí)驗(yàn)報(bào)告(已改無錯(cuò)字)

2022-10-09 15:44:55 本頁面
  

【正文】 (d) 程序清單: include include void LCD_write_(unsigned char ) { RS_CLR。 RW_CLR。 EN_SET。 = pro_data()。 P1 = 。 delay_us(5)。 EN_CLR。 } void LCD_write_Data(unsigned char Data) { RS_SET。 RW_CLR。 EN_SET。 Data = pro_data(Data)。 P1 = Data。 delay_us(5)。 EN_CLR。 28 } void LCD_init(void) { LCD_write_(0x38)。 // 顯示模式設(shè)置 delay_ms(5)。 LCD_write_(0x38)。 delay_ms(5)。 LCD_write_(0x38)。 delay_ms(5)。 LCD_write_(0x38)。 LCD_write_(0x08)。 // 顯示關(guān)閉 LCD_write_(0x01)。 // 顯示清屏 LCD_write_(0x06)。 // 顯示光標(biāo)移動(dòng)設(shè)置 delay_ms(5)。 LCD_write_(0x0c)。 // 顯示開及光標(biāo)設(shè)置 } void lcd_pos(unsigned char pos) { LCD_write_(0x80|pos)。 } void disp(unsigned char *p) // 第二行顯示數(shù)據(jù) { unsigned char i。 lcd_pos(0x43)。 for(i=0。i6。i++) { if(4==i) { LCD_write_Data(0x2e)。 29 } LCD_write_Data(39。039。+(*p))。 p++。 } } void dispchar1(unsigned char *p) // 第一行顯示需要顯示的提示字符串 { lcd_pos(0x00)。 while(*p != 39。\039。) { LCD_write_Data(*p)。 p++。 } lcd_pos(0x4c)。 LCD_write_Data(39。f39。)。 } void dispchar2(unsigned char *p) // 第二行顯示需要顯示的提示字符串 { lcd_pos(0x40)。 while(*p != 39。\039。) { LCD_write_Data(*p)。 p++。 } } void dispchar3(unsigned char *p) // 第一行顯示 第二行清空 { unsigned char i。 lcd_pos(0x00)。 30 while(*p != 39。\039。) { LCD_write_Data(*p)。 p++。 } lcd_pos(0x40)。 for(i=0。i16。i++) { LCD_write_Data(39。 39。)。 } } unsigned char pro_data(unsigned char mda) //數(shù)據(jù)處理函數(shù),將高位和低位互換 { unsigned char enddat。 unsigned char i。 enddat = 0。 for(i=0。i8。i++) { enddat = enddat 1。 if(mda amp。 0x01 == 1) { enddat = enddat | 0x01。 } else { enddat = enddat | 0x00。 } mda = mda 1。 } return enddat。 31 } (e) 程序清單: include include include sbit vo = P3^2。 // 用于檢測 口的值,計(jì)算時(shí)間。 計(jì)時(shí)器 0 的開與斷 sbit tr = P3^7。 // 產(chǎn)生一個(gè)低電平脈沖 // 超量程提示燈 sbit ledclc = P2^7。 sbit con1 = P0^0。 // 用于控制繼電器,實(shí)現(xiàn)檔位選擇 sbit con2 = P0^1。 sbit con3 = P0^2。 sbit key1 = P0^3。 // 獨(dú)立按鍵部分,用于用戶選擇量程 sbit key2 = P0^4。 sbit key3 = P0^5。 sbit key4 = P0^6。 sbit led1 = P2^3。 // 量程提示燈 sbit led2 = P2^4。 sbit led3 = P2^5。 sbit led4 = P2^6。 unsigned int tw。 // 用于獲取定時(shí)器的數(shù)值 float ftemp。 // 用于計(jì)算電容值的中間變量 32 unsigned long int c。 // 存放電容值 unsigned char need。 // 需要測量時(shí)置 1,一次測量結(jié)束置 0 unsigned char R。 // 表示不同的檔位 unsigned char flag。 // 數(shù)據(jù)處理結(jié)束置 1 unsigned char temp[8]。 // 存放電容值的各個(gè)位 unsigned char zimu1[] = range is higher。 //量程太高 unsigned char zimu2[] = The value of Cap。 unsigned char zimu3[] = please press key。 unsigned char zimu4[] = to measure 。 unsigned char zimu5[] = range is lower 。 void process(unsigned long int c)。 // 數(shù)據(jù)處理函數(shù) void keyscan()。 // 鍵盤掃描函數(shù) void ledlight(unsigned char R)。 // 量程指示燈 函數(shù) void init_timer0() // 定時(shí)器 0 初始化 { TMOD = 0x09。 // gate 置 1,方式 1,16 位計(jì)時(shí),定時(shí)器由 控制開斷 TH0 = 0x00。 TL0 = 0x00。 EA = 1。 ET0 = 1。 TR0 = 1。 } void init_INT1 () // 定時(shí)器 0 初 始化 { EA = 1。 IT1 = 1。 // 下降沿觸發(fā) EX1 = 1。 } void main() 33 { ledclc = 1。 // 超量程提示燈熄滅 need = 0。 // 一開始無需測量 con1 = con2 = con3 = 0。 flag = 0。 init_timer0()。 // 初始化 init_INT1()。 LCD_init()。 dispchar1(zimu3)。 dispchar2(zimu4)。 while(1) { if(need == 1) { // 當(dāng)需要測量時(shí) if(vo == 0 ) //vo == 0 時(shí)檢測計(jì)數(shù)器的值可能還沒開始計(jì)數(shù),可能計(jì)數(shù)結(jié)束 { if(TH0 != 0x00 || TL0 != 0x00) // 是計(jì)數(shù)結(jié)束 若有讀數(shù),用 tw 存下 { tw = TH0 8。 tw = tw | TL0。 TH0 = 0x00。 // 一次結(jié)束,計(jì)時(shí)器清零 TL0 = 0x00。 need = 0。 // 需要再次測量時(shí), need 置 tw的值被更//改 即不需要測量時(shí),一直保持 EX1 = 1。 // 開外部中斷 1 } else // 反之,證明沒有計(jì)數(shù),無電容,默認(rèn)值 tw 置 0 { tw = 0。 } 34 } ftemp = tw / 。 // 計(jì)算電容值 根據(jù)公式 tw = * R * C c = (unsigned long int)(ftemp )*100。 //擴(kuò)大了一百倍 便于后續(xù)程序 //取兩位小數(shù)點(diǎn) process(c)。 // 調(diào)用數(shù)據(jù)處理函數(shù),根據(jù)不同的 R 值進(jìn)行處理 } if(flag == 1 ) // 數(shù)據(jù)處理結(jié)束 每次處理結(jié)束,證明需要 更新顯示的數(shù)據(jù) { if(tw=50000 || ledclc == 0) // 量程超出 { dispchar3(zimu1)。 // 量程太高 ledclc = 0。 } else if(tw=100 amp。amp。 ledclc == 1) //量程太低 { dispchar3(zimu5)。 ledclc = 0。 } else { dispchar1(zimu2)。 disp(temp)。 } flag = 0。 } keyscan()。 } 35 } void timer0() interrupt 1 // 定時(shí)器 0 中斷 用于超量程提示 { ledclc = 0。 } void exint1 () interrupt 2 // 外部中斷 0 用于產(chǎn)生低脈沖,啟動(dòng) 555 定時(shí)器 { unsigned char a。 tr = 1。 // tr 端一個(gè)負(fù)脈沖 a = 1。 while(a)。 tr = 0。 a = 20。 while(a)。 tr = 1。 // tr 端負(fù)脈沖結(jié)束
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1