收藏1 举报
#include "HT66F70A.h" #include "UART_Analog.h" #include "sys.h" #include "string.h" char x[]="Hello!\t"; void main() { UART_Init(); uchar i; while(1) { if(RXD==0) // for(i=0;i<strlen(x);i++) // Send(x[i]); Send(Receive()); } }
#include "HT66F70A.h" #include "sys.h" void Sys_Init() { _wdtc=0xaf; //关闭看门狗 /* PF2 PF5上拉输出使能 做指示灯,暂不使用 */ _pfc2=0; _pfpu2=1; _pfc5=0; _pfpu5=1; /* RX:PC2 TX:PC3 */ _pcc2=1; _pcc3=0; } void delay() { volatile int i=50000; while(i--); } [code]#include "HT66F70A.h" #include "UART_Analog.h" #include "sys.h" void UART_Init() { Sys_Init(); /* 定时器装初值 */ _tm0al=0x41;//设置波特率为9600 _tm0ah=0x03; /* 工作寄存器的设定 */ _tm0c0=0x98;//计数器暂停运行控制,时钟选择,TM总开关TnPAU=1 暂停 _tm0c1=0xc1;//工作模式,清零条件位 _tm3al=0x41;//设置波特率为9600 _tm3ah=0x03; /* 工作寄存器的设定 */ _tm3c0=0x98;//计数器暂停运行控制,时钟选择,TM总开关TnPAU=1 暂停 _tm3c1=0xc1;//工作模式,清零条件位 } void Waitting0() //等待计时器0溢出 { while(!_t0af); _t0af=0; } void Waitting3() //等待计时器3溢出 { while(!_t3af); _t3af=0; } int judge(char input,int j) { if(input&j) return 1; else return 0; } void Send(char input) { uchar i=8; int j=0x01; _t0pau=0; //开始计时 TXD=0; Waitting0(); while(i--) { TXD=judge(input,j); Waitting0(); j<<=1; } TXD=1; Waitting0(); _t0pau=1; _pf5=~_pf5; //指示灯 } char Receive() { uchar i=8; char receive=0; _t3pau=0; //开始计时 if(RXD==0) { Waitting3(); while(i--) { if(RXD) receive|=0x80; Waitting3(); receive>>=1; } Waitting3(); if(RXD) _t3pau=1; //停止计时 } return receive; }[/code]
查看全部评分
coody 发表于 2016-4-17 22:36 模拟串口其实很简单,就是按串口的位时间发送或接收就好了。 我从上世纪90年代就经常软件模拟多路全双工串 ...
datouyuan 发表于 2016-4-18 16:26 给你一个用状态机做的模拟串口供参考,占用一个定时器中断,但效率很高.虽然是51MCU,但移植到其它mcu是很简单 ...
Mr_D 发表于 2016-4-17 13:05 主程序部分
zhlcm 发表于 2016-4-26 09:20 什么原因啊?
hebutwangyun 发表于 2016-4-27 16:21 为什么没有 UART_Analog.h
Mr_D 发表于 2016-4-17 21:27 啊,不好意思,已经解决了
Mr_D 发表于 2016-4-27 22:02 时序不对,语句顺序改一下就可以了
韩小阳 发表于 2016-5-2 14:08 您好我很着急我想要看一下您改那个程序的完整版可以发给我么
Blue-Blue 发表于 2016-5-4 23:50 语句顺序怎么改?求指导
Mr_D 发表于 2016-5-5 17:33 留个邮箱,我把程序发给你
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
人才类勋章
时间类勋章
1
10
2
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号