avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...

AVR单片机控制8段LED数码管同时显示

这是一个简单的供单片机入门学习者练习用的8段LED数码管控制汇编程序,控制一个两位的数码管同时显示字符(动态刷新)。用AVR- Studio-4 开发,在AVR单片机Atmega48上调试通过。学习者可以举一反三应用到其他类型的单片机芯片。

arget : M48 ;

Crystal: 8.0000Mhz

.include “m48def.inc”

.org $0000 rjmp _main

.org $0020

_port_init:; 端口初始化

clr R2

out 0x5,R2 PortB清零

ldi R24,255

out 0x4,R24 定义PortB为输出

out 0x8,R2 PortC清零

ldi R24,3

out 0x7,R24 定义PortC.0,Portc.1为输出

ret

_tabs:;字形定义

.dw 192 0xC0,“0”

.dw 249 0xF9,“1”

.dw 164 0xA4,“2”

.dw 176 0xB0,“3”

.dw 153 0x99,“4”

.dw 146 0x92,“5”

.dw 130 0x82,“6”

.dw 248 0xF8,“7”

.dw 128 0x80,“8”

.dw 152 0x98,“9”

.dw 136 0x88,“A”

.dw 131 0x83,“B”

.dw 198 0xC6,“C”

.dw 161 0xA1,“D”

.dw 134 0x86,“E”

.dw 142 0x8E,“F”

.dw 255 0xFF,“8.”

_delay_1ms: 延时子程

ldi R16,1

ldi R17,0

L3:

subi R16,255 加1操作

sbci R17,255

cpi R16,232 0xE8

ldi R30,3 0x3E8 = 1000

cpc R17,R30

brlo L3 未达1000继续

ret

_delay:

push r21

push r20

push r17 入口:r16,r17装的是延时参数

push r16

movw R10,R16 将r16,r17的内容装入r10,r11

clr R20

clr R21

L8:

rcall _delay_1ms

subi R20,255 加1操作

sbci R21,255

cp R20,R10 与指定延时参数比较

cpc R21,R11

brlo L8 未达指定延时参数继续

pop r16

pop r17

pop r20

pop r21

ret

_led_display:

push R20 寄存器r20入栈,r20中带入字符表的索引

ldi R24,2

mul R24,R20 将r20中的值乘2,结果在r0中

movw R30,R0 将r0的值赋给r30,作为偏移量

ldi R24,low(_tabs<<1) 获取字符表基地址

ldi R25,high(_tabs<<1)

add R30,R24 偏移量+基地址构成z指针

adc R31,R25

lpm R20,Z+0 取字型送入r20 out 0x5,R20 字型送PortB,输出 ldi R22,0 循环100次计数寄存器r22清零

L10:

ldi R20,1 r20用于8LED数码管输出位控制,初始为1

L12:

out 0x8,R20 将8LED数码管位控制输出到端口PortC ldi R16,10 延时参数低位

ldi R17,0 延时参数高位

rcall _delay 调延时子程

inc R20 移位r20,准备显示另一位

cpi R20,3 判两位是否显示完

brlo L12 未显示完两位,继续

inc R22 r22加1

cpi R22,100 判是否已计满100 brlo L10 未计满则继续

pop R20 r20出栈 ret _main:

clr R20 初始化计数寄存器r20 rcall _port_init 初始化端口

L17:

cpi R20,16 比较循环计数

brne L21 未显示完16个字符继续

clr R20 从新开始

L21:

rcall _led_display 显示字符

inc R20 计数值加1

rjmp L17 返回

ret

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言程序设计与有限元,C语言与有限元程序设计.pdf

