毕业论文设计基于51单片机的电阻测量内容摘要:

Multisim 是美国国家仪器( NI)有限公司推出的以 Windows 为基础的仿真工具,适用于板级的模拟 /数字电路板的设计工作。 它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。 器件建模及仿真 ;电路的构建及仿真;系统的组成及仿真;仪表仪器原理及制造仿真。 器件建模及仿真:可以建模及仿真的器件:模拟器件(二极管,三极管,功率管等); 数字器件( 74 系列, COMS 系列, PLD, CPLD 等); FPGA 器件。 本次仿真用到单片机、步进电机、 LCD 等元件,故选 PROTUES 作为仿真软件。 芜湖信息技术职业学院毕业论文 (设计) 14 软件部分 /******************************************************************** 主程序 *******************************************************************/ include //单片机端口定义 include //调用 IIC 通信协议 include //调用存储器 include //调用汉字库 include //调用液晶显示 include //调用延时 include //测温程序 include //调用菜单 include //调用 A/D 模块 include //调用键盘 unsigned char wang[4]={0x00,0x02,0x00,0x00}。 void main() { menu1()。 menu2()。 WP=0。 WrToROM(wang,4,4)。 key1()。 } /******************************************************************** IIC 通信 ********************************************************************/ include sbit Scl=P1^1。 sbit Sda=P1^2。 void Start(void) { Sda=1。 _nop_()。 _nop_()。 Scl=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Sda=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Scl=0。 } void Stop(void) { Sda=0。 _nop_()。 Scl=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Sda=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 芜湖信息技术职业学院毕业论文 (设计) 15 Scl=0。 } void Ack(void) { Sda=0。 _nop_()。 _nop_()。 _nop_()。 Scl=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Scl=0。 _nop_()。 _nop_()。 } void NoAck(void) { Sda=1。 _nop_()。 _nop_()。 _nop_()。 Scl=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Scl=0。 _nop_()。 _nop_()。 } void Send(unsigned char Data) { unsigned char BitCounter=8。 unsigned char temp。 do { temp=Data。 Scl=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 if((tempamp。 0x80)==0x80) Sda=1。 else Sda=0。 Scl=1。 temp=Data1。 Data=temp。 BitCounter。 } while(BitCounter)。 Scl=0。 } unsigned char Read(void) { unsigned char temp=0。 unsigned char temp1=0。 unsigned char BitCounter=8。 Sda=1。 do { 芜湖信息技术职业学院毕业论文 (设计) 16 Scl=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 Scl=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 if(Sda) temp=temp|0x01。 else temp=tempamp。 0xfe。 if(BitCounter1) { temp1=temp1。 temp=temp1。 } BitCounter。 } while(BitCounter)。 return(temp)。 } /******************************************************************** 存储器模块 ********************************************************************/ include define AddWr 0xae //写数据地址 0xae define AddRd 0xaf //读数据地址 0xaf sbit WP=P1^3。 //写保护,这里不使用 void mDelay(unsigned char j) { unsigned int i。 for(。 j0。 j) { for(i=0。 i125。 i++) {。 } } } void WrToROM(unsigned char Data[],unsigned char Address,unsigned char Num) { unsigned char i。 unsigned char *PData。 PData=Data。 for(i=0。 iNum。 i++) { Start()。 Send(AddWr)。 //写入芯片地址 Ack()。 芜湖信息技术职业学院毕业论文 (设计) 17 Send(Address+i)。 //写入存储地址 Ack()。 Send(*(PData+i))。 //写数据 Ack()。 Stop()。 mDelay(20)。 } } void RdFromROM(unsigned char Data[],unsigned char Address,unsigned char Num) { unsigned char i。 unsigned char *PData。 PData=Data。 for(i=0。 iNum。 i++) { Start()。 //写入芯片地址 Send(AddWr)。 Ack()。 Send(Address+i)。 //写入存储地址 Ack()。 Start()。 Send(AddRd)。 //读入地址 Ack()。 *(PData+i)=Read()。 //读数据 Scl=0。 NoAck()。 Stop()。 } } /******************************************************************** 自定义汉字库 ********************************************************************/ unsigned char code hz1[32]={ 0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00, 0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00, }。 //欢 unsigned char code hz2[32]={ 0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00, 0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00, }。 //迎 unsigned char code hz3[32]={ 0x20,0x10,0x8,0xfe,0x1,0x4,0xf4,0x94,0x94,0xff,0x94,0x94,0xf4,0x4,0x0,0x0, 芜湖信息技术职业学院毕业论文 (设计) 18 0x0,0x0,0x0,0x7f,0x0,0x42,0x24,0x18,0x8,0x17,0x10,0x20,0x20,0x40,0x80,0x0, }。 //使 unsigned char code hz4[32]={ 0x0,0x0,0x0,0xfe,0x2,0x22,0x22,0x22,0xfa,0x22,0x22,0x22,0x2,0xfe,0x0,0x0, 0x80,0x60,0x18,0x7,0x0,0x1,0x41,0x31,0xf,0x1,0x1,0x41,0x80,0x7f,0x0,0x0, }。 //用 unsigned char code empty[32]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0,0x0,0x0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0,0x00,0x0,0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }。 //EMPTY unsigned char code hz5[32]={ 0x0,0x0,0xfc,0x4,0x84,0x84,0x84,0x4,0x0,0x8,0x8,0xfc,0x0,0x0,0x0,0x0, 0x0,0x0,0x31,0x41,0x40,0x40,0x40,0x21,0x1e,0x40,0x40,0x7f,0x40,0x40,0x0,0x0, }。 //51 unsigned char code hz6[32]={ 0x0,0x0,0x0,0xf9,0x2e,0x2a,0x28,0xf8,0x28,0x2c,0x2b,0xfa,0x0,0x0,0x0,0x0, 0x0,0x8,0x8,0xb,0x9,0x9,0x9,0xff,0x9,0x9,0x9,0xb,0x8,0x8,0x0,0x0, }。 //单 unsigned char code hz7[32]={ 0x0,0x0,0x0,0x0,0x0,0xfe,0x88,0x88,0x88,0x8f,0x88,0x88,0xc,0x8,0x0,0x0, 0x0,0x0,0x40,0x20,0x18,0x7,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x0, }。 //片 unsigned char code hz8[32]={ 0x0,0x90,0x50,0xfe,0x50,0x90,0x0,0xfe,0x2,0x2,0xfe,0x0,0x0,0x0,0x0,0x0, 0x0,0x1,0x0,0x7f,0x0,0x13,0x8,0x7,0x0,0x0,0xf,0x10,0x20,0x20,0x30,0x0, }。 //机 unsigned char code hz9[32]={ 0x0,0x0,0xf8,0x48,0x48,0x48,0xff,0x48,0x48,0x48,0xf8,0x0,0x0,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。