你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【螺蛳壳里做道场】用STM8S001J3做2048游戏机

[复制链接]
网络孤客 发布时间:2021-1-9 19:44
既然是“螺蛳壳里做道场”,用的当然是用最简单的STM8S001J3单片机来做。
! {, h/ m/ x  t+ X6 @: P2 S* E* Q
STM8S001J3内置8KFlash,1K Ram,128Bytes EEPROM,SOP-8封装,除了电源脚外有5个IO脚。
" @& t/ v, I3 o' ?, G/ H. l0 S5 c
9 ~4 V* K# L, ~ 微信图片_20210109155839.jpg
4 i0 e3 s9 I  E  k* d8 q9 t) V1 T* J9 E) X) ]
要做游戏机,至少有显示屏,我用的是0.96寸128*64OLED屏,只需2个IO口驱动
9 M, S2 g' S& H3 H- }
% U' p6 R, q* s( l1 t* V麻烦!只剩下3个IO口,而且还要留一个做SWIM接口* x' {& U8 R1 c2 _% n) k" E8 h5 B2 e4 w
不怕,有10bit ADC口,足够做单IO多按键输入。我用了一个5方向开关,使用TIM2大约30ms扫描一次。
- q5 C- J( ?4 _' ^. A, V! T下面是按键电路板与电路图  }) O4 [& k3 r/ [3 {2 @  d* H
微信图片_20210109155824.jpg
: e, b" e& S4 o3 u* a6 j# u+ S: {) h
整机电路超简单,没有太多额外的电路1、STM8周边用了一个104,一个105电容,搭建单片机最小工作电路+ h7 s" p( l' x
2、用1117.33稳压模块,把USB的5V降为3.3V,共单片机、OLED屏和按键板用$ M4 Y, g% h( e8 v3 c
3、按键板的电路,上图。
) ?) b  ^9 p1 J( {  |/ V) F4、单片机与OLED之间之间连接。4 A/ r2 O) G4 F$ e) `( h

8 B+ D& f* O" P6 d. e; F5 H9 ^也就是整个游戏机只用了3个IO口,没用到Pin8,但曾经惨痛教训,复制粘贴其他程序,忘了修改引脚,悲剧发生!
# j: x! F8 |# x$ |" ]使我锁死了2个单片机,我还是对Pin8做个防护。
/ C' j! B2 c! O2 Q; t, b我没用常规的延时方法,毕竟延时5秒对进入一个小游戏有点不爽。
8 ^# g1 ~7 W* |5 S& O; \1 gvoid main(void)
% M3 i! J0 y. t  ?8 o{# V8 h3 Q1 }9 i: }% _' k) g
) g  f) i+ M/ h% Q
  CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
+ K8 ?1 n6 X6 O  //初始化按键(Pin7),防锁代码
4 `" V  \1 I0 T/ W/ ?  GPIO_Init(KEY1_PORT, (GPIO_Pin_TypeDef)KEY1_PINS, GPIO_MODE_IN_PU_NO_IT);
1 l" ~. |5 e" w% q2 ^: c  //判断按键是否按下,如果按下,进入死循环,下载使用。
3 [6 y$ q( k; v2 Z5 s5 _2 V. O  while(!GPIO_ReadInputPin(KEY1_PORT,KEY1_PINS))0 t1 Q& @* J1 ^1 }# e% v( ^" h3 {
  {
" L, B8 P/ ]& v2 b4 r    delay_ms(1);& @$ k( M! w2 w8 ]  v2 j3 @! I2 _
  }+ t# j1 z) ]: m6 F: I/ \
- }4 R; C+ J# m8 _6 }5 R
......8 v1 k# n% q: ]
}
: U& n4 q% h6 j# W+ f6 ^8 X$ m# d: c& [! T9 ~! v% o
为了降低存储空间,我把6*8的字库修改为5*8,; i5 n% \" C/ L) h/ O
使用IO口模拟I2C方式与OLED屏通信,可以减少代码存储空间。7 \2 q6 ~  n( I
最后还剩有接近1k空间。  a: C7 W" g- Q) W8 C
片内还有128Bytes EEPROM,用作游戏进度存储,每一步都存一次,不怕断电。/ u6 |1 D: I! E/ y8 o# u% J
' F# U$ V6 J" p- X3 W4 s7 n, t
微信图片_20210109155845.jpg : I7 P  r: P4 e
) k  |. |1 B3 G+ b
微信图片_20210109155851.jpg 2 y) q7 X: d- v. L; _

3 l3 g% i$ u' L+ e  n附上源程序供大家参考。7 r4 i8 R: @! x2 F2 C: Z

5 b' V* T% C, `3 t" x! L! }$ H9 V# N7 o; s

User.rar

下载

19.2 KB, 下载次数: 10

源程序

赞 收藏 1 评论5 发布时间:2021-1-9 19:44

举报

5个回答
网络孤客 回答时间:2021-1-10 14:35:21
再补两图,刚刚继续开机,可以看到
1 C6 W0 Z  P( s3 Q+ [* G" j1、保存着昨天的残局* R5 ~8 h$ `0 ]2 C- c4 b/ `
2、整机电路很简单) F# c  x) W) Z& k
微信图片_20210110143053.jpg
9 C/ [) l+ {6 N/ L: t% I1 L由于分辨率问题,超过4位数我采用叠放的方式来显示(图中1024)
, j; T2 `6 F+ i8 y 微信图片_20210110143102.jpg
# D! r5 S) E$ V- Y+ E5 o9 y) X3 q  b. H7 i! d) ?
hjmhunter 回答时间:2021-1-12 15:36:36
厉害了,绍兴的?
goyhuan 回答时间:2021-1-12 15:52:09
怎么玩的% f: H1 b8 {3 @
网络孤客 回答时间:2021-1-12 22:36:05
乐天乐 发表于 2021-1-12 15:52
; M$ l9 e" W9 D0 l怎么玩的

* X! p: y2 f4 j- N是操作问题还是游戏玩法问题?
/ m- Q0 M( V* A如果是游戏玩法,你搜一下2048游戏
goyhuan 回答时间:2021-1-13 08:13:25
ldptest 发表于 2021-1-12 22:36
% V3 p/ L+ ^+ R% Y+ \是操作问题还是游戏玩法问题?
! C( x. G0 Z: v& z; S0 G2 n如果是游戏玩法,你搜一下2048游戏
& u2 F* M7 b' v* j0 y0 U
哦,谢谢
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版