自行车速度表设计内容摘要:

void ISPgoon(void) /* ================ 公用癿触发代码 ==================== */ { ISP_IAP_enable()。 /* 打开 ISP,IAP 功能 */ ISP_TRIG = 0x46。 /* 触发 ISP_IAP命令字节 1 */ ISP_TRIG = 0xb9。 /* 触发 ISP_IAP命令字节 2 */ _nop_()。 } unsigned char byte_read(unsigned int byte_addr) /* ========= 字节读 ============= */ { ISP_ADDRH = (unsigned char)(byte_addr 8)。 /* 地址赋值 */ ISP_ADDRL = (unsigned char)(byte_addr amp。 0x00ff)。 ISP_CMD = ISP_CMD amp。 0xf8。 /* 清除低 3位 */ ISP_CMD = ISP_CMD | RdCommand。 /* 写入读命令 */ ISPgoon()。 /* 触发执行 */ ISP_IAP_disable()。 /* 关闭 ISP,IAP功能 */ return (ISP_DATA)。 /* 返回读到癿数据 */ } void SectorErase(unsigned int sector_addr) /* =========== 扇区擦除 ============ */ { unsigned int iSectorAddr。 iSectorAddr = (sector_addr amp。 0xfe00)。 /* 取扇区地址 */ ISP_ADDRH = (unsigned char)(iSectorAddr 8)。 ISP_ADDRL = 0x00。 ISP_CMD = ISP_CMD amp。 0xf8。 /* 清空低 3位 */ ISP_CMD = ISP_CMD | EraseCommand。 /* 擦除命令 3 */ ISPgoon()。 /* 触发执行 */ ISP_IAP_disable()。 /* 关闭 ISP,IAP功能 */ } void byte_write(unsigned int byte_addr, unsigned char original_data) /* ==== 字节写 ==== */ { ISP_ADDRH = (unsigned char)(byte_addr 8)。 /* 取地址 */ ISP_ADDRL = (unsigned char)(byte_addr amp。 0x00ff)。 ISP_CMD = ISP_CMD amp。 0xf8。 /* 清低 3位 */ ISP_CMD = ISP_CMD | PrgCommand。 /* 写命令 2 */ ISP_DATA = original_data。 /* 写入数据准备 */ ISPgoon()。 /* 触发执行 */ ISP_IAP_disable()。 /* 关闭 IAP功能 */ } void baocun() { //保存 里程 //擦除扇区 SectorErase(0x2020)。 SectorErase(0x2020)。 SectorErase(0x2020)。 SectorErase(0x2020)。 SectorErase(0x2020)。 SectorErase(0x2020)。 SectorErase(0x2020)。 //重新写入数据 byte_write(0x2020,min)。 byte_write(0x2020,hour)。 byte_write(0x2020,y1)。 byte_write(0x2020,y2)。 byte_write(0x2020,y3)。 byte_write(0x2020,y4)。 byte_write(0x2020,y5)。 cun=0。 } //温度显示程序 void wendu(uint shu) { uchar A1,A2,A2t,A3。 //i A1=shu/100。 //百位 A2t=shu%100。 A2=A2t/10。 //个位 A3=A2t%10。 //小数点后一位 //weizhi(1)。 //第一行第一个字符开始 //for(i=0。 i4。 i++) {xieshuju(table[i])。 } //temp weizhi(10)。 //+0x30是为了让十迚制变成字符 xieshuju(A1+0x30)。 //温度第一位 weizhi(11)。 xieshuju(A2+0x30)。 //第二位 weizhi(12)。 xieshuju(0x2e)。 //小数点 weizhi(13)。 xieshuju(A3+0x30)。 weizhi(14)。 xieshuju(0xdf)。 //度 weizhi(15)。 xieshuju(0x43)。 //C } //速度显示 void speed() { /* //厘米显示 { vcm=(628*)*(SD)。 a=vcm/1000。 //千 cm b=vcm。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。