单片机
返回首页

avr单片机Proteus风速计模型仿真 bascom源程序

2020-07-12 来源:51hei

编译环境:bascom avr+Proteus8.9
屏幕截图(30).png

单片机源程序如下:

rem Main.bas file generated by New Project wizard

rem

rem Created:   周二 6月 2 2020                 TAOTIE

rem Processor: ATmega8

rem Compiler:  BASCOM-AVR


rem Write your code here


$regfile = 'm8def.dat'                                 

$crystal = 8000000                                       

'$baud = 9600                                            

$hwstack = 32                                            

$swstack = 30                                             

$framesize = 40   

Config Scl = Portc.5                                                           ' 用I2C引脚Scl = Portc.5 ,Sda = Portc.4

Config Sda = Portc.4

Config Twi = 400000                                                             ' i2c 的速度  



  Ddrc.3 =  0                                                                    '配置端口方向输入(启动键)

Portc.3 =  1                                                                     '上拉电阻有效

                                                                                 

I2cinit

$lib 'i2c_twi.lbx'                                                                        ' 不使用模拟I2c的软件,而是使用twi

$lib 'glcdSSD1306-I2C.lib'                                                        ' 用glcdSSD1306-I2C库替换默认库要添加在bascom avr库中


#if _build < 20784

Dim ___lcdrow As Byte , ___lcdcol As Byte                                ' 老版本变量格式进行编译

#endif


Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = 'SSD1306'   '配置图形显示器




DIM  X   AS  bit                          '时间闸门标志

dim jisu as word                         '脉冲计数变量



'Config Timer1 = Counter , Edge = Rising                        'Timer1工作在计数方式上升沿有效

Config Timer1 = Counter , Edge = Falling                           'Timer1工作在计数方式下降沿有效

Config Timer0 = Timer , Prescale = 8                                   'Timer0工作在计时方式预分频=8


On Ovf0 Tim0_isr                                                                    '计时器中断服务标号Tim0_isr

tcnt0=&h06                                                                               '从6开始计250次 中断1次      250us                     


Enable Timer0                                               '启用计时器中断

Enable Interrupts              


                                                                  

do                                                                                         '外循环


BITWAIT  pinc.3, RESET                                               '等待pinc.3置零启动运行  

jisu=0                                                                               '脉冲计数变量初始化

x=0                                                                                   '时间闸门标志初始化

stop  Timer1                                                                   '停止计数计时

stop  Timer0

  Tcnt1 = 0                                                                      ' 计时计数寄存器初始为零

Timer1 =0

   


                           

start Timer1                                                                    '启动Timer1

start Timer0                                                                    '启动Timer0


cls                                                                                    '清屏


Do    '内循环

Setfont font12x16

Lcdat 2, 8 , 'km/hr=' ;Tcnt1                                                                              

   if x =1 then  exit do                                     '如果时间闸门标志=1则跳出内循环

  


Loop

loop                                                                                  '循环返回到外循环开始处

end


Tim0_isr:

tcnt0=&h06                                             '进入中断先赋初值

incr jisu                                                      '每次进入脉冲计数变量加1’

if jisu=9286 then                                  '如果脉冲计数变量等于时间闸门需求时间闸门标志=1

x=1                                                         

end if

Return


$include  '../font12x16.font'


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 基于IC555的可变PWM振荡器电路

  • 优化电路板布局的简单方法

  • 如何使用LED驱动器LM3915制作振动计

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章