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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《智能仪器设计基础》实验指导书.docx

1、智能仪器设计基础实验指导书智能仪器设计基础实验指导书成都理工大学核技术与自动化工程学院电气工程系2012-9-10实验1 单片机 8255并行I/O扩展一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握Proteus7软件的使用、单片机的并行I/O扩展原理及8255芯片的工作原理。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include#include#define COM8255 XBYTE0x007F#define PA8255 XBYTE0x00

2、7C#define PB8255 XBYTE0x007D#define PC8255 XBYTE0x007E#define uchar unsigned charvoid main() COM8255=0x8E; while(1) PA8255=0xFF; 3、Proteus7软件平台下实现软硬件仿真,效果如下:实验2 单片机的 LCD 驱动实验一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握51内核单片机的LCD驱动接口设计及驱动程序的编写原则。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil

3、C 软件平台下编写程序代码,参考如下:; LCD Display Driver Demo.; Timing code assumes 1.2MHz Clock;LCD Registers addressesLCD_CMD_WR equ 0LCD_DATA_WR equ 1LCD_BUSY_RD equ 2LCD_DATA_RD equ 3;LCD CommandsLCD_CLS equ 1LCD_HOME equ 2LCD_SETMODE equ 4LCD_SETVISIBLE equ 8LCD_SHIFT equ 16LCD_SETFUNCTION equ 32LCD_SETCGADDR e

4、qu 64LCD_SETDDADDR equ 128;Reset vector org 0000h jmp start;Start of the program org 0100hstring1a:db ! A M A Z I N G ! db 0string1b:db ! A M A Z I N G ! db 0string2:db A virtual LM032L. db 0string3:db driven by a virtual db 0string4:db 8051 processor! db 0start: mov A,#038h call wrcmdloop: mov A,#L

5、CD_SETVISIBLE+6 ;Make the display & blink visible: call wrcmd mov R7,#2loop2: mov DPTR,#string1a call wrstr mov DPTR,#200 call wtms mov A,#LCD_CLS ;Clear screen call wrcmd mov DPTR,#string1b call wrstr mov DPTR,#200 call wtms mov A,#LCD_CLS ;Clear screen call wrcmd djnz R7,loop2 mov DPTR,#string1a c

6、all wrstr mov DPTR,#400 call wtms mov A,#LCD_SETDDADDR+64 call wrcmd mov DPTR,#string2 call wrslow mov DPTR,#200 call wtms mov A,#LCD_CLS ;Clear screen call wrcmd mov DPTR,#string3 call wrslow mov A,#LCD_SETDDADDR+64 call wrcmd mov DPTR,#string4 call wrslow mov A,#LCD_SETVISIBLE+7 ;Show the blink cu

7、rsor as well. call wrcmd mov DPTR,#2000 call wtms mov A,#LCD_CLS ;Clear screen call wrcmd jmp loop;Sub routine to write null terminated string at DPTR in program ram.wrstr: mov R0,#LCD_DATA_WRwrstr1: clr A movc A,A+DPTR jz wrstr2 movx R0,A call wtbusy inc DPTR push DPL push DPH pop DPH pop DPL jmp w

8、rstr1wrstr2: ret;Sub routine to write null terminated string at DPTR in program ram. Slowlywrslow: mov R0,#LCD_DATA_WRwrslw1: clr A movc A,A+DPTR jz wrslw2 movx R0,A call wtbusy inc DPTR push DPL push DPH mov DPTR,#100 call wtms pop DPH pop DPL jmp wrslw1wrslw2: ret;Sub routine to write command:wrcm

9、d: mov R0,#LCD_CMD_WR movx R0,A jmp wtbusy;Sub routine to write character:wrchar: mov R0,#LCD_DATA_WR movx R0,A;Subroutine to wait for busy clearwtbusy: mov R1,#LCD_BUSY_RD movx A,r1 jb ACC.7,wtbusy ret;Wait for number of seconds in Awtsec: push ACC call wtms pop ACC dec A jnz wtsec ret;Wait for num

