单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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, 下载次数: 44)

评分

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

查看全部评分

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

使用道具 举报

沙发
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"


回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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