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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

用Delphi实现上位机与单片机串行通信源代码及效果图.docx

1、用Delphi实现上位机与单片机串行通信源代码及效果图用Delphi实现上位机与单片机串行通信效果图及源代码只公布下位机(单片机)程序/*/本设计使用AT89C2051单片机,/时钟频率为11.0592MHz,12MHz也可以/用共阳极LED数码管显示及使用DS18B20智能温度传感器。/设计日月科技,QQ512566413#include #include /_nop_();延时函数,用于小于1us延时#define uchar unsigned char#define uint unsigned int#define disdata P1 /段码输出口sbit din=P15; /LED小

2、数点控制/#define discan P3 /动态扫描口/占用整个P3口了,现改为指定下面的端口,/把多余端口占用的空出来/列扫描控制IO口sbit led_1 = P20;sbit led_2 = P21;sbit led_3 = P22;sbit led_4 = P23;sbit dq= P33; /温度输入口uchar ch;uchar crc;/*温度小数部分用查表法*/uchar data RomCode8= 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;uchar code ditab16= 0x00, 0x01, 0x01, 0

3、x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x08, 0x09, 0x09;/*uchar code dis_712=0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xff, 0xbf;*/uchar code dis_712=0x28,0xEE,0x32,0xA2, 0xE4,0xA1,0x21,0xEA,0x20,0xA0,0xff,0xF7;/共阴极LED段码表0123456789不亮-uchar code str12=0,1,2,3,4,

4、5,6,7,8, 9, ,-;/uchar code scan_con4=0x04,0x08,0x10,0x20; /列扫描控制字,P3.2 P3.3 P3.4 P3.5/0x04化成二进制就是0000 0100/0x08化成二进制就是0000 1000/0x10化成二进制就是0001 0000/0x20化成二进制就是0010 0000/0x40化成二进制就是0100 0000/0x80化成二进制就是1000 0000uchar data temp_data2=0x00, 0x00; / 读出温度暂放uchar data display5=0x00, 0x00, 0x00, 0x00, 0x0

5、0;/显示单元数据,共4个数据,一个运算暂存用/串口初始化晶振为11.0592M 方式1 波特率300-57600void InitCom(void) #define XTAL 11059200 / CUP 晶振频率 #define baudrate 9600 / 通信波特率 TMOD = 0x20; /定时器1方式2 定时器0方式1 /用在别处可以不用定时器0,TMOD=0x20 TH1=TL1=(unsigned char)(256-(XTAL/(32L*12L*baudrate); /THTL; SCON = 0x50; /串口方式1,允许接收 /TCON = 0x40; /设定时器1开

6、始计数 /PCON = 0x80; /波特率加倍控制,SMOD位 PCON=0x00; RI=0; /清收发标志 TI=0; IE=0x90; /0x00=禁止任何中断,0x90开启T1中断,0x92开启全部中断 TR1=1; /启动定时器1/向串口输出一个字符(非中断方式)void ComOutChar(unsigned char OutData) SBUF=OutData; /输出字符 while(!TI); /空语句判断字符是否发完 TI = 0; /清TI/串口接收中断函数void serial () interrupt 4 /using 3 if(RI) RI=0 ; ch=SBUF

7、; /*11微秒延时函数*/void delay(uint t) for(;t0;t-);/*显示扫描函数*/void scan(void) char k; for (k=0;k0;i-) /定义 8 bit,写 8 bit DQ = 1; _nop_(); _nop_(); DQ = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /5us DQ=val&0x01; /最低位移出,并写入总线 delay(6); /66us val=val1; /右移一位,倒数第二位变为最低位 DQ=1; delay(1); /高电平维持11us,写结束/*18

8、B20读1个字节函数*/uchar ReadOneChar(void) uchar i; uchar value = 0; for (i = 8; i 0; i-) DQ = 1; _nop_(); _nop_(); value=1; /右移一位 DQ=0; _nop_(); _nop_(); _nop_(); _nop_(); /4us DQ=1; _nop_(); _nop_(); _nop_(); _nop_(); /4us ,读时隙 if(DQ) value|=0x80; /DQ=1,则写入为 10000000 delay(6); /66us DQ = 1; return(value)

9、;/*/* */* 读取64位序列码 */* */*/void Read_RomCord(void) uchar j; Init_DS18B20(); WriteOneChar(0x33); / 读序列码的操作 for(j=0;j8;j+) RomCodej=ReadOneChar(); /*/* */*DS18B20的CRC8校验程序 */* */*/uchar CRC8(void) uchar i, x; uchar crcbuff; crc = 0; for(x=0;x8;x+) crcbuff=RomCodex; for(i=0;i=1; else crc=0x18; /CRC=X8+X5+X4+1 crc=1; crc|=0x80; crcbuff=1; return crc;/*读出温度函数*

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

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