历史上的今天
今天是:2024年12月23日(星期一)
2021年12月23日 | 51单片机实验1——串行通信(TX/RX)
2021-12-23 来源:eefocus
仿真电路图如下:
代码如下:
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
uint code segcode[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D, 0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
uchar code weicode[4]={0x0e,0x0d,0x0b,0x07};
uchar disbuf[4]={0,0,0,0}; //定义并初始化数码管数据缓冲区
void delayms(uint x) //延时1ms函数
{
uchar i;
while(x--)
{
for(i=0;i<125;i++);
}
}
void usart_Init( ) //串行中断初始化程序
{
TMOD=0x20;
TH1=0xfa;
TL1=0xfa; // 配置串口波特率为 9600
SCON=0x50; //设置串口工作在方式1,8位数据位
PCON=0x80; // 配置为波特率倍增
IE=0x90; // 打开中断
TR1=1; // 启动定时/计数器
}
void segdisplay() //数码管显示函数
{
uchar i;
for(i=0;i<4;i++)
{
P1=weicode[i];
P0=segcode[disbuf[i]];
delayms(1);
P0=0x00;
}
}
void main( ) //主函数
{
usart_Init( ); //串口初始化
while(1) { segdisplay(); } //CPU循环执行显示函数
}
void usart_Int( ) interrupt 4 //串行中断服务程序
{
if(RI==1) //判断是否为接收中断
{
uint temp; //临时开辟一段内存空间,用以存放接收到的数据
RI=0; //将RI及时置0,防止数据丢失
temp=SBUF; //读取接收数据缓冲器的内容到指定内存空间中
SBUF=temp; //将输入的数据重新发送到上位机,回显
while(TI==0);
TI=0; //等待发送完成将TI复位
disbuf[3]=disbuf[1];
disbuf[2]=disbuf[0];
disbuf[1]=temp/0x10;
disbuf[0]=temp%0x10; //修改显示缓冲区
}
}
运行仿真后,输入字符‘1’,数码管显示“31”,如图下:

依次输入其他字符会相应显示他们的ASCII码,输入第二个字符‘2’,数码管显示“3132”;输入第三个字符‘5’的话,数码管显示“3235”(将之前的31顶掉了),连续输入字符后依次类推。
史海拾趣
|
目前在做一个SRAM驱动,写成的是流驱动,驱动写好了! 但是在做MMU地址映射表时出问题了!具体如下: 原来的g_oalAddressTable[DATA] 表为 g_oalAddressTable DCD 0x80000000, ...… 查看全部问答> |
|
方法和技术——《使用2790型数字源表开关系统测试双安全气囊充气机模块》 机械臂接口 – 数字I/O 2790内置的数字接口能够直接控制器件机械臂。数字接口包含五路TTL兼容数字输出和两路输入,以及外部供电的继电器和地线连接。五路输出提供测试通过/失败通知。可以定义两个上限和两个下限用于任何数字万用表测试。每个测 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:39 编辑 有谁用过CC430及CC1111的吗?有没有相关的资料,最好是中文的 … 查看全部问答> |
|
今天调新板子,程序从JTAG和AS口都下不进去,且提示不同。 加载JTAG,程序烧到48%,出ERROR: CFG_DONE pin failed to go high. 用万用表测,CFG_DONE 角经电阻10K接到3.3V,且 CFG_nCE 已接地。 换成AS口,在选择目标POF文件时就出错 ...… 查看全部问答> |
|
最近在zigbee板块发表帖子时发现选项只有问题讨论,已解决等,是否可以在增加一个经验分享呢?因为有时发帖子时搞个问题讨论或者已解决有点不伦不类,望采纳!… 查看全部问答> |
|
想请教大家一个问题,我用的是atmega128最小系统板,每次我编好一个程序,然后用Programmers Notepad [WinAVR] 调试,用makefile选择F_CPU频率,有时候选择8M,有时候选择1M,程序调试好后用AVR Studio 4 下载到单片机都可以运行。我想问一下,用ma ...… 查看全部问答> |