10、ber of milliseconds in DPTRwtms: xrl DPL,#0FFh ;Cant do DEC DPTR, so do the loop by forming 2s complement xrl DPH,#0FFh ;and incrementing instead. inc DPTRwtms1: mov TL0,#09Ch ;100 ticks before overflow = 1ms at 1.2MHz Clock mov TH0,#0FFh mov TMOD,#1 ;Timer 0 mode 1 setb TCON.4 ;Timer 0 runswtms2: j

11、nb TCON.5,wtms2 clr TCON.4 ;Timer 0 stops clr TCON.5 inc DPTR mov A,DPL orl A,DPH jnz wtms1 ret END 3、Proteus7软件平台下实现软硬件仿真,效果如下:实验3 SPI接口实验DS1302时钟一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握SPI工作原理,并掌握DS1302时钟的软硬件实现方法。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include

12、 #include LCD1602.h#include DS1302.hvoid Delay1ms(unsigned int count) unsigned int i,j; for(i=0;icount;i+) for(j=0;j120;j+);main() SYSTEMTIME CurrentTime; LCD_Initial(); Initial_DS1302(); GotoXY(0,0); Print(Date: ); GotoXY(0,1); Print(Time: ); while(1) DS1302_GetTime(&CurrentTime); DateToStr(&Curren

13、tTime); TimeToStr(&CurrentTime); GotoXY(6,0); Print(CurrentTime.DateString); GotoXY(6,1); Print(CurrentTime.TimeString); Delay1ms(300); 3、Proteus7软件平台下实现软硬件仿真,效果如下:实验4 1-Wire接口实验DS18b20温度一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握1-Wire工作原理,并掌握DS18b20温度的软硬件实现方法。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理

14、图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include /用AT89C51时就用这个头文件/#include /用华邦W78E58B时必须用这个头文件#include #include #include #include #include #include #include LCD1602.h /液晶显示头文件/sbit DQ = P34; /定义DQ引脚为P3.4unsigned char t2,*pt; /用来存放温度值,测温程序就是通过这个数组与主函数通信的unsigned char TempBuffer19=0x2b,0x31,0x32,0x32,0x

15、2e,0x30,0x30,0x43,0; /显示实时温度,上电时显示+125.00Cunsigned char TempBuffer017=0x54,0x48,0x3a,0x2b,0x31,0x32,0x35,0x20, 0x54,0x4c,0x3a,0x2b,0x31,0x32,0x34,0x43,0; /显示温度上下限,上电时显示TH:+125 TL:+124C unsigned char code dotcode4=0,25,50,75;/*因显示分辨率为0.25,但小数运算比较麻烦,故采用查表的方法*再将表值分离出十位和个位后送到十分位和百分位*/void covert0( unsig

16、ned char TH, unsigned char TL) /将温度上下限转换为LCD显示的数据 if(TH0x7F) /判断正负,如果为负温,将其转化为其绝对值 TempBuffer03=0x2d; /0x2d为-的ASCII码 TH=TH; TH+; else TempBuffer03=0x2b; /0x2B为+的ASCII码 if(TL0x7f) TempBuffer011=0x2d; /0x2d为-的ASCII码 TL=TL+1; else TempBuffer011=0x2b; /0x2B为+的ASCII码 TempBuffer04=TH/100+0x30; /分离出TH的百十个位

17、 if( TempBuffer04=0x30) TempBuffer04=0xfe; /百位数消隐 TempBuffer05=(TH%100)/10+0x30; /分离出十位 TempBuffer06=(TH%100)%10+0x30; /分离出个位 TempBuffer012=TL/100+0x30; /分离出TL的百十个位 if( TempBuffer012=0x30) TempBuffer012=0xfe; /百位数消隐 TempBuffer013=(TL%100)/10+0x30; /分离出十位 TempBuffer014=(TL%100)%10+0x30; /分离出个位void co

18、vert1(void) /将温度转换为LCD显示的数据 unsigned char x=0x00,y=0x00; t0=*pt; pt+; t1=*pt; if(t10x07) /判断正负温度 TempBuffer10=0x2d; /0x2d为-的ASCII码 t1=t1; /*下面几句把负数的补码*/ t0=t0; /* 换算成绝对值*/ x=t0+1; /*/ t0=x; /*/ if(x255) /*/ t1+; /*/ else TempBuffer10=0x2b; /0xfe为变+的ASCII码 t1=4; /右移4位 x=x&0x0f; /和前面两句就是取出t0的高四位 t1=t1

