电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
求串口控制流水灯程序
已解决
73482
个问题
已帮助
5993
位优秀工程师
求串口控制流水灯程序
唯爱小姑娘
2016-11-23
浏览量:1420
刚学习串口,开发板自带的程序没啥卵用,求 大神帮忙写个程序,学习学习。
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
MOP
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
volatile uchar a;
uchar i;
uchar code SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管
uchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //流水灯
void delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void init()//串口初始化
{
TMOD=0X20;//T1工作在方式2及自动重装
TH1=0XFD;//波特率9600
TL1=0XFD;
TR1=1;
// SCON=0X50; //SCON=0X50也可以写成SM0=0;SM1=1;
SM0=0;
SM1=1;
REN=1;
ES=1; //启动串口中断
EA=1;
}
void display(uchar z)
{
P2=0xff;
P1=SEG[z];
}
void main()
{
init();
while(1)
{
if(RI==1)
RI=0;
}
}
void ser() interrupt 4
{
a=SBUF;
display(a);
if(a==6)
{
for(i=0;i<8;i++)
{
P1=tab[i];
delay_ms(200);
}
P1=0xff;
}
}
您玩看看,輸入0x06時會啟動流水燈,輸出數碼管,但我沒驗證過唷,您可嘗試驗證並修改
发布于
2016-11-23
举报
评论 9
0
0
唯爱小姑娘
回复了 MOP:前辈,我用的是开发板,硬件怎么连,还有我的数码管和我的流水灯是在一个端口您弄了俩个端口
回复
唯爱小姑娘
回复了 MOP:您定义P2口有什么含义啊
回复
MOP
回复了 唯爱小姑娘:他這個範例是P1接LED,P2接數碼管,有疑慮的話可以先Comment掉
回复
MOP
回复了 唯爱小姑娘:更正,他這個範例是P1接LED和數碼管,P2沒有作用,因為他也沒有電路圖,有疑慮的話可以先Comment掉
回复
MOP
回复了 唯爱小姑娘:我在想他P2應該是當作他的數碼管Vcc,然後P1拉低那個Bit時後,對應的Segment導通點亮,如果您電路Vcc或者共陰極的數碼管拉到地,那只要一個P1,剛剛看太快^^
回复
MOP
回复了 唯爱小姑娘:如果都不是直接接Vcc或者GND,那就是位選的方式,P2=0xff表示8個位數的數碼管都啟用,在依照P1的設置點亮對應的Segment,也稱作段選,我看了一下有段選/位選分開的(P1/P2),也有一起的(P1)接線到74573的方式,看看哪裡還有問題的^^
回复
MOP
回复了 唯爱小姑娘:可以的話也把您的板子原理圖上傳上來,或者仿真的電路圖,不是每塊開發板都一樣
回复
唯爱小姑娘
回复了 MOP:谢谢您的答复
回复
唯爱小姑娘
回复了 MOP:我得到我想要的啦
回复
其他答案
数量:
3
fighter
串口控制??是要上位机发指令控制么
发布于
2016-11-23
举报
评论 2
0
0
唯爱小姑娘
回复了 fighter :不是就是简单的开发板直接用串口中断,控制灯,或者数码管神魔的
回复
唯爱小姑娘
回复了 fighter :不是串口通信
回复
guyuemao
之前买过开发板 有串口控制流水灯的程序
发布于
2016-11-24
举报
评论 1
0
0
唯爱小姑娘
回复了 guyuemao :我这个开发板没有
回复
王奕
不建议求程序哦 给你一个思路 用串口发一个数据 先正确接收 然后 根据数据实现一个流水灯左移或者右移。要学着把各个模块代码集成使用起来
发布于
2016-11-24
举报
评论 4
0
0
唯爱小姑娘
回复了 Eagleson :发送失败怎么办,奕哥
回复
唯爱小姑娘
回复了 Eagleson :发送成功啦怎么和小灯练习起来啊
回复
MOP
回复了 唯爱小姑娘 :上面回覆一下唷,不知道您現階況如何,還有如果您自己寫的UART能動了,參考中斷的那部分程式碼即可,只是在中斷開始依序點亮LED,移位也是一個方法,總之就是有變化
回复
Eagleson
回复了 唯爱小姑娘 :你使用接收到字节 作为一个判断条件 比如控制灯的闪烁 流水 心形 都可以啦 代码里面加入流水灯功能
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
求串口控制流水灯程序
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: