找回密码
 立即注册
楼主: ly1***

全部直插,洞洞板飞线,5个外围元件的8H8K64U实验板(原理图,程序代码))

[复制链接]

该用户从未签到

550

主题

9311

回帖

1万

积分

管理员

积分
13872
发表于 2024-2-29 09:06:27 | 显示全部楼层
ly1350 发表于 2024-2-29 08:56
好的,马上改正。谢谢,指出错误!

这个特殊应用,相关的 I/O 用开漏模式就行了
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-6 17:24:30 | 显示全部楼层
    终于有点时间继续学习了。重新写了电子钟的代码。用开关内部上拉电阻来点亮数码管。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-6 17:28:24 | 显示全部楼层
    用内部上拉电阻控制数码管:



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-6 17:29:20 | 显示全部楼层
    相机拍出来有点闪烁。实际效果,眼睛是看不出来的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-21 10:53:42 | 显示全部楼层
    加焊5个led和一个1k限流电阻,准备学习PWM。。。 bc2246ff4176fde1827aa3912a3aedf.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-21 17:24:11 | 显示全部楼层
    第一个pwm实验。控制led的亮度。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-21 17:25:14 | 显示全部楼层

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-21 17:26:18 | 显示全部楼层
    1. #include "stc8h.h"
    2. #include "intrins.h"
    3. #include "display.h"
    4. #include "key.h"
    5. #define  Key  P32                                        //按键定义在P32
    6. #define PWM_T 1000                                        //设置周期值
    7. typedef unsigned char u8;
    8. typedef        unsigned int  u16;
    9. typedef unsigned long u32;
    10. void Update();
    11. void Timer0_Init(void);
    12. u16 duty=950;
    13. void main()
    14. {       
    15.         P_SW2|=0x80;                                         //        使能访问扩展寄存器
    16.         P1M0 |= 0x03; P1M1 &= ~0x03;         //  配置P10、p11为推挽输出模式
    17.         PWMA_PS|=0x00;                                        //  设置PWMA通道1p为p10,1n为p11
    18.         PWMA_CCER1|=0x00;                                //        关闭通道1
    19.         PWMA_CCMR1|=0x68;                                //  配置通道1的输出模式;
    20.         PWMA_CCER1|=0x0f;                                //        打开通道1,设置1p、1n
    21.         PWMA_ARRH=(u8)(PWM_T>>8);                //        写自动重装寄存器高8位
    22.         PWMA_ARRL=(u8)(PWM_T);                        //        写自动重装寄存器低8位
    23.         PWMA_ENO|= 0x03;                                //  打开1p、1n输出
    24.         PWMA_BKR|= 0x80;                                //        打开主输出
    25.         PWMA_CR1|= 0x01;                                //        开始计数
    26.         P3M0 &= ~0x04; P3M1 &= ~0x04;         //p32设为标准io
    27.         P3PU |= 0x04;                                         //p32打开上拉电阻
    28.         Timer0_Init() ;
    29.         EA=1;
    30.         P32=1;
    31.         while(1)
    32.         {
    33.                 Update();
    34.                 w1=duty/100;
    35.                 w2=duty/10%10;
    36.                 w3=keymod;
    37.                 w4=P32;
    38.                 display();
    39.                 keyscan();
    40.                
    41.         };
    42. }
    43. void keypro()
    44. {
    45.         if(keymod==1)
    46.                 {
    47.                         duty+=10;
    48.                         if(duty>1000)duty=1000;
    49.                         keymod=0;
    50.                 }
    51.         if(keymod==2)
    52.                 {
    53.                          duty-=10;
    54.                         if(duty<=700)duty=700;
    55.                         keymod=0;
    56.                 }
    57. }
    58. void Update()
    59. {
    60.         PWMA_CCR1H=(u8)(duty>>8);
    61.         PWMA_CCR1L=(u8)(duty);
    62. }
    63. void Timer0_Isr(void) interrupt 1
    64. {
    65.         dc++;
    66.         keycount++;
    67.         if(keycount>60000)keycount=0;
    68. }
    69. void Timer0_Init(void)                //1毫秒@11.0592MHz
    70. {
    71.         AUXR |= 0x80;                        //定时器时钟1T模式
    72.         TMOD &= 0xF0;                        //设置定时器模式
    73.         TL0 = 0xCD;                                //设置定时初始值
    74.         TH0 = 0xD4;                                //设置定时初始值
    75.         TF0 = 0;                                //清除TF0标志
    76.         TR0 = 1;                                //定时器0开始计时
    77.         ET0 = 1;                                //使能定时器0中断
    78. }
    复制代码
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 82 天

    [LV.6]常住居民II

    14

    主题

    206

    回帖

    829

    积分

    高级会员

    积分
    829
     楼主| 发表于 2024-3-21 17:29:46 | 显示全部楼层
    限流电阻只找到了1k的。用得小了,亮度调节的效果不明显。80%左右就基本全亮了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    22 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    0

    主题

    184

    回帖

    366

    积分

    中级会员

    积分
    366
    发表于 2024-3-22 15:19:09 | 显示全部楼层
    不错,花小钱办大事
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-4 22:19 , Processed in 0.603951 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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