安装好keil4, 按照视频往keil添加MCU,写个点亮dp的文件。
这个板子设计得有点奇葩,明明可以用硬件led驱动数码管,但却选择了软驱,可能大神的想法和我们不同吧。
延时用isp工具算的,一秒闪一次。
https://www.stcaimcu.com/forum.php?mod=attachment&aid=MjcyODZ8NGVhMzNlMmZ8MTc0NjU5OTMwN3wwfA%3D%3D
https://www.stcaimcu.com/forum.php?mod=attachment&aid=MjcyODd8Mzg3M2UxOWJ8MTc0NjU5OTMwN3wwfA%3D%3D
- /*********************************************************/
-
- #define MAIN_Fosc 11059200L //定义主时钟
-
- #include "STC8Gxxx.h"
-
- /************* 功能说明 *************
-
- 点灯程序
- 板载一个两位8字共阳模块
- G1 pin16 p3.5
- G2 pin17 p3.6
-
- a pin20 p1.1
- b pin3 p1.4
- c pin5 p1.6
- d pin4 p1.5
- e pin1 p1.2
- f pin2 p1.3
- g pin6 p1.7
- dp pin7 p5.4
-
- 这次先点dp
-
- G1 G2 设置为高电平 推挽输出 p3.5 p3.6 p3m1=00000000b p3m0=01100000b
- dp设置为低电平 开漏输出 p5.4 p5m1=00010000b p5m0=00010000b
-
- 按正常来说,应该用p1口做led驱动的com口,用p3口做led驱动的seg口
- 以利用单片机里面的led硬件驱动
- 这个电路板设计得有点奇葩
-
- ******************************************/
-
-
- /************* 本地常量声明 **************/
-
- /************* 本地变量声明 **************/
-
- /************* 本地函数声明 **************/
-
-
-
- /**************** 外部函数声明和外部变量声明 *****************/
-
- /**********************************************/
-
- void Delay100ms(void) //@11.0592MHz
- {
- unsigned char data i, j, k;
-
- _nop_();
- _nop_();
- i = 5;
- j = 52;
- k = 195;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
-
- void main(void)
- {
-
- int time100ms = 0;
-
- P_SW2 |= 0x80; //允许访问XSFR(扩展特殊功能寄存器)
-
- P3M1 = 0x00;
- P3M0 = 0x60;
-
- P5M1 = 0x10;
- P5M0 = 0x10;
-
- P35 = 1;
- P54 = 0;
-
- while (1)
- {
- for(time100ms = 10; time100ms > 0; time100ms--)
- {
- Delay100ms();
- }
- P54 = 1;
- for(time100ms = 10; time100ms > 0; time100ms--)
- {
- Delay100ms();
- }
- P54 = 0;
- }
- }
复制代码
|