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

正文內(nèi)容

基于單片機的自行車?yán)锍瘫碓O(shè)計--資料下載頁

2024-10-23 10:20本頁面

【導(dǎo)讀】自世界上第一輛自行車問世至今已有200多年的歷史了。這輛最早的自行車是木制的,其結(jié)構(gòu)比較簡單。世界上第一批真正實用型的自行車出現(xiàn)于19世紀(jì)初。從某種意義上來說,中國是一個自行車的王國。天清晨和落日時分,滾滾車流在中國的城市中碾動,這是最為壯觀的一道風(fēng)景,這是一條現(xiàn)代中國流動的長城。隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強大,這個要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。地顯示當(dāng)前自行車行走的距離及運行的速度。數(shù)轉(zhuǎn)換為電脈沖,進行處理后送入單片機。齒輪轉(zhuǎn)動一周霍爾元件與。自行車?yán)锍痰臏y量是通過霍爾元件輸出端的電壓發(fā)。生變化產(chǎn)生脈沖,通過計數(shù)器,根據(jù)脈沖數(shù)計算里程。

  

【正文】 display()。 keyscan()。 } } void T0_time() interrupt 1 //定時器 0 42 { TH0=(655361000)/256。 TL0=(655361000)%256。 if(num500) num++。 else Speed_dat=0。 if(num1100) num1++。 } void ex_0() interrupt 0 //外部中斷 0 { Speed_dat=(500/num)。 num=0。 } define uchar unsigned char define uint unsigned int sbit EN=P2^7。 sbit RS=P2^5。 sbit RW=P2^6。 sbit BEEP=P2^0。 sbit LED1=P1^2。 sbit LED2=P1^3。 uchar LCD1602_Table[]=0123456789。 //LCD1602 顯示標(biāo)尺 //0123456789abcdef uchar code DIS_TAB1[]={ Speed:Km/h }。 uchar code DIS_TAB2[]={M: KmKm/h}。 uint sum_dat=0。 uchar Cur_Speed=0。 extern uint Speed_dat。 extern uint Total_Dis。 extern void delayms(uint xms)。 43 void WRITE_LCD1602_DAT(uchar date) { EN=0。 RS=1。 P0=date。 EN=0。 delayms(5)。 EN=1。 } void WRITE_LCD1602_COM(uchar date) { EN=0。 RS=0。 P0=date。 EN=0。 delayms(5)。 EN=1。 } void init_1602() { unsigned char i。 RW=0。 WRITE_LCD1602_COM(0x38)。 WRITE_LCD1602_COM(0x0c)。 WRITE_LCD1602_COM(0x06)。 WRITE_LCD1602_COM(0x01)。 WRITE_LCD1602_COM(0x80)。 for(i=0。i16。i++) WRITE_LCD1602_DAT(DIS_TAB1[i])。 WRITE_LCD1602_COM(0x80+0x40)。 for(i=0。i16。i++) WRITE_LCD1602_DAT(DIS_TAB2[i])。 } 44 void display() { static uint dat=0。 static uchar i=0。 if(i6) { i++。 sum_dat+=Speed_dat。 } else { i=0。 dat=sum_dat/10。 sum_dat=0。 } Cur_Speed=dat。 WRITE_LCD1602_COM(0x80+7)。 if(dat/1000) WRITE_LCD1602_DAT(LCD1602_Table[dat%1000/100])。 else WRITE_LCD1602_DAT(39。 39。)。 if(dat/100) WRITE_LCD1602_DAT(LCD1602_Table[dat%100/10])。 else WRITE_LCD1602_DAT(39。 39。)。 WRITE_LCD1602_DAT(LCD1602_Table[dat%10])。 WRITE_LCD1602_COM(0x80+9+0x40)。 if(Beep_speed/1000) WRITE_LCD1602_DAT(LCD1602_Table[Beep_speed%1000/100])。 else WRITE_LCD1602_DAT(39。 39。)。 45 if(Beep_speed/100) WRITE_LCD1602_DAT(LCD1602_Table[Beep_speed%100/10])。 else WRITE_LCD1602_DAT(39。 39。)。 WRITE_LCD1602_DAT(LCD1602_Table[Beep_speed%10])。 if(datBeep_speed) { if(i3) BEEP=0。 else BEEP=1。 LED1=0。 LED2=1。 } else { BEEP=1。 LED1=1。 LED2=0。 } } void dis_Mileage() { WRITE_LCD1602_COM(0x80+0x40+2)。 if(Total_Dis/10000) WRITE_LCD1602_DAT(LCD1602_Table[Total_Dis%10000/1000])。 else WRITE_LCD1602_DAT(39。 39。)。 if(Total_Dis/1000) WRITE_LCD1602_DAT(LCD1602_Table[Total_Dis%1000/100])。 46 else WRITE_LCD1602_DAT(39。 39。)。 WRITE_LCD1602_DAT(LCD1602_Table[Total_Dis%100/10])。 WRITE_LCD1602_DAT(39。.39。)。 WRITE_LCD1602_DAT(LCD1602_Table[Total_Dis%10])。 } include define AT24C02_OP_READ 0xa1 // AT24C02 器件地址以及讀取操作 define AT24C02_OP_WRITE 0xa0 // AT24C02 器件地址以及寫入操作 //define AT24C02_MAX_ADDR 0xff // AT24C02 最大地址 //unsigned char code dis_code[]={0x7e,0xbd,0xdb,0x7e,0xdb,0xbd,0x7e,0xff}。// 寫入到 AT24C02 的數(shù)據(jù)串 sbit AT24C02_SDA=P1^1。 sbit AT24C02_SCL=P1^0。 //sbit AT24C02_WP=P3^3。 //寫保護 “ =0”讀寫 “ =1” 只讀 /*****************延時子程序 ***********************/ void Delay_1ms(unsigned int xms) { unsigned int i,j。 for(i=xms。i0。i) for(j=122。j0。j)。 } /*****************24C02 初始化子程序 ***********************/ void Init_AT24C02() { AT24C02_SDA=1。 //總線空閑時,因各設(shè)備都是集電極或漏極開路,上拉電阻使 SDA 和 SCL 線都保持高電平。 // AT24C02_WP=1。 AT24C02_SCL=1。 _nop_()。 47 _nop_()。 _nop_()。 _nop_()。 } /*****************24C02 起始信號子程序 ***********************/ void AT24C02_Start() { AT24C02_SDA=1。 _nop_()。 _nop_()。 AT24C02_SCL=1。 _nop_()。 _nop_()。 AT24C02_SDA=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 AT24C02_SCL=0。 } /*****************24C02 停止信號子程序 ***********************/ void AT24C02_Stop() { AT24C02_SDA=0。 _nop_()。 _nop_()。 AT24C02_SCL=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 AT24C02_SDA=1。 48 _nop_()。 _nop_()。 } /*****************24C02 應(yīng)答子程序 ***********************/ void AT24C02_ACK() { AT24C02_SDA=1。 // 讀取應(yīng)答 _nop_()。 _nop_()。 AT24C02_SCL=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 while(AT24C02_SDA)。 //等待應(yīng)答信號 AT24C02_SCL=0。 _nop_()。 _nop_()。 } /*****************讀出 24C02 數(shù)據(jù)子程 序 ***********************/ unsigned char Read_AT24C02_DATA() { unsigned char i,read_data。 for(i=0。i8。i++) { AT24C02_SCL=1。 _nop_()。_nop_()。_nop_()。_nop_()。 read_data=1。 //從高位到底位 read_data|=(unsigned char)AT24C02_SDA。 AT24C02_SCL=0。 _nop_()。_nop_()。_nop_()。_nop_()。 } 49 return(read_data)。 } /*****************寫入 24C02 數(shù)據(jù)子程序 ***********************/ void Write_AT24C02_DATA(unsigned char write_data) { unsigned char i。 for(i=0。i8。i++) // 循環(huán)移入 8 個位 { AT24C02_SDA=(bit)(write_dataamp。0x80)。 _nop_()。 AT24C02_SCL=1。 _nop_()。 _nop_()。 AT24C02_SCL=0。 write_data=1。 } } /*****************字節(jié)寫入 24C02 數(shù)據(jù)子程序 ***********************/ void Write_AT24C02_Byte(unsigned char addr, unsigned char write_data) // 在指定地址 addr 處寫入數(shù)據(jù) write_data { AT24C02_Start()。 //發(fā)起始命令 Write_AT24C02_DATA(AT24C02_OP_WRITE)。 //從機地址寫命令 AT24C02_ACK()。 Write_AT24C02_DATA(addr)。 //發(fā)送 AT24C02 的字節(jié)地址 AT24C02_ACK()。 Write_AT24C02_DATA(write_data)。 //發(fā)送數(shù)據(jù)到被尋址的存儲單元 AT24C02_ACK()。 AT24C02_Stop()。 //停止信號 Delay_1ms(10)。 //延時等待 AT24C02 內(nèi)部數(shù)據(jù)的擦寫 } 50 unsigned char Read_AT24C02_Current() // 在當(dāng)前地址讀取 { unsigned char read_data。 AT24C02_Start()。 Write_AT24C02_DATA(AT24C02_OP_READ)。 AT24C02_ACK()。 read_data = Read_AT24C02_DATA()。 AT24C02_Stop()。 return read_data。 } unsigned char Read_AT24C02_Random(unsigned char addr) // 在指定地址讀取 { AT24C02_Start()。 Write_AT24C02_DATA(AT24C02_OP_WRITE)。 AT24C02_ACK
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1