基于51单片机的电阻测量电气自动化毕业论文设计内容摘要:
和 MPLAB 等多种编译器。 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,。基于51单片机的电阻测量电气自动化毕业论文设计
相关推荐
GND6IN 27B O O T 28VREF9S E N S E10E N A B L E11U3L 6 20 3C21 04V C CC51 04+ 12 VG N DC61 04C71 04D11 N 40 0 7D21 N 40 0 7G N DG N D温湿度传感器G N DV C C电机驱动123P ow er1H e ad er 3G N DV C C+ 12 VP 14P
外最多可外扩至 64k 字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。 程序存储器 由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至 64k字节。 洛阳理工学院毕业设计(论文) 12 中断系统 具有 5 个中断源, 2 级中断优先权。 定时器 /计数器 片内有 2 个
外界光干扰问题。 因此我们选择了方案 2。 电机模块 本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。 由于本实验要实现对路径的准确定位和精确测量,我们综合考虑了一下两种方案。 方案 1:采用步进电机作为该系统的驱动电机。 由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。 虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随 转速的升高而下降
制仪表领域的新的技术革命。 数字电压表则利用单片机技术结合A/D转换芯片,把连续的模拟量转换成不连续、离散的数字形式并加以显示仪表。 目前,有各种单片机转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出了强大的生命力。 (二 ) 研究的意义: 基于在对单片机研究的基础上,本文提出了一种以 AT80C51为核心的单片机构成数字电压表的看法。
图 8 1602字符型液晶显示器实物图 1602 液晶显示器 分为带背光和不带背光两种, 其 控制器大部分为 HD44780,带背光的比不带背光的厚。 1602 液晶显示器 主要技术参数:显示容量 : 162 个字符;芯片工作电压 : ;工作电流 : ();模块最佳工作电压 : ;字符尺寸 :(WH)mm。 1602 液晶显示器 采用标准的 14脚(无背光)或 16 脚(带背光)接口
8 位二进制码就可以表示欲显示字符的字形代码。 例如 ,对于共阴 LED显示器,当公共阴极接地(为零电平),而阳极 hgfedcba 各段为 0111011 时,显示器显示 P字符,即对于共阴极 LED 显示器,“ P”字符的字形码是 73H。 如果是共阳 LED 显示器,公共阳极接高电平,显示“ P”字符的字形代码应为 10001100( 8CH)。 下表 22 列出了共阳极与共阴极 LED