找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

stc官网开发板温度显示怎么修改不用595的直接显示?

查看数: 1729 | 评论数: 13 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-11-25 08:59

正文摘要:

/*---------------------------------------------------------------------*/ /* --- STC MCU Limited ------------------------------------------------*/ /* --- STC 1T Series MCU Demo Programme ------- ...

回复

ID:72649 发表于 2023-11-29 21:53
lkc8210 发表于 2023-11-29 10:05
不对,没学过C语言?

void DisplayScan(void)
{   
    P1= ~T_COM[2-display_index];
    P2 = ~t_display[LED3[display_index]];
    if(++display_index >= 3)    display_index = 0;  //8位结束回0
}主要位码不是同一个字节,在P1和P3上的
ID:161164 发表于 2023-11-29 10:05

不对,没学过C语言?
ID:72649 发表于 2023-11-28 22:33
lkc8210 发表于 2023-11-27 09:00
对,取三位来显示
如36.5

u8 code T_COM[]={0x10,0x20};      //位码
u8 code T_COM1[]={0x80};      //位码0000 1000
这里这样修改的
ID:72649 发表于 2023-11-28 22:26
lkc8210 发表于 2023-11-26 14:33
对,但本来是8位
你要把数值转数组的函数也改一下

  for(i=0; i<3; i++)  LED8 = 0x10; //上电消隐
  else            F0 = 1, j  = 400 - j;   //温度 <  0度
             //       LED8[4] = j / 1000;     //显示温度值
                    LED8[1] = (j % 1000) / 100;
                    LED8[2] = (j % 100) / 10 + DIS_DOT;
                    LED8[3] = j % 10;
                    if(LED8[3] == 0)    LED8[3] = DIS_BLACK;
                    if(F0)  LED8[3] = DIS_;     //显示-
                }
                else    //错误
                {
                    for(i=0; i<3; i++)  LED3 = DIS_;
                }

主函数里面这样修改对吗?
ID:72649 发表于 2023-11-28 22:17
lkc8210 发表于 2023-11-26 14:33
对,但本来是8位
你要把数值转数组的函数也改一下

u8  LED3[3];        //显示缓冲
u8  display_index;  //显示位索引
u8  display_index1;  //显示位索引
bit B_1ms;          //1ms标志

void DisplayScan(void)
{   
    P1= ~T_COM[2-display_index];P3= ~T_COM1[display_index];
    P2 = ~t_display[LED3[display_index]];
    if(++display_index >= 3)    display_index = 0;  //8位结束回0
}

这样修改对吗?
ID:161164 发表于 2023-11-27 09:00
hjx5548 发表于 2023-11-26 15:36
for(i=0; i= 300)    //300ms到
            {
                msecond = 0;

对,取三位来显示
如36.5
ID:72649 发表于 2023-11-26 15:36
lkc8210 发表于 2023-11-26 14:33
对,但本来是8位
你要把数值转数组的函数也改一下

    for(i=0; i<8; i++)  LED8[i ] = 0x10; //上电消隐

    while(1)
    {
        if(B_1ms)   //1ms到
        {
            B_1ms = 0;
            if(++msecond >= 300)    //300ms到
            {
                msecond = 0;

                j = Get_ADC12bitResult(3);  //参数0~15,查询方式做一次ADC, 返回值就是结果, == 4096 为错误

                if(j < 4096)
                {
                /*
                    LED8[0] = j / 1000;     //显示ADC值
                    LED8[1] = (j % 1000) / 100;
                    LED8[2] = (j % 100) / 10;
                    LED8[3] = j % 10;
                    if(LED8[0] == 0)    LED8[0] = DIS_BLACK;
                */
                    j = get_temperature(j); //计算温度值

                    if(j >= 400)    F0 = 0, j -= 400;       //温度 >= 0度
                    else            F0 = 1, j  = 400 - j;   //温度 <  0度
                    LED8[4] = j / 1000;     //显示温度值
                    LED8[5] = (j % 1000) / 100;
                    LED8[6] = (j % 100) / 10 + DIS_DOT;
                    LED8[7] = j % 10;
                    if(LED8[4] == 0)    LED8[4] = DIS_BLACK;
                    if(F0)  LED8[4] = DIS_;     //显示-
                }
这部分吗?
ID:72649 发表于 2023-11-26 15:32
lkc8210 发表于 2023-11-26 14:33
对,但本来是8位
你要把数值转数组的函数也改一下

u8  LED8[8];        //显示缓冲
改为u8  LED8[3];   这样对吗?
ID:161164 发表于 2023-11-26 14:33
hjx5548 发表于 2023-11-26 10:50
/********************** 显示扫描函数 ************************/
void DisplayScan(void)
{   

对,但本来是8位
你要把数值转数组的函数也改一下
ID:72649 发表于 2023-11-26 10:50
coody_sz 发表于 2023-11-25 21:32
改为直接IO驱动即可。


/********************** 显示扫描函数 ************************/
void DisplayScan(void)
{   
    P7 = ~T_COM[7-display_index];
    P6 = ~t_display[LED8[display_index]];
    if(++display_index >= 8)    display_index = 0;  //8位结束回0
}
是不是只要修改这个函数?
ID:72649 发表于 2023-11-26 05:02
coody_sz 发表于 2023-11-25 21:32
改为直接IO驱动即可。

如果移植到STC8H1K芯片上,哪些寄存器需要修改?
ID:1034262 发表于 2023-11-25 21:32
改为直接IO驱动即可。

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

Powered by 单片机教程网

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