C语言与有限元程序设计.pdfC语言与有限元程序设计叶 又 戚 燕(上海交通大攀国家棋其C几D工程中心 上海加0030) (上海大学计算中心 上海匆印力摘 要 本文通过与FORTRAN77语官的比较&#xff0c;说明利用C语言开发有限元程序的可行性。结果表明,C语官不但完全可以实现FORTRAN77的…

c语言gets n,c语言中gets ,getschar 和fgets 的用法及三者之间的差别

满意答案wkmpbg846推荐于 2018.02.27采纳率&#xff1a;45% 等级&#xff1a;8已帮助&#xff1a;362人gets():原型:char *gets(char *buffer) ;功能:从stdlin中获取获取字符串一直到换行符或者遇到EOF为止&#xff0c;但换行符不被录取&#xff0c;会将换行符替换成‘\0’来…

南工院linux考试题库,操作系统复习题..doc

操作系统复习题.第一章 操作系统概述学习指导:本章主要介绍操作系统的基本概念、特性和分类&#xff0c;从操作系统的地位和作用两个方面给出了操作系统的描述性定义。读者应当注意操作系统程序的特殊性&#xff0c;以及操作系统与硬件和其它软件之间的关系&#xff0c;理解操作…

android电话系统,Android电话系统之-rild.doc

Android电话系统之-rild.docAndroid电话系统之-rildRild是Init进程启动的一个本地服务&#xff0c;这个本地服务并没有使用Binder之类的通讯手段&#xff0c;而是采用了socket通讯这种方式。RIL(Radio Interface Layer)Android 给出了一个ril实现框架。由于Android开发者使用的…

android出现错误,在做一个安卓的一个登陆操作的时候,出现错误

源代码如下&#xff1a;/**//*author Administrator**/package com.example.login;//import org.testng.annotations.Test;//import org.testng.annotations.BeforeClass;//import org.testng.annotations.AfterClass;import io.appium.java_client.AppiumDriver;import io.app…

android中svn插件安装,AndroidSDK安装SVN插件问题解决

工具版本信息:Eclipse4.2ADT23.0Subclipse1.10,插件安装地址:http://subclipse.tigris.org/update_1.10.x问题一报错信息如下:Cannot complete the install because one or more required items could not be found.Software being installed: Subversion Revision Graph 1.1.1…

android 点击空白退出,Android 点击空白处隐藏键盘

方法一&#xff1a;使用android的分发机制(代码稍微有点多)/*** 实现点击空白处&#xff0c;软键盘消失事件* param ev* return*/Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() MotionEvent.ACTION_DOWN) {// 获得当前得到焦点的View&#…

鸿蒙系统的变化,鸿蒙系统没变化的背后

原标题&#xff1a;鸿蒙系统没变化的背后鸿蒙系统发布以后被很多人吐槽&#xff0c;说是没什么变化&#xff0c;和之前体验的安卓系统简直一模一样&#xff0c;真的失望至极。其实&#xff0c;鸿蒙系统还是从底层做出了改变&#xff0c;只不过没有变了界面和运行方式而已。那么…

三星s2 硬刷Android 8,三星T710(GALAXY Tab S2 8.0)一键救砖教程,轻松刷回官方系统...

三星T710(GALAXY Tab S2 8.0)手机变砖了怎么办?对于经常刷机的安卓玩家来说&#xff0c;碰到刷机失败导致三星T710(GALAXY Tab S2 8.0)手机无法启动甚至无法进入recovery都是在所难免的事&#xff0c;这个时候我们就需要用到奇兔线刷大师线刷救砖功能了&#xff0c;它能轻松实…

鸿蒙工业互联网,工业互联网 3D 展示平台

原标题&#xff1a;工业互联网 3D 展示平台项目简介产业园区占地约为 158.46 亩&#xff0c;现有生产车间两栋、研发楼一栋、检测楼一栋、食堂及倒班楼一栋、废品库一栋、门卫室两处、综合站房一处。主要从事电缆、电线的生产与加工。产业园区综合管理平台项目开发内容复杂&…

基于android的交流平台,基于Android的移动学习交流平台的设计与实现

摘要&#xff1a;随着移动互联网技术的不断发展,智能手机的不断普及,现在越来越多的人通过手机等智能设备来进行学习和交流。为了满足教师和学生实时的沟通交流,提高学生的学习兴趣和效率,本文设计了基于Android的移动学习交流系统。本文首先通过Openfire完成了客户端与服务器端…

weex监听android返回键,weex使用手册

Native DOM APIsUpdated time: 14/06/2017Weex 在 JS 引擎中&#xff0c;为每个页面都提供了一套 Native DOM APIs&#xff0c;这套接口和 HTML DOM APIs 非常接近&#xff0c;利用这套接口我们可以通过 JavaScript 控制 native 的渲染逻辑。而且 Weex 上层的 Vue 2.0 也是基于…

lean软件Android有吗,leanchat-android

LeanChat Android 客户端简介LeanChat 是 LeanCloud 实时通信 组件的 Demo&#xff0c;通过该应用你可以学习和了解 LeanCloud 实时通信功能。效果截图Leanchat 项目构成如果你从 github clone 速度很慢&#xff0c;可以从 这里 下载项目源码压缩包。部署创建应用注册并登录 Le…

华为系统10.0是鸿蒙吗,暂时忘记鸿蒙!华为EMUI 10.0发布时间确认:这才是主角...

原标题&#xff1a;暂时忘记鸿蒙&#xff01;华为EMUI 10.0发布时间确认&#xff1a;这才是主角华为鸿蒙系统由于顶着“自研”的光环&#xff0c;自曝光以来便受到科技圈的追捧&#xff0c;虽并未推出但已经有“众星捧月”的迹象。媒体追逐鸿蒙系统自然是为了热度和流量&#x…

a4纸在html的像素,打印常识:A4纸张在显示器上应该要多少像素?

A4纸的尺寸是210mm*297mm&#xff0c;也就是21.0cm*29.7cm&#xff0c;而1英寸2.54cm&#xff0c;如果屏幕DPI分辨率为72像素/英寸&#xff0c;换算一下&#xff1a;相当于1cm可呈现 (72px/2.54cm) 28.34px下面是一些常用分辨率下A4纸在屏幕上的像素尺寸&#xff1a;分辨率是7…

用HTML编写教学评估系统,在线教学质量评价系统的设计与实现

《在线教学质量评价系统的设计与实现.doc》由会员分享&#xff0c;可免费在线阅读全文&#xff0c;更多与《在线教学质量评价系统的设计与实现》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、MWEAVERMA入门与提高[M]清华大学出版社&#xff0c;[]李国涛SQLS…

微型计算机方面的论文,微型计算机论文.doc

计算机指令系统与中国CPU的发展本学期我们大致了解了一些微型计算机的基本原理&#xff0c;包括微机处理器、微型计算机和微型计算机系统的定义、微处理器的发展概况&#xff0c;以及微机处理器的分类。其中我们比较全面的学习了指令系统一 计算机指令系统1 计算机指令系统的发…

辩论计算机未来不能取代书本的问题,电脑不能取代书本辩论会材料.doc

辩论会材料NO.1资料收集&#xff1a;沉默可以 注意文明:要多点开花&#xff0c;引用一些名言等&#xff0c;千万不要胡搅蛮缠&#xff0c;揪住一个小点不放&#xff0c;这会给评委不好的印象&#xff01;资料准备一定要充分&#xff0c;最好直接反驳对方&#xff0c;不行就坚持…

计算机通信事业单位专业知识点,事业单位计算机专业知识招考大纲

事业单位计算机专业知识招考大纲对照复习事半功倍(一)计算机类计算机科学技术基础第一章计算机基础知识一、计算机的特点、分类及其应用二、信息编码与数据表示&#xff1b;数制及其转换&#xff1b;算术运算和逻辑运算三、计算机硬件系统的组成及其基本工作原理四、计算机软件…