标题: bascom avr单片机仿真oled显示 [打印本页]

作者: taotie    时间: 2019-1-18 15:50
标题: 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, 下载次数: 226)


作者: admin    时间: 2019-1-19 02:25
能分享下仿真+代码工程吗?
作者: mybrew    时间: 2019-11-22 12:32
不错,蛮好的,正好需要UG-2864HSWEG01的接线方式。
作者: taotie    时间: 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"



作者: 243412038    时间: 2020-3-2 22:07
感谢大神能分享下bascom 2.0.7.8或更高的版本吗,学习下。
作者: taotie    时间: 2020-3-3 16:34
243412038 发表于 2020-3-2 22:07
感谢大神能分享下bascom 2.0.7.8或更高的版本吗,学习下。

你用骡子-->Bascom avr
作者: 243412038    时间: 2020-3-4 10:47
taotie 发表于 2020-3-3 16:34
你用骡子-->Bascom avr

感谢楼主的分享
作者: mm1113512    时间: 2020-4-9 12:51
感谢楼主的分享
作者: 1142361499    时间: 2020-4-9 21:52
楼主,请问我用的是51spi连接ssd1306的仿真,实物可以显示,仿真却显示黑屏呢。
作者: taotie    时间: 2020-4-9 23:03
本帖最后由 taotie 于 2020-4-28 02:21 编辑
楼主,请问我用的是51spi连接ssd1306的仿真,实物可以显示,仿真却显示黑屏呢。

51单片机的SPI接线如下:

工程文件
oled51.zip (20.26 KB, 下载次数: 56)
1142361499 发表于 2020-4-9 21:52



作者: 流年绝地    时间: 2020-4-29 23:29
楼主,我用的51单片机IIC接口,第一次有字,第二次开始就黑屏了,一直显示[SSD1306 CWR] Unimplemented [op=0xD8], 1 byte command [LCD1_U1_U1],这是什么原因呢?

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

51单片机i2c接口要加上拉电阻的,你试试看~
作者: taotie    时间: 2020-5-8 18:25


作者: 1121553    时间: 2020-7-1 15:07
你好,STM32,IIC接线是和上面51的一样是吗?
作者: Jiang153    时间: 2020-7-2 10:25
图中总线"D[0..7]"和“BS[0..2]” 这个标号怎么标啊?我不知道怎么标出这个东西
作者: taotie    时间: 2020-7-2 11:30
右键总线--添加网络标号
作者: taotie    时间: 2020-7-2 11:47
没必要自己画。在proteus8仿真软件中有这个模型,在例程搜索框输入“ssd1306”就可。将其复制到剪贴板就可粘贴到任何电路中使用。
作者: 小生诗白    时间: 2021-4-7 18:30
楼主,用STM32最小系统的咋接呢?STM32F103CT86
作者: taotie    时间: 2021-4-11 13:41
都是一个道理。看你的硬IIC是那两个脚或软IIC设置的那两个脚。
作者: xxjs120    时间: 2022-4-20 22:47
非常感谢,但是ssd1306的引脚和你图上的不一样
作者: taotie    时间: 2022-4-21 10:02
xxjs120 发表于 2022-4-20 22:47
非常感谢,但是ssd1306的引脚和你图上的不一样

你是说这个吗~~



作者: Mohsenha62    时间: 2024-8-25 07:42
taotie 发表于 2020-7-2 11:47
没必要自己画。在proteus8仿真软件中有这个模型,在例程搜索框输入“ssd1306”就可。将其复制到剪贴板就可 ...

The simulated project with Proteus was done by downloading the zip file of the simulator and I am inside it




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1