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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实习报告word格式模板Word下载.docx

1、3.1 74LS138资料 3.1.1 74LS138简介 74LS138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用 G1、/(G2A)和/(G2B)可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。若将选通5端中的一个作为数据输入端时,74LS138还可作数据分配器。图3.1.1 为74LS138 的引脚简图。图3.1.1 74LS138 引脚图3.1.2 74LS

2、138功能表74LS138功能表如表3.1.2所示。表3.1.2 74LS138 功能表3.2 TLC2543 AD转换芯片 3.2.1 TLC 2543 简介 TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D 转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。TLC2543的特点:(1)12位分辩率A/D 转换器;(2)在工作温度范围内10s 转换时间;(3)11个模拟输入通道;(4)3路内置自测试方式;(5)采样率为66kbps;(6)线性误差1LSBmax;(7)有转换结束输出EOC

3、;(8)具有单、双极性输出;(9)可编程的MSB或LSB前导。3.2.2 TLC2543引脚功能 TCL2543 引脚功能如表3.2.2 所示。引脚号名称I/O说明19、11、1、2AIN0AIN10I拟量输入端。15CS片选段。CS的下降沿使能DATA IN、DATA OUT和I/O CLOCK。17DATA INPUT串行数据输入端。数据在I/O CLOCK的上升沿串入。前4位数据为模拟电压的通道号或片内自测电压通道号,高位在先。16DATA OUTO串行数据输出端。数据在I/O CLOCK的下降沿写入。在CS无效或进行A/D转换时,该脚保持高阻状态。在数据输出时,由软件编程决定是高位在先

4、还是低位在先。19EOC转换结束标志。在输入串行数据的最后一个时钟周期的下降沿,即开始A/D转换时,EOC脚变低,直到转换结束后变高。此时数据准备完毕,可以输出。10GND地,REF-接该脚。18I/O CLOCKI/O时钟14REF+正参考电压端,一般情况接VCC。13REF-负参考电压端,一般情况接地。20VCC正电源电压输入端。电压为5V0.5V。表3.2.2TLC2543 引脚功能表3.2.3 TLC 时序图 TLC时序图如图3.2.3所示。图3.2.3 用CS进行12个时钟传送的工作时序图(注:在编程时一定要严格遵守时序。) 3.2.4 TLC 指令功能TLC指令功能如图3.2.4所

5、示 图3.2.4 TLC 指令功能(说明:发送指令和接受数据可同时进行也可先发指令再接收数据, 但是接收到的数据是上一次选通的通道转换的数据。3.3 74LS1643.3.1 74LS164简介 8 位串行输入,并出移位寄存器74ls164、74lsT164 是高速硅门COMS器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平

6、,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,非同步地清除寄存器,强制所有的输出为低电平。 74LS164引脚图 74LS164逻辑图3.3.2 74LS164使用时序H = HIGH(高)电平h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平L = LOW(低)电平l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平q =

7、 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态 = 低-至-高时钟跃变4 软件设计4.1 程序流程图 数字电压表的程序流程图如图5.1所示。图5.1 数字直流电压表程序流程图4.2 程序代码#includeintrins.h#define uint unsigned int#define uchar unsigned charsbit doult=P05;sbit AA=P00;sbit BB=P01;sbit CC=P02;sbit SDA = P03;/数据总线sbit SCK = P04;/时钟sbit key0=P10;sbit

8、 key1=P11;sbit key2=P12;sbit key3=P13;sbit LED=P26;uint dis10;uint dis310;uint dis410;uchar yy=2,fz,di,yun,dt,n,shift;uint sum1=0;uchar key=0,flag=0;void K_deal(uchar key);uchar code strint2=当前电压:;uchar code strint4=电压上限:uchar code strint5=电压下限:uchar code strint3=ABCD963E852F7410/*AD转化函数*/uint TLC25

9、43(uchar port) uint ad=0; uchar i; SCK=0; AA=0; BB=0; port=4; for(i=0;i12;i+) if(doult=1) ad|=0x01; SDA=port&0x80 ; SCK=1;_nop_();port=port1;ad=ad return ad;/*延时*/void delayms(uchar x) uchar i,j; for(i=x;i0;i-) for(j=200;jj-);void Send_Byte(uchar dat)8; SDA = dat&0x80; SCK = 1; dat= 1; SCK = 0; /读一个

10、字节 uchar Read_Byte(void) uchar i; uint byte = 0; SCK = 0; for(i=0;16; byte4)|(byte8)&0x00ff; return (uchar)(byte);/读忙标志void Read_Busy(void) uchar temp; / CS = 1; do Send_Byte(0xfc);/ temp = Read_Byte(); while(temp&0x80); / CS = 0;/写字节命令 void Write_Cmd(uchar cmd) uchar temph = 0; uchar templ = 0; / t

11、emph = cmd& 0xf0; templ = (cmd& 0x0f) 4; Read_Busy(); Send_Byte(0XF8); Send_Byte(temph); Send_Byte(templ);/写数据 void Write_Dat(uchar dat) / temph = dat& templ = (dat& Send_Byte(0XFA);void pos(uchar x, uchar y) uchar addr; switch(y) case 0: addr = 0x80 + x;break; case 1: addr = 0x90 + x; case 2: addr

12、= 0x88 + x; case 3: addr = 0x98 + x; default: break; Write_Cmd(addr);/*液晶初始化*/ void LCD_Init(void) AA=1;BB=1;CC=0; Write_Cmd(0X30); Write_Cmd(0X01); Write_Cmd(0X02); Write_Cmd(0X0C);void Lcd_display(uchar key) uchar i; pos(0,0); i=0; while(strint2i!=0) Write_Dat(strint2i); i+; pos(0,1); while(strint

13、4i! Write_Dat(strint4i); pos(0,2); while(strint5i! Write_Dat(strint5i); pos(5,3); Write_Dat(strint3key);void AD_change() uint high1=0,high2=0,high3=0,high4=0; ad=TLC2543(0x01); ad=(float)ad/4096*5000; high1=ad/1000;/ if(high1sum3)/ high2=ad%1000/100; high3=ad%100/10; high4=ad%10; pos(5,0); Write_Dat

14、(high1+0X30); Write_Dat(.); Write_Dat(high2+0X30); Write_Dat(high3+0X30); Write_Dat(high4+0X30); /*矩阵按键*/ void keyscan() if(flag=0) Send_Byte(0x0e); /1111 1110 flag=1; temp=P1; temp=temp&0x0f; if(temp!=0x0f) delayms(5); switch(temp) case 0x0e: key=0; break; case 0x0d: key=1; case 0x0b: key=2; case 0

15、x07: key=3; while(temp! K_deal(key); if(flag=1) Send_Byte(0x0d); /1111 1101 flag=2; key=4; key=5; key=6; key=7; if(flag=2) Send_Byte(0x0b); /1111 1011 flag=3; key=8; key=9; key=10; key=11; if(flag=3) Send_Byte(0x07); /1111 0111 flag=4; key=12; key=13; key=14; key=15; flag=0; /*按键处理*/ void K_deal(uch

16、ar key) uchar j,p=0,m,x; uint l,i,k; if(key=15) fz+; l=0x30; k=0; disfz=0; if(key=14) fz+; k=1; disfz=1; if(key=13) k=4; disfz=4; if(key=12) k=7; disfz=k; if(key=10) k=2; if(key=9) k=5; if(key=8) k=8; if(key=6) k=3; if(key=5) k=6; if(key=4) k=9; if(key=3) uchar i; di=1; if(di=1) yun=1; m=1; l=1; j=fz; for(;fzfz-) for(i=fz; m=m*10; m=m*disl; l+; sum1=sum1+m; m=1; fz=0; di=9; / i=sum1; if(key=1) pos(7,1); i=sum1; /sum2=sum1; for(x=0;xsum1; sum1=sum1/10; p+; for(j=p;j-) dis3j=i%10; i=i/10; for(j=1;j=p;j+) Write_Dat(0x30+dis3j); if(key=2)

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

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