中易网

如何在串口上显示十进制数?我程序帖出来,望大侠指点。。。

答案:2  悬赏:30  
解决时间 2021-03-11 20:41
#include //头文件
//#define FOSC 11059200
#define uchar unsigned char
#define uchar unsigned char
uchar num;
uchar m;

//初始化子程序
void Time1_1(void)
{
TH0=(65536-5000)/256;//高位赋初值50毫秒
TL0=(65536-5000)%256;//低位赋初值50毫秒
EA=1;//开总中断
ET0=1;//设置定时器0中断
TMOD = 0x21;//定时器0方式1
TR0=1; //启动Timer0
}
void uart1_Init()//串口初始化
{
TMOD=0x20; //用定时器设置串口波特率 9600
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
REN=1; //串口初始化
SM0=0;
SM1=1;
EA=1; //开启总中断
ES=1;
}
//void delayms(int t)
//{
// int i;
// for(;t>0;t--)
// for(i=FOSC/13186;i>0;i--);
//}
//--------------------------------------------------
//串口1初始化
//--------------------------------------------------
//
//void uart1_init(int baud,char es)
//{
// char v;
// TMOD&=0x0f;
// TMOD|=0x20; //T1方式2
// v=256-(( FOSC*10/12/32/baud+5)/10);//四舍五入
// TH1=v;
// TL1=v;
// //IOSET(AUXR,BIT(6));//T1x12,让T1的时钟变为原来的12倍,波特率也提高了
// TR1=1;
// SCON=0x50; //0101 0000 方式1,允许接收
// ES=1; //允许串行中断
// //EA =1; //全局中断允许
//}
//--------------------------------------------------
//串口1发送单个字符
//--------------------------------------------------
void uart1_sendbyte(char ud)
{
SBUF=ud;
while(TI==0); //等待它由0变为1
TI=0; //清发送标志
}
void main(void)
{
int i;
uart1_Init();
Time1_1();
while(1)
{

for(i=0;i<50;i++)
{
if(num==31)
{
num=0;

m=i;
uart1_sendbyte(i);

}
}
}
}
void uart1_1(void) interrupt 4 //串口中断函数
{
TI=0;
RI=0;
ES=0;
}
void Time1_0(void) interrupt 1 //定时器0中断入口
{

TH0=(65536-50000)/256; //定时50毫秒
TL0=(65536-50000)%256;
TR0=1;
num++;

}
最佳答案
问题含义不太清楚,提供以下代码仅供参考
//发送数据的二进制码
void uart1_sendbyte(char ud)
{
SBUF=ud;
while(TI==0);
TI=0;
}
#define Numtoasc(b) ('0'+ b)
#define Hextoasc(b) ('A'+ b - 10)
#define GetD2(b) (b / 100)
#define GetD1(b) ((b % 100)/10)
#define GetD0(b) (b % 10)

//发送数据的十六进制码
void uart1_sendHexbyte(char buf )
{
unsigned char buf1;
buf1 = (buf >> 4) & 0x0f;
if (buf1 < 10)
uart1_sendbyte ( Numtoasc(buf1));
else
uart1_sendbyte ( Numtoasc(buf1));
buf1 = buf & 0x0f;
if (buf1 < 10)
uart1_sendbyte ( Numtoasc(buf1));
else
uart1_sendbyte ( Numtoasc(buf1));
}
//发送数据的十进制码
void uart1_sendDecbyte(char ud)
{
uart1_sendbyte ( Numtoasc(GetD2(ud)));
uart1_sendbyte ( Numtoasc(GetD1(ud)));
uart1_sendbyte ( Numtoasc(GetD0(ud)));
}
全部回答
你好! 建议 去 我的领地 5d6d 的 proteus 论坛看看 那里有很多 单片机仿真实例,包括仿真图 和 源码 搜 5d6d 和 proteus 2个关键词 如果对你有帮助,望采纳。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
龙信二手车(镇江丹阳市)怎么去啊,我要去那办
侯氏宗祠这个地址在什么地方,我要处理点事
系统中有未注册的dll文件 怎么注册
怎么制作假山鱼池
when our part of the earth turns ____ from
如皋市芳华服饰厂在哪里啊,我有事要去这个地
用质量数如何求原子质量
男朋友做什么事情都要和家里人商量
群谊家具我想知道这个在什么地方
母爱是一首小夜曲,那是母亲为哄睡孩子亨起的
求大侠改写公式为通达信所用
新买了一台谷歌平板电脑,可是不知道怎么用,
早上起来没刷牙前吞下睡醒后嘴里的口水有危害
麻烦问一下,我现在是大二学生,专业是食品科
章飞一绝专业祛斑祛痘这个地址在什么地方,我
推荐资讯
“锄头有肥”这句话的含义是?
"臣闻上古其风朴略,愿官家好将息.什么意思
对于国内的Mooc,朋友们给点建议。。
江西九江和湖南长沙的气候哪个比较接近广东汕
博诚汽车美容维修中心怎么去啊,有知道地址的
茅竹镇中学地址在什么地方,想过去办事
伦烠这名字怎么样呢?还是沦烠好呢
滑冰和冲浪分别适合在什么样的地理环境中开展
上海考研辅导班(全封闭式)哪个好(同济大学)
怎么辨别生花生米好和坏
求助:集中供暖热力购买卡丢失怎么补办?
我在CAD里用矩形做了个模型,怎么取消这个模
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?