完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include #include #define uchar unsigned char //定义类型变量 #define uint unsigned int unsigned char code reserve[3] _at_ 0x3b; //unsigned char code str1[] = "系统开始运行n" ; //unsigned char code str2[] = "请输入指令:01 for start,02 for stop (请先切换到十六进制)n "; uchar a; uchar data al=0,ah=0; //char型一个字节 uchar flag_on=0; void read1543(uchar port); void delayms(uint); //延时ms void txdata(unsigned char dat); //void ad(); //TLC1543 A/D用转换用 ***it CLOCK = P1^0; ***it ADDR = P1^1; ***it DATA = P1^2; ***it _CS = P1^3; // void main(void) { SCON = 0x50;//设定串口工作方式1,接收使能 TMOD = 0x20;//定时器1工作与8位自动重载模式,用于产生波特率 TL1 = 0xfd; TH1 = 0xfd; //波特率9600 TR1 = 1; SM0=0; SM1=1; REN=1; EA= 1; ES=1; delayms(50); while(1) { if(flag_on==1){ read1543(0); delayms(100); txdata(al); txdata(ah); delayms(100); } } } void ser() interrupt 4 { RI=0; a=SBUF; if(a==1) flag_on=1; else flag_on=0; } //延时子程序 void delayms(unsigned int ms) { unsigned char k; while(ms--) { for(k=0;k<114;k++) ; } } //发送数据子函数 void txdata(unsigned char dat) { SBUF = dat;//发送数据 while(!ti) ; //等待数据发送完中断 TI=0;//清中断标志 } void read1543(uchar port) //从TLC1543读取采样值,形参port是采样的通道号 { //uint data ad; uint data i; //int型两个字节 CLOCK=0; _CS=0; port<<=4; //左移4位 for (i=0;i<4;i++) //把通道号打入1543 { ADDR=(bit)(port&0x80); //取最高位,存入ADDR; CLOCK=1; CLOCK=0; //1微妙的脉冲; port<<=1; //左移以为;即提取第七位。 } for (i=0;i<6;i++) //填充6个CLOCK { CLOCK=1;CLOCK=0; } _CS=1; _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _CS=0; //等待AD转换 for (i=0;i<2;i++) //取D9,D8 { DATA=1; CLOCK=1; ah<<=1; if (DATA) ah|=0x01; //按位或运算 CLOCK=0; } for (i=0;i<8;i++) //取D7--D0 { DATA=1; CLOCK=1; al<<=1; if (DATA) al|=0x01; //按位或运算; CLOCK=0; } _CS=1; /*ad=(uint)ah; ad<<=8; ad|=al; //得到AD值 return (ad); */ }
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
489 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
498 浏览 0 评论
655 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1329 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
558 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11753 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 01:48 , Processed in 0.451935 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号