找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12400|回复: 20
打印 上一主题 下一主题
收起左侧

bascom avr单片机仿真oled显示

  [复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


rem Main.bas file generated by New Project wizard
rem
rem Created:   周三 1月 16 2019
rem Processor: ATmega88P
rem Compiler:  BASCOM-AVR2.0.7.9演示版

rem Write your code here

'-------------------------------------------------------------------------------
'                       SSD1306-I2C.BAS
'                     (c) MCS Electronics 1995-2015
'          Sample to demo the 128x64 I2C OLED display
'
'-------------------------------------------------------------------------------
$regfile = "m88pdef.dat"
$hwstack = 32
$swstack = 32
$framesize = 32
$crystal = 8000000
Config Clockdiv = 1                                         ' make sure the chip runs at 8 MHz
Config Scl = Portc.5                                        ' used i2c pins
Config Sda = Portc.4
Config Twi = 400000                                         ' i2c speed
I2cinit
$lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
$lib "glcdSSD1306-I2C.lib"                                  ' override the default lib with this special one
Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"
do
Cls
Setfont Font8x8tt
Showpic 0 , 0 , Plaatje,1
Waitms 3000
Cls
Lcdat 4 , 20 , "Hello~~ welcome!"
Waitms 3000
Showpic 0 , 0 , Plaatje
Waitms 3000
loop
End
$include "font8x8TT.font"                                   ' this is a true type font with variable spacing
Plaatje:
   $bgf "ymz.bgf"



全部资料51hei下载地址:
夜猫子.zip (39.57 KB, 下载次数: 221)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-1-19 02:25 | 只看该作者
能分享下仿真+代码工程吗?
回复

使用道具 举报

板凳
ID:639525 发表于 2019-11-22 12:32 | 只看该作者
不错,蛮好的,正好需要UG-2864HSWEG01的接线方式。
回复

使用道具 举报

地板
ID:342822 发表于 2019-12-11 14:48 | 只看该作者
本帖最后由 taotie 于 2019-12-11 17:36 编辑


'  test OLED display 128*64 with glcdSSD1306-I2C.lib
'  bascom 2.0.7.8
$regfile = "m8def.dat"
$hwstack = 32
$swstack = 32
$framesize = 32
$crystal = 8000000
Config Scl = Portc.5                                        ' 用I2C引脚Scl = Portc.5 ,Sda = Portc.4
Config Sda = Portc.4
Config Twi = 400000                                         ' i2c 的速度
I2cinit
$lib "i2c_twi.lbx"                                          ' 不使用模拟I2c的软件,而是使用twi
$lib "glcdSSD1306-I2C.lib"                                  ' 用glcdSSD1306-I2C库替换默认库
'#if _build < 20784
'Dim ___lcdrow As Byte , ___lcdcol As Byte                   ' 老版本变量格式进行编译
'#endif
Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"   '配置图形液晶显示器
Showpic 0 , 0 , Plaatje                                         '在液晶显示器0,0展示128x64图片
Wait 3
Config Adc = Single , Prescaler = Auto                      '定义ADC为单次运行模式,转换时钟-自动,未使用内部参考电压 Reference = Internal
Start Adc                                                   'ATmega88可以不要Start Adc语句,ATmega8就一定要这个语句
Dim W As WORD, Channel As Byte, D as string*5, C As Byte
Channel = 0                                                 '现在从通道0读取A/D值
'C = 1
Cls
Setfont font12x16
Lcdat 1, 16 , chr(128);chr(129);chr(130);chr(131)
Do
'Cls
W = Getadc(Channel)
W = W*5
D=str(w)
D= format(d, "0.000")
wait 1                                             '设置字体
Setfont font8x8tt
Lcdat 4, 8 , "AD ="                                      '在液晶显示器显示字符串
Lcdat 4, 42 , Channel                                    '在液晶显示器显示AD通道号
Lcdat 4, 56, "#"
'wait 1
Setfont Font12x16
Lcdat 6, 1 , d                                        '在液晶显示器显示ad采样值
Lcdat 6 , 56 ,"V"                                      '在液晶显示器显示字符串v
wait 2
Incr Channel
if Channel=4 then Channel=6
If Channel > 7 Then Channel = 0
Loop
$include "../font12x16.font"                           '包含的字体文件
$include "../font8x8tt.font"                           '包含的字体文件
Plaatje:
  $bgf "../picture.bgf"


回复

使用道具 举报

5#
ID:696930 发表于 2020-3-2 22:07 | 只看该作者
感谢大神能分享下bascom 2.0.7.8或更高的版本吗,学习下。
回复

使用道具 举报

6#
ID:342822 发表于 2020-3-3 16:34 | 只看该作者
243412038 发表于 2020-3-2 22:07
感谢大神能分享下bascom 2.0.7.8或更高的版本吗,学习下。

你用骡子-->Bascom avr
回复

使用道具 举报

7#
ID:696930 发表于 2020-3-4 10:47 | 只看该作者
taotie 发表于 2020-3-3 16:34
你用骡子-->Bascom avr

感谢楼主的分享
回复

使用道具 举报

8#
ID:286070 发表于 2020-4-9 12:51 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

9#
ID:695093 发表于 2020-4-9 21:52 | 只看该作者
楼主,请问我用的是51spi连接ssd1306的仿真,实物可以显示,仿真却显示黑屏呢。
回复

使用道具 举报

10#
ID:342822 发表于 2020-4-9 23:03 | 只看该作者
本帖最后由 taotie 于 2020-4-28 02:21 编辑
楼主,请问我用的是51spi连接ssd1306的仿真,实物可以显示,仿真却显示黑屏呢。

51单片机的SPI接线如下:

工程文件
oled51.zip (20.26 KB, 下载次数: 54)

回复

使用道具 举报

11#
ID:539972 发表于 2020-4-29 23:29 | 只看该作者
楼主,我用的51单片机IIC接口,第一次有字,第二次开始就黑屏了,一直显示[SSD1306 CWR] Unimplemented [op=0xD8], 1 byte command [LCD1_U1_U1],这是什么原因呢?
回复

使用道具 举报

12#
ID:342822 发表于 2020-5-8 18:14 | 只看该作者
流年绝地 发表于 2020-4-29 23:29
楼主,我用的51单片机IIC接口,第一次有字,第二次开始就黑屏了,一直显示[SSD1306 CWR] Unimplemented [op ...

51单片机i2c接口要加上拉电阻的,你试试看~
回复

使用道具 举报

13#
ID:342822 发表于 2020-5-8 18:25 | 只看该作者

回复

使用道具 举报

14#
ID:619279 发表于 2020-7-1 15:07 | 只看该作者
你好,STM32,IIC接线是和上面51的一样是吗?
回复

使用道具 举报

15#
ID:718116 发表于 2020-7-2 10:25 | 只看该作者
图中总线"D[0..7]"和“BS[0..2]” 这个标号怎么标啊?我不知道怎么标出这个东西
回复

使用道具 举报

16#
ID:342822 发表于 2020-7-2 11:30 | 只看该作者
右键总线--添加网络标号
回复

使用道具 举报

17#
ID:342822 发表于 2020-7-2 11:47 | 只看该作者
没必要自己画。在proteus8仿真软件中有这个模型,在例程搜索框输入“ssd1306”就可。将其复制到剪贴板就可粘贴到任何电路中使用。
回复

使用道具 举报

18#
ID:902006 发表于 2021-4-7 18:30 | 只看该作者
楼主,用STM32最小系统的咋接呢?STM32F103CT86
回复

使用道具 举报

19#
ID:342822 发表于 2021-4-11 13:41 | 只看该作者
都是一个道理。看你的硬IIC是那两个脚或软IIC设置的那两个脚。
回复

使用道具 举报

20#
ID:696775 发表于 2022-4-20 22:47 | 只看该作者
非常感谢,但是ssd1306的引脚和你图上的不一样
回复

使用道具 举报

21#
ID:342822 发表于 2022-4-21 10:02 | 只看该作者
xxjs120 发表于 2022-4-20 22:47
非常感谢,但是ssd1306的引脚和你图上的不一样

你是说这个吗~~


回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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