打印

应广单片机(一)

[复制链接]
8830|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aqa|  楼主 | 2019-8-21 18:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 aqa 于 2019-8-21 18:40 编辑

新入职了一家公司,负责消费电子,接触到了应广单片机,现在谈谈应广单片机相关的问题,后续还会更新,本人也只是初学者,发现网上应广单片机相关的资料太少了,一是把自己所知道的发出来,帮助像我这样的初学者,方便学习,二是记录自己的学习历程。




先从一些基础的开始吧,有关于IDE的使用我就不多叙述了,资料连接里面有一个文件介绍了怎么使用,需要的也可以下载,目前我所使用的的仅限于应广的单核单片机,所以这边的都是单核的相关资料,应该单片机的开发语言是MINI-C语言,属于汇编和标准C的合体吧,哈哈哈,具体了解可以去网上查相关资料,资料链接里面也有一个开发语言的介绍,下面是一个简单的例程,驱动车载MP3数码管,展示部分程序,需要的可以点击链接下载
/****************************************************************
函数名称:void  Set_User_T16(void)
函数功能:定时器计数定时256us
函数参数:无
函数返回值:无
函数说明:
****************************************************************/
#define USER_TIMER_CONFIG()     $ T16M IHRC, /4, BIT10
#define ENABLE_TIMER()               SET1 INTEN.2 //$ INTEN T16 //开定时器中断
#define DISENABLE_TIMER()          SET0 INTEN.2 //关定时器中断
#define INIT_TIMER_VALUE(n)       STT16 n//装载定时器计数值
#define CONST_TIMER_VALUE       0
#define EA_INT()                           ENGINT//开总中断
#define DIS_INT()                          DISGINT//关总中断
/**************************************************************/
void  Set_User_T16(void)/*定时256us进一次中断                   2^10/(16/) = 256us*/
{
        //SET0 T16flag;//reset the flag

        USER_TIMER_CONFIG();
        T16val = CONST_TIMER_VALUE;//256us
        INIT_TIMER_VALUE(T16val);
        INTRQ = 0;//清除INTRQ
        EA_INT();
        ENABLE_TIMER();
}
/************************************************
中断服务函数
************************************************/
void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)/*256us进入一次中断*/
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                T16val = CONST_TIMER_VALUE;
                INIT_TIMER_VALUE(T16val);
                LED_Scan1();
                //LED_scan2();
        }

        popaf;
}
我目前用的是PMS132B芯片驱动的,上面是一个16位计数器写的计数中断程序,计数256us进入一次中断
/****************************************************************
函数名称:void LED_Scan(void)
函数功能:扫描函数,扫描要显示13:14,其他图标都亮
函数参数:无
函数返回值:无
函数说明:没有用到的引脚设置为高阻态
                  if语句里面注释的pbc位所有LED数码管全亮
****************************************************************/
void LED_Scan1(void)
{
        static u8 cnt = 0;

        SetPortIn();//设置高阻态,关闭上拉
        //SetPortOut();
        $ pbdier = 0;

        switch (cnt)//轮询一个引脚为高电平
        {
                case 0:
                        pbc.0 = 1;//设置pb0输出
                        pb.0  = 1;//输出高电平
                        break;
                case 1:
                        pbc.1 = 1;
                        pb.1  = 1;
                        break;
                case 2:
                        pbc.2 = 1;
                        pb.2  = 1;
                        break;
                case 3:
                        pbc.3 = 1;
                        pb.3 = 1;
                        break;
                case 4:
                        pbc.4 = 1;
                        pb.4  = 1;
                        break;
                case 5:
                        pbc.5 = 1;
                        pb.5  = 1;
                        break;
                case 6:
                        pbc.6 = 1;
                        pb.6  = 1;
                        break;
                default:
                        break;
        }
        //将发生变化的引脚所对应要显示的内容更改
        if (PIN1)
        {
                //pbc = 0x3f;
                pbc = 0x35;//配置输出引脚  0:输入          1:输出
                pb  = 0X01;//
        }
        if (PIN2)
        {
                //pbc = 0x3f;
                pbc = 0x2e;
                pb  = 0x02;
        }
        if (PIN3)
        {
                //pbc = 0x7f;
                pbc = 0x7c;
                pb  = 0x04;
        }
        if (PIN4)
        {
                //pbc = 0x3f;
                pbc = 0x1b;
                pb  = 0x08;
        }
        if (PIN5)
        {
                //pbc = 0x7f;
                pbc = 0x72;
                pb  = 0x10;
        }
        if (PIN6)
        {
                //pbc = 0x7f;
                pbc = 0x72;
                pb  = 0x20;
        }
        if (PIN7)
        {
                //pbc = 0x64;
                pbc = 0x44;
                pb  = 0x40;
        }

        cnt++;
        if(cnt >= 7)
        {
                cnt = 0;
        }

        //cnt = (cnt >= 8)?0:cnt+1;
}
上面这个是LED数码管动态扫描程序,与一般的数码管有所区别,一般数码管有共阴和共阳之分,这个没有,动态扫描的原理这里不细说了,不清楚的去网上查找,这个相当于是7个引脚驱动五位七段数码管,相关引脚定义见下图
  
          数码管引脚定义图

               数码管实物图