19、|x; /将高低字节的有效值的整数部分拼成一个字节 TempBuffer11=t1/100+0x30; /+0x30 为变 09 ASCII码 if( TempBuffer11=0x30) TempBuffer11=0xfe; /百位数消隐 TempBuffer12=(t1%100)/10+0x30; /分离出十位 TempBuffer13=(t1%100)%10+0x30; /分离出个位 t0=t0&0x0c; /取有效的两位小数 t0=2; /左移两位,以便查表 x=t0; y=dotcodex; /查表换算成实际的小数 TempBuffer15=y/10+0x30; /分离出十分位 Te

20、mpBuffer16=y%10+0x30; /分离出百分位 void delay(unsigned char i) while(i-);main() unsigned char TH=110,TL=-20; /下一步扩展时可能通过这两个变量,调节上下限 /测温函数返回这个数组的头地址 while(1) pt=ReadTemperature(TH,TL,0x3f); /上限温度-22,下限-24,分辨率10位,也就是0.25C /读取温度,温度值存放在一个两个字节的数组中, delay(100); covert1(); covert0(TH,TL); LCD_Initial(); /第一个参数列

21、号,第二个为行号,为0表示第一行 /为1表示第二行,第三个参数为显示数据的首地址 LCD_Print(0,0,TempBuffer0); LCD_Print(0,1,TempBuffer1); 3、Proteus7软件平台下实现软硬件仿真,效果如下:实验5 A/D转换实验一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握A/D工作原理,并掌握AD0808的软硬件实现方法。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include #include 160

22、2.h#define uchar unsigned char#define uint unsigned intuchar *p,a3;void uchar2string(uchar);void LCD_disp_string(uchar x,uchar y,uchar *Date);sbit EOC=P30;sbit ST=P36;sbit OE=P37;void main() uchar convertnum; uint temp; P2=0xff; P3=0xff; p=a; LCD_init(0x38,0x0c,0x04,LCD_CLEAR_SCREEN); delay_ms(10);

23、LCD_disp_string(0,0,AD0808 Show:); LCD_disp_string(0,1,Value:); while(1) ST=0; ST=1; ST=0; while(EOC=0) OE=1; convertnum=P2; OE=0; temp=convertnum*5; temp=temp/256; convertnum=temp; uchar2string(convertnum); LCD_disp_string(7,1,p); delay_ms(1); /*显示函数*/void LCD_disp_string(uchar x,uchar y,uchar *Dat

24、a) if (y=LINE1) LCD_send_command(LINE1_HEAD+x); for(;xLINE_LENGTH&*Data!=0;x+) LCD_send_data(*(Data+); if(y=LINE2) LCD_send_command(LINE2_HEAD+x); for(;xLINE_LENGTH&*Data!=0;x+) LCD_send_data(*(Data+); /*转化函数*/void uchar2string(uchar cons) unsigned int b; a2=cons%10+0; b=cons/10; a1=b%10+0; a0=b/10+

25、0;3、Proteus7软件平台下实现软硬件仿真,效果如下:实验6 综合实验基于51的电子计算器一、实验目的: 通过本次实验,对学生的综合设计能力进行锻炼,掌握实际开发项目的设计开发流程。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:;4 FUNCTION CALCULATOR PROGRAM;Assumes 1.2MHz Clock for scan timing.; TODO : Custom Character for the M sign ; Check instances of

26、 multiple decimal point presses ( all covered ?);Reset vector org 0000h jmp start;Start of the program org 0100hstart: mov A,#030h ;1 line, 8 bits call wrcmd mov A,#LCD_SETVISIBLE + 4 call wrcmd mov A,#LCD_SETDDADDR+15 ; Start at right hand side of the display call wrcmd mov A,#LCD_SETMODE + 3 ; Automatic Increment - Display shift left. call wrcmd mov 025h,#00h ; Set output mode (floating point). call boundsbuffer ; Initialise the bounds buffer - used for error checking. mov mode,#4 ; Initialise the

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

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