ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:1.08MB ,
资源ID:7678083      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7678083.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PID温控器设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PID温控器设计.docx

1、PID温控器设计 题目: PID温控器 专业(班级): 学号:姓名:小组人员: 2010年 10月20日星期三 静态显示一、 实验思路要想实现本实验的目的,就要用到相关的器件,器件清单如后面所述。首先连接硬件图。单片机控制7段数码管显示数据,就要用到单片机和7段数码管,为了使软件设计简单,再用到74LS373编码器,将二进制数据编码成能让7段数码管显示数据的编码。然后用到一个74LS138的3/8译码器来充当编码器的选通信号输入源。单片机周边电路的设计可以参照最小系统设计。之后就是软件的设计。本实验说要达到的效果是让7段数码管显示128这3个数据。软件编程的框图如下:二、 实验步骤 1、打开电

2、脑,打开KEIL和proteus软件,2、在proteus软件中,新建一个文件,保存在C:/目录下。3、选择器件,将所用到的器件都选择上。4、对照课本P137,将实验电路图连接好。5、在KEIL软件中新建一个工程文件,命名为LED.UV2。6、新建一个文件,命名为led.c。7、在这一个文件中写入对应的程序,并保存。8、将这三个文件添加到建立的LED.UV2工程中。9、点击FLASH-CONIGURE FLASH TOOLS,在弹出的对话框中,修改晶振频率12MHZ以及勾选输出建立.HEX文件。10、编译工程文件,有错,则更改错误的地方,直至无误。11、将生成的LED.HEX文件添加到刚刚建立

3、的实验电路图中的单片机中。12、仿真运行实验电路,观察LED显示情况,和所预期的情况想比较,不一样,则更改程序或硬件电路。知道结果和预期一样三、试验硬件图四、试验程序#includeabsacc.h unsigned char code LED_CODES= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86, 0x8e,0xff,0x0c,0x89,0x7f,0xbf;void main() XBYTE0x0000= LED_CODES1; XBYTE0x0200= LED_CODES2;

4、XBYTE0x0400= LED_CODES8; while(1); 五、试验仿真图 2010年10月21日星期四 动态显示一、 实验思路首先连接硬件图。单片机控制7段数码管显示数据,就要用到单片机和7段数码管,为了使软件设计简单,再用到74LS373编码器,将二进制数据编码成能让7段数码管显示数据的7段编码。然后用到一个74LS138的3/8译码器来充当编码器的选通信号输入源。单片机周边电路的设计可以参照最小系统设计。之后就是软件的设计。本实验说要达到的效果是让6位LED上循环显示数字05。程序流程图如下:二、 实验步骤1、 打开电脑,打开KEIL和proteus软件,2、 在proteus

5、软件中,新建一个文件,保存在C:/目录下。3、 选择器件,将所用到的器件都选择上。4、 对照课本P138和P132,将实验电路图连接好。5、 在KEIL软件中新建一个工程文件,命名为DLED.UV2。6、 新建三个文件,分别命名为DISPLAY.H,DISPLAY.C,MIAN.C。7、 在这三个文件中写入对应的程序,并保存。8、 将这三个文件添加到建立的DLED.UV2工程中。9、 点击FLASH-CONIGURE FLASH TOOLS,在弹出的对话框中,修改晶振频率12MHZ以及勾选输出建立.HEX文件。10、 编译工程文件,有错,则更改错误的地方,直至无误。11、 将生成的DLED.H

6、EX文件添加到刚刚建立的实验电路图中的单片机中。12、 仿真运行实验电路,观察LED显示情况,和所预期的情况想比较,不一样,则更改程序或硬件电路。知道结果和预期一样。三、实验硬件图四、实验程序1、 DISPLAY.H程序#define BASE 0x0000#define PORT_A (BASE)#define PORT_B (BASE+ 1)#define PORT_C (BASE+ 2)#define PORT_CONTROL (BASE+ 3)#define LEDS 6#define CA 0#define CC 1void turn_on(char led,char ChNumbe

7、r,char mode);void LedsOff();void oneByone (char datas);extern void Init8255();unsigned char code Setect;unsigned char code LED_CODES;2、 DISPLAY.C程序 #include absacc.h#include reg51.h#include display.hunsigned char code Select=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char code LED_CODES=0xc0,0xF9,0xA4,0

8、xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF,0x0C,0x89,0x7F,0xBF;void Init8255()unsigned char i,j;for(j=0;j10;j+) for(i=0;i1;t1=t1;t1= t1|0x0f;P1=t1;t1=P1;t2= 0x08;t1=t1;for(i=4;i!=0;i-)t3=t2&t1; if(t3!=0)*row=i-1;break;else t2= t2 1;exit: return Result;4、 mian源程序 #include di

9、splay.h#include absacc.h#include Reg51.hextern char keyCheck(char*row,char*col);void main()char row,col,r; char strIndexs6=20,20,20,20,20,20; unsigned char i,k; Init8255();while(1) r=keyCheck(&row,&col);if(r= 0)strIndexs5=20;strIndexs4=20;strIndexs1=20;strIndexs0=20;elsestrIndexs5=0;strIndexs1=0;str

10、Indexs4=row;strIndexs0=col;for(k= 6;k!=0;k-)LedsOff();for(i= 250;i!=0;i-);turn_on(k-1,strIndexsk-1,CC) ;for(i=250;i!=0;i-);五、程序仿真图2010-10-25 星期一 AD转换(端口查询方式)一、实验思路本次实验采用的是端口查询方式,先向51单片机P3.3写入1,然后读入P3口。检查P3.3是为位0,不为0则重新读入P3在检测,直到P3.3为0 ,此时表示数据转换过程已结束,读片外地址0x2XXX,P1,/RD为低电平,经74LS02反向为高电平,向ADC0808的OE送读

11、数据的信号,ADC0808将转换结果从Out7Out0送到数据总线并读入CPU。实现在LED上显示读取的A/D转换值。程序流程图如下:二、实验步骤1、打开电脑,打开KEIL和proteus软件,2、在proteus软件中,新建一个文件,保存在C:/目录下。3、选择器件,将所用到的器件都选择上。4、对照课本P189,将实验电路图连接好。5、在KEIL软件中新建一个工程文件,命名为ADC0808.UV2。6、新建一个文件,命名为MAIN.c。7、在这一个文件中写入对应的程序,并保存。8、将这三个文件添加到建立的ADC0808.UV2工程中。9、点击FLASH-CONIGURE FLASH TOOL

12、S,在弹出的对话框中,修改晶振频率12MHZ以及勾选输出建立.HEX文件。10、编译工程文件,有错,则更改错误的地方,直至无误。11、将生成的ADC0808.HEX文件添加到刚刚建立的实验电路图中的单片机中。12、仿真运行实验电路,观察LED显示情况,和所预期的情况想比较,不一样,则更改程序或硬件电路。知道结果和预期一样.三、实验硬件图四、实验程序1、DISPLAY.H程序和DISPLAY.C程序(如前)2、主程序ADC0808.c#include #include #include #define ADC_0808 1#define ADC0808_DATA_PORT 0x2000#defi

13、ne ADC0808_QUERY_PORT 0x4000#define ADC0808_START_PORT 0x2000unsigned char getData2(unsigned char ADC_Chip,unsigned char channel)unsigned char flag= 0;unsigned char value= -1;unsigned xdata ale;switch (ADC_Chip)case ADC_0808:P3= P3|0x08;XBYTEADC0808_START_PORT= channel;P3= P3&0xdf;P3= P3|0x20;P3= P3

14、&0xdf;flag= P3;while(1)ale= 1;flag=flag & 0x08;if(flag=0) break;flag= P3;value= XBYTEADC0808_DATA_PORT;return value;break;void dispStr(char strIndexs,unsigned char value,char channel)char i,k;for(i= 0;i3;i+)strIndexsi= value%10;value= value/10;strIndexs4= channel;LedsOff();for(i=250;i!=0;i-);for(k=6

15、;k!=0;k-)LedsOff();for(i=250;i!=0;i-);turn_On(k-1,strIndexsk-1,CC);for(i=250;i!=0;i-);void main()unsigned char value;unsigned int k;char strIndexs6=20,20,20,20,1,12;Init8255();while(1)value= getData2(ADC_0808,1);for(k=100;k!=0;k-)dispStr(strIndexs,value,1);LedsOff();五、实验仿真图2010-10-26 星期二 AD转换(总线查询方式

16、和中断方式)一、实验思路本次实验采用的总线查询方式和中断方式。读片外地址0x4XXX,P2和/RD位低电平,经74LS02反相后打开三态门74LS125,将转换是否完成的标志EOC通过数据总线D7读入CPU,检查D7是否为1,若不为1,则重新读端口0x4XXX在检测,直到D7为1为止,读片外地址0x2XXX,P1,/RD为低电平,经74LS02反向为高电平,向ADC0808的OE送读数据的信号,ADC0808将转换结果从Out7Out0送到数据总线并读入CPU。二、实验步骤1、打开电脑,打开KEIL和proteus软件,2、在proteus软件中,新建一个文件,保存在C:/目录下。3、选择器件

17、,将所用到的器件都选择上。4、对照课本P189,将实验电路图连接好。5、在KEIL软件中新建一个工程文件,命名为ADZX.UV2。6、新建一个文件,命名为MAIN.c。7、在这一个文件中写入对应的程序,并保存。8、将这三个文件添加到建立的ADZX.UV2工程中。9、点击FLASH-CONIGURE FLASH TOOLS,在弹出的对话框中,修改晶振频率12MHZ以及勾选输出建立.HEX文件。10、编译工程文件,有错,则更改错误的地方,直至无误。11、将生成的ADZX.HEX文件添加到刚刚建立的实验电路图中的单片机中。12、仿真运行实验电路,观察LED显示情况,和所预期的情况想比较,不一样,则更

18、改程序或硬件电路。知道结果和预期一样三、实验硬件图1、总线查询方式硬件图2、中断方式硬件图四、实验程序1、总线查询方式程序A、DISPLAY.H和DISPLAY.C程序同上次实验B、主程序ADZX.C#include #include #include #define ADC_0808 1 #define ADC0808_DATA_PORT 0X2000 #define ADC0808_QUERY_PORT 0x4000 #define ADC0808_START_PORT 0x2000 unsigned char getData1(unsigned char ADC_Chip,unsigne

19、d char channel)unsigned char flag= 0; unsigned char value= -1; unsigned xdata ale; switch (ADC_Chip)case ADC_0808:XBYTEADC0808_START_PORT=channel;P3=P3|0x08;P3=P3&0xdf;P3=P3|0x20;P3=P3&0xdf;flag=P3;while(1) ale=1;flag=flag &0x08;if(flag =0) break;flag=P3;value=XBYTEADC0808_DATA_PORT;return value;bre

20、ak;void dispStr (char strIndexs,unsigned char value,char channel)char i,k;for(i= 0;i3;i+) strIndexsi=value% 10;value=value/10;strIndexs4=channel;LedsOff();for(i= 250;i!=0;i-);for(k=6;k!=0;k-)LedsOff();for(i= 250;i!=0;i-);turn_On(k-1,strIndexsk-1,CC);for(i= 250;i!=0;i-);void main()unsigned char value

21、;unsigned int k;char strIndexs6=20,20,20,20,1,12;Init8255();while(1)value= getData1(ADC_0808,0);for(k= 100;k!=0;k-)dispStr(strIndexs,value,0);LedsOff();2、中断方式程序A、DISPLAY.H和DISPLAY.C程序同上次实验B、主程序ADC0808ZD.C#include #include #include #define ADC_0808 1 #define ADC0808_DATA_PORT 0X2000 #define ADC0808_Q

22、UERY_PORT 0x4000 #define ADC0808_START_PORT 0x2000 unsigned char value;void dispStr (char strIndexs,unsigned char value,char channel)char i,k;for(i= 0;i3;i+) strIndexsi=value% 10;value=value/10;strIndexs4=channel;LedsOff();for(i= 250;i!=0;i-);for(k=6;k!=0;k-)LedsOff();for(i= 250;i!=0;i-);turn_On(k-1

23、,strIndexsk-1,CC);for(i= 250;i!=0;i-);void main()unsigned xdata ale;Init8255();EX1=1;IT1=1;EA=1;XBYTEADC0808_START_PORT=5;P3=P3&0xdf;P3=P3|0x20;P3=P3&0xdf;while(1)ale=1;void EX1_Int() interrupt 2unsigned char value;char strIndexs6=20,20,20,20,1,12;EX1= 0;value=XBYTEADC0808_START_PORT;dispStr(strIndexs,value,5);LedsOff();EX1= 1;P3=P3&0xdf;P3=P3|0x20;P3=P3&0xdf;五、实验仿真图1、总线查询方式仿真图2、中断方式仿真图2010年10月31日星期日 测温放大电路、

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1