引脚定义图是用万用表测出来的,测量方法有很多,我用的这种方法而以,阳极和阴极就代表该引脚接在万用表的正极和负极,每一段LED组合在一起形成以以为数码管,上面有五位数码(第五位是将SD、||、USB、 :  等一共七个图标组成了第五位数码管),举个例子方便大家理解,假如现在要点亮第一位数码管的第一段(也就是1A),此时P1引脚输入高电平,P2引脚输入低电平或者接地,1A就亮了。
                     

                    以上两个图片是动态扫描程序扫描后所能显示的两种效果,图一在扫描程序里为注释的部分

                             
                  


                                                所用仿真开发板型号


后续还会更新相关的例程,有哪里描述的不对的地方请大佬指点出来,希望本帖子可以帮助到大家,有兴趣的可以留言或者加我QQ464093890一起讨论学习。



需要相关资料的朋友可以点击点击链接下载

IED及其使用手册和MINI-C学习指南链接:https://pan.baidu.com/s/1qZv-5l2WTA_6KwwwEsJ4lA
提取码:u63h
芯片手册链接:https://pan.baidu.com/s/1pACqdmqrCUK-P5cX4qXzDQ
提取码:b2oo
车载MP3数码管.rar (35.67 KB)






使用特权

评论回复
评论
ZSQ9161 2019-11-6 15:34 回复TA
专业做应广MCU程序烧录的,请加QQ:1065214078 
dirtwillfly 2019-8-21 20:21 回复TA
给力 

相关帖子

沙发
aqa|  楼主 | 2019-8-21 18:41 | 只看该作者
忽略我的大手

使用特权

评论回复
板凳
xyz549040622| | 2019-8-21 19:52 | 只看该作者
支持下,pb,pbc这些是寄存器的定义吗,简单粗暴,不错。

使用特权

评论回复
地板
lvlv99| | 2019-8-22 09:14 | 只看该作者
楼主,应广的仿真器是通用的,还是单型号?

使用特权

评论回复
5
aqa|  楼主 | 2019-8-22 14:49 | 只看该作者
xyz549040622 发表于 2019-8-21 19:52
支持下,pb,pbc这些是寄存器的定义吗,简单粗暴,不错。

是的,pbc是模式控制,pb是数据寄存器,菜鸟只会简单粗暴的,花里胡哨的整不来

使用特权

评论回复
6
ssccquan| | 2019-8-22 14:51 | 只看该作者
大佬

使用特权

评论回复
7
aqa|  楼主 | 2019-8-22 14:55 | 只看该作者
lvlv99 发表于 2019-8-22 09:14
楼主,应广的仿真器是通用的,还是单型号?

一般都是通用的,不对针对不同的芯片可能会有部分功能不能用,具体要参考芯片手册

使用特权

评论回复
8
yzq13246068880| | 2019-8-22 15:23 | 只看该作者
用什么编译软件呢?

使用特权

评论回复
9
aqa|  楼主 | 2019-8-22 18:24 | 只看该作者
yzq13246068880 发表于 2019-8-22 15:23
用什么编译软件呢?

应广科技的仿真软件,在文中有图片的,链接里面也可以下载

使用特权

评论回复
10
yzq13246068880| | 2019-8-29 16:29 | 只看该作者
aqa 发表于 2019-8-22 18:24
应广科技的仿真软件,在文中有图片的,链接里面也可以下载

这个芯片性价比如何,编程容易不?

使用特权

评论回复
评论
aqa 2019-8-29 17:27 回复TA
可对比其他的OTP芯片,个人认为性价比还是可以的,上手不难 
11
34af9uc| | 2019-10-10 22:52 | 只看该作者
我也不会,没有教程做了一套教程可以看看 应广单片机
第一课台湾应广科技PMS152
https://bbs.21ic.com/icview-2867038-1-1.html?fromuser=
(出处: 中国电子网技术论坛)

使用特权

评论回复
12
Spring1380| | 2019-12-1 11:29 | 只看该作者
大神!!!!!!!!!

使用特权

评论回复
13
34af9uc| | 2020-3-12 23:02 | 只看该作者
应广单片机编程第三季
01硬件连接
https://www.bilibili.com/video/av94488282/

使用特权

评论回复
14
34af9uc| | 2020-3-12 23:03 | 只看该作者

应广单片机编程第三季
01硬件连接
https://www.bilibili.com/video/av94488282/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

aqa

3

主题

26

帖子

6

粉丝