完善资料让更多小伙伴认识你,还能领取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); */ }
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12026 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:43 , Processed in 0.631564 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号