找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1129|回复: 2
打印 上一主题 下一主题
收起左侧

单片机+串口屏通信程序 可否指出程序里面的错误 多谢!

[复制链接]
跳转到指定楼层
楼主
ID:595380 发表于 2020-11-5 23:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*        关闭开发板电源
单片机开发板上不要接插任何模块,如液晶点阵这些都不能接上,
把P10用杜邦线链接到电机驱动模块 J4的4IN上,然后把小电机
端子插到 J2的 + 和D 上,不分线序接上即可。
选择好程序,打开电源点下载,接着打开单片机电源。
按S2减速,按S3加速。

************************************************
"1"为加速
"2"为减速
"3"为开
"4"为关
*/
#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar pwm_t;//调节值
uchar a,flag;
uchar bd = 50;//比对值
sbit _4IN = P1^7;//输出引脚
sbit led1 = P1^0;//初始化
sbit led2 = P1^1;//开关状态灯
sbit led3 = P1^2;//加速灯
sbit led4 = P1^3;//减速灯

//定时器0中断
void timer0() interrupt 1
{
        TH0 = (65536-10)/256;//0.01ms
        TL0 = (65536-10)%256;        
        pwm_t++;
        if(pwm_t == 100)
                pwm_t = 0;
}

//中断3
void timer3() interrupt 4
{
        RI = 0;
        a = SBUF;
}

//初始化
void Init()
{
        TMOD = 0x21;
        SCON = 0x50;
        TH0 = (65536-10)/256;//0.01ms
        TL0 = (65536-10)%256;
        TH1 = 0xfd;
        TL1 = 0xfd;
        EA        = 1;//总中断允许
        ES = 1;//串口中断允许
        TR1 = 1;//启动定时器1
        TR0 = 1;//启动定时器0
        ET0 = 1;//允许定时器0中断
        _4IN = 0;
}

void main()
{
        Init();
        led1 = 0;
        while(1)
                {
                        if(a == "3")                                                                              
                        {
                                flag = 1;//自锁
                                led2 = 0;
                        }
                        if((a == "1")&&(flag == 1))//加速
                        {
                                bd += 10;
                                led3=0;
                                if(bd > 100)
                                        bd = 100;
                                while(pwm_t<bd)
                                        _4IN = 1;
                                        _4IN = 0;
                        }
                        if((a == "2")&&(flag == 1))//减速
                        {
                                bd -= 10;
                                led4=0;
                                if(bd > 0)
                                        bd = 0;
                                while(pwm_t<bd)
                                        _4IN = 1;
                                        _4IN = 0;        
                        }               
                        if(a == "4")
                        {
                                led4 = 1;
                                led3 = 1;
                                led2 = 1;
                                flag = 0;
                                _4IN = 0;
                        }
                }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-11-6 09:27 | 只看该作者
没看到屏的事,只看到串口
回复

使用道具 举报

板凳
ID:414556 发表于 2020-11-6 10:44 | 只看该作者
串口屏一般是SPI串口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表