数码管动态显示c语言,动态数码管循环显示设计C语言及汇编代码(HUBU)
动态数码管循环显示设计(HUBU电信)
实验任务(两个实验):
1.单只数码管循环显示0-9;
2.8只数码管滚动显示单个数字。
第一题实验电路如下:
此题我写的代码比较笨,同学们可以进行TAB列表操作进行修改,详见下方C语言
本文档仅供学习参考之用,作业请勿抄袭
第一题 汇编代码:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOVTMOD,#01H
MOV TL0,#10H
MOVTH0,#00H
SETB TR0
MOV R0,#0FEH
MOV A ,R0
LOOP0: JBCTF0,PTF0 ; 既使用了查询方式计时,也使用了子程序计时 SJMP LOOP0
PTF0: MOV A,#3fH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP1: JBCTF0,PTF1; 循环9次,最后进行一个大循环
SJMP LOOP1
PTF1: MOV A,#06H
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#10H
MOV TH0,#000H
LOOP2: JBC
TF0,PTF2
SJMP LOOP2
PTF2: MOV A,#5bH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP3: JBCTF0,PTF3
SJMP LOOP3PTF3:
MOV A,#4fH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP4: JBCTF0,PTF4
SJMP LOOP4PTF4:
MOV A,#66H
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP5: JBCTF0,PTF5
SJMP LOOP5
PTF5: MOV A,#6dH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP6: JBCTF0,PTF6
SJMP LOOP6
PTF6: MOV A,#7dH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP7: JBCTF0,PTF7
SJMP LOOP7
PTF7: MOV A,#07H
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP8: JBCTF0,PTF8
SJMP LOOP8
PTF8: MOV A,#7fH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
LOOP9: JBCTF0,PTF9
SJMP LOOP9
PTF9: MOV A,#6fH
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOVTL0,#10H
MOV TH0,#000H
AJMP LOOP0
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
第一题c语言代码:
#include"reg51.h"
void delay (void) {
TMOD=0x01;
TR0=1;
TH0=(65536)/256; //查询方式计时
TL0=(65536)%256;
while (! TF0)
{}
TF0=0;
}
void main(){
int i=0;
int table [10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定义数码表while(1){
for(i=0;i<10;i++){
P0 = table[i];
delay();
delay(); //使用延时程序delay();
}
}
}
第二题电路图:
第二题 汇编代码:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#00H
SETB TR0
MOV R0,#0FEH
MOV A ,R0
LOOP0: JBC TF0,PTF0; 既使用了查询方式计时,也使用了子程序计时
SJMP LOOP0
PTF0: MOV A,#0c0H
MOV p0,A
MOV p2,#01H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP1: JBC TF0,PTF1; 循环9次,最后进行一个大循环 SJMP LOOP1
PTF1: MOV A,#0f9H
MOV p0,A
MOV p2,#02H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP2: JBC TF0,PTF2
SJMP LOOP2
PTF2: MOV A,#0a4H
MOV p0,A
MOV p2,#04H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP3: JBC TF0,PTF3
SJMP LOOP3
PTF3: MOV A,#0b0H
MOV p2,#08H
MOV p0,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP4: JBC TF0,PTF4
SJMP LOOP4
PTF4: MOV A,#99H
MOV p0,A
MOV p2,#10H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP5: JBC TF0,PTF5
SJMP LOOP5
PTF5: MOV A,#92H
MOV p0,A
MOV p2,#20H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP6: JBC TF0,PTF6
SJMP LOOP6
PTF6: MOV A,#82H
MOV p0,A
MOV p2,#40H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP7: JBC TF0,PTF7
SJMP LOOP7
PTF7: MOV A,#0f8H
MOV p0,A
MOV p2,#80H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP8: JBC TF0,PTF8
SJMP LOOP8
PTF8: MOV A,#80H
MOV p0,A
MOV p2,#01H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
LOOP9: JBC TF0,PTF9
SJMP LOOP9
PTF9: MOV A,#90H
MOV p0,A
MOV p2,#02H
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV TL0,#00H
MOV TH0,#00H
AJMP LOOP0
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
第二题C语言代码:
#includevoid delay (void) {
TMOD=0x01;
TR0=1;
TH0=(65536)/256;
TL0=(65536)%256; //查询方式计时
while (! TF0)
{}
TF0=0;
}
void main(){
int i=0;
int j=0x80;
int table [10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定义数码表
int weima[10] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //定义位码表
while(1){
for(i=0;i<10;i++){
P0 = table[i];
P2 = weima[i];
delay();
delay();
delay(); //延时程序调用,多次调用则会增长延时时间
delay();
delay();
}
}
}
实验结果:
第一题实验结果:
第二题实验结果:
数码管动态显示c语言,动态数码管循环显示设计C语言及汇编代码(HUBU)相关推荐
- c语言可视化学生管理系统,课程的设计C语言可视化程序学生成绩管理系统.doc
课程的设计C语言可视化程序学生成绩管理系统 C语言可视化程序 设计报告 行政班级 机械0805 姓名 魏永涛 学号 0806080524 指导老师 夏建芳 课题名称 学生成绩管理系统 C可视化程序设计 ...
- 51单片机数码管循环显示0 9c语言,如何采用单片机实现数码管循环显示0-9
描述 8个数码管滚动显示同一个数字 8个数码管显示多个不同的字符 8个数码管闪烁显示 8个数码管滚动显示数字串 #include __CONFIG(0x3B31); unsigned char tab ...
- C语言动态宽字符串,【分享】C语言动态长度字符串
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在C语言里没有字符串变量这样的概念,只有字符数组,因此,只能定义一个固定数组 ...
- C语言中如何用循环编译菱形,c语言for循环如何打印菱形
c语言for循环如何打印菱形 c语言for循环打印菱形的方法:使用两个for循环,实现条件判断,代码为[int i,j;for(i=0; i<2*n-1; i++){if(i=n-i-1& ...
- c语言第五章循环结构答案,C语言循环结构练习题带答案
<C语言循环结构练习题带答案>由会员分享,可在线阅读,更多相关<C语言循环结构练习题带答案(8页珍藏版)>请在人人文库网上搜索. 1.第5章循环结构程序设计练习题1.单项选择题 ...
- 16x16点阵汉字c语言,16x16led点阵滚动汉字显示设计。
下面给大家介绍下我制作的16*16led点阵设计,希望与各位电子爱好者共同讨论,共同进步. 下图是电路图连接图 下面是74HC154 4线-16线译码器引脚说明,以及地址/全能输入对应的输出表. 滚动 ...
- 凸轮设计c语言程序,凸轮理论轮廓曲线设计c语言程序.doc
/************习题4-1凸轮轮廓曲线绘制程序**********/ #include #include #define PI 3.1415926 void main() { double ...
- C语言编写程序输出循环字母,用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字母输出....
程序如下: #include int main() { char ch; scanf("%c",&ch); printf("%c",ch-'a'+'A' ...
- 数据结构c语言版课设,数据结构课程设计c语言版
代码片段和文件信息 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define NULL 0 #define INFEASI ...
最新文章
- 正则表达式 (re包)——python(快餐)
- 部门日报系统部署备忘录
- Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
- 【译】你不知道的Chrome调试工具技巧 第六天:command 菜单
- Linux---如何创建文本文件
- MW313R和FWR310路由器桥接
- base64和base32的区分方法
- 计算机笔记Excel,秦路天善智能EXCEL学习笔记1-文本清洗函数
- 如何免费破解安装正版Adobe Photoshop CC2017
- 《社交app攻击风险应对策略》
- Windows漏洞修复服务器,三种Windows服务器SSL/TLS的安全漏洞以及其补救方法
- OF-Link物联网云平台简介
- 用算法撩妹都不会,别跟我说你是程序员
- 5g网络测试用什么软件,5G 来袭 — 推荐几款好用到爆的测试APP!
- php 的安装目录在哪,怎样查看PHP的安装目录和详细信息
- ibm v5000增加磁盘_IBM storwize V5000存储基础配置
- rebar3使用本地依赖
- cloudcompare软件使用总结
- 单相半波可控整流电路 Single Phase Half Wave Controlled Rectifier
- 文件服务器跨vlan之间访问,[转载]实现不同的VLAN访问同一个服务器