Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a11_8155可编程接口

本文主要是介绍Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a11_8155可编程接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

*本文及代码参阅彭伟《单片机C语言程序设计实训100例》
一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
在这里插入图片描述
图1

二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
在这里插入图片描述
图2

在这里插入图片描述
图3

在这里插入图片描述
图4

三,点击Source Code标签。(如下图5所示)
在这里插入图片描述
图5

四,编辑main.c 代码如Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a11_8155可编程接口 (如下图6所示)
在这里插入图片描述
图6

五,Main.c 代码:

//-----------------------------------------------------------------
// 名称: 可编程序接口芯片8155应用
//-----------------------------------------------------------------
// 说明: 本例利用8155的PA,PB连接数码管,显示8155当前定时初值,
// PC端口连接按键,分别用于调整定时初值,启动定时器,写8155RAM等.
// 启动定时器后,在定时溢出时,8155 TOUT将触发INT0中断,输出提示音.
// 在调节的定时初值不同时,声音输出的间隔也不同.
//
//-----------------------------------------------------------------
#include “myfunc01.h”

//待显示信息缓冲
extern INT8U Disp_Buffer[4];
//8155定时计数初值变量
extern volatile INT16U cnt_8155;

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
INT8U i;
DDRA= 0xFF;
DDRB= 0xFF;
DDRC= 0xFF;
DDRD= 0x00; PORTD= 0xFF;
MCUCR= 0x82;
*COMM_8155= 0B00000011;
GICR= _BV(INT0);
sei();
while(1) {
for(i= 0; i< 4; i++) {
*PB_8155= 0x00;
*PA_8155= SEG_CODE[Disp_Buffer[i]];
*PB_8155= _BV(7- i);
_delay_ms(4);
Key_Process();
}
}
}

//-----------------------------------------------------------------
// INT0中断子程序
//-----------------------------------------------------------------
ISR (INT0_vect)
{
Sounder();
Set_8155_TC();
}

Myfunc01.h
//******************************************************************************************
#ifndef MYFUNC01_H
#define MYFUNC01_H

//#define F_CPU 2000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int

//8155地址定义
#define COMM_8155 (INT8U*)0xFD00
#define PA_8155 (INT8U*)0xFD01
#define PB_8155 (INT8U*)0xFD02
#define PC_8155 (INT8U*)0xFD03
#define CONT_8155_L8 (INT8U*)0xFD04
#define CONT_8155_H8 (INT8U*)0xFD05
#define PMEM_8155 (INT8U*)0xFC00

//蜂鸣器定义
#define BEEP() PORTB ^= _BV(PB0)
//0-9的共阳数码管段码表,最后一位为黑屏幕
static INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF };

//定时初值递增或递减
enum OP_Type {ADD,SUB};

void Sounder();
void Set_8155_TC();
void adjust_tCount(enum OP_Type op);
void Key_Process();

#endif

六,点击构建工程按钮,编译工程。(如下图7所示)
在这里插入图片描述
图7

七,点击窗口左下方仿真按钮,可见虚拟数字屏显示。 (如下图8,9,10所示)
在这里插入图片描述
图8

在这里插入图片描述
图9
在这里插入图片描述
图10

八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)
在这里插入图片描述
图11

附件下载:https://download.csdn.net/download/kaillen/12558626
附件Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a11_8155可编程接口在已安装Proteus8.9的计算机文件夹中打开即可
需要进一步了解,请加入QQ群:976235464

这篇关于Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a11_8155可编程接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428352

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu