导航:首页 > 编程语言 > us数码管动态显示程序

us数码管动态显示程序

发布时间:2021-10-26 00:07:53

『壹』 数码管动态显示C语言程序

记得给分哦!
我这个程序是在ICCVC FOR AVR 那个编译器里编译成功的
//ICC-AVR application builder : 2010-3-15 11:14:29
// Target : M8
// Crystal: 4.0000Mhz

#include <iom8v.h>
#include <macros.h>

unsigned char const seg_table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void port_init(void)
{
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();

MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}

/* 微秒级延时程序 */
void delay_us(int time)
{
do
{
time--;
} while (time>1);
}
/* 毫秒级延时程序 */
void delay_ms(unsigned int time)
{
while(time!=0)
{
delay_us(1000);
time--;
}
}

void main()
{
unsigned char i;
init_devices();
while (1)
{
for (i=0;i<10;i++)
{
PORTB=seg_table[i];
delay_ms(100);
}
}
}

『贰』 数码管显示程序

两位数码管显示38-00倒记时 8段数码管显示.两位数码管显示38-00倒计时(动态扫描方式).p2做LED显示数据输出口.p1.0;p1.3分别控制数码管个位数和十位数显示. 8段数码管从内部接线上分共阳和共阴两种。在电路设计时应根据情况决定采用共阳或共阴,其基本原则是:若单片机IO口直接驱动数码管个段,最好采用共阳数码管,因为51单片机IO口输出高电平时输出的电流很小,数码管不会太亮;若数码管是通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求啦。下面的实验采用共阳数码管。;=======================================
;constant define ;常数定义
csp equ 60h ;堆栈开始使用的位置.
;=======================================
;variable define ;变量定义
vadigit equ 30h ;数码管个位数存放内存位置
vbdigit equ 31h ;数码管十位数存放内存位置
vcnt1 equ 32h ;计数器数值存放内存位置;=======================================
;Func: 程序开始.
;=======================================
org 0000h
ajmp mainorg 0030h ;到0030h处避开00-30h的敏感地址
;=======================================
;Func: 程序初始化.
;=======================================
main: ;初始化特殊寄存器及变量
mov sp,#csp ;指定堆栈开始使用的位置.
star:
mov vcnt1,#0 ;初始化计数器,从0开始
lop1:
acall display ;调用显示子程序
inc vcnt1 ;对计数器加1
mov a,vcnt1
cjne a,#100,lop1 ;判断计数器是否满100?
mov vcnt1,#0 ;满100就清零重新开始
ljmp lop1 ;不满就循环执行;=======================================
;Func: 8.字型LED显示子程序
;Input: vcnt1
;=======================================
display:
mov a,vcnt1 ;将temp中的十六进制数转换成10进制
mov b,#10 ;10进制/10=10进制
div ab ;a除以b,商在a,余数在b.
mov vbdigit,a ;十位在a
mov vadigit,b ;个位在b
mov dptr,#digittab ;指定查表起始地址
mov r0,#4
dpl1:
mov r1,#250 ;
dplop:
mov a,vadigit ;取个位数
movc a,@a+dptr ;查个位数的7段代码
mov p1,a ;送出个位的7段代码
clr p3.2 ;开个位显示
acall delayus ;显示162微秒
setb p3.2 ;关闭个位显示,防止鬼影
mov a,vbdigit ;取十位数
movc a,@a+dptr ;查十位数的7段代码
mov p1,a ;送出十位的7段代码
clr p3.3 ;开十位显示
acall delayus ;显示162微秒
setb p3.3 ;关闭十位显示,防止鬼影
djnz r1,dplop ;循环执行250次
djnz r0,dpl1 ;循环执行250X4=1000次
ret;=======================================
;Func: 162us延时子程序
;=======================================
delayus:
mov r7,#80 ;///2+2X80=162微秒,延时按11.0592MHZ计算
djnz r7,$
retorg 0600h
;=======================================
digittab: ;实验板上的7段数码管0~9数字的共阳显示代码
db 0c0h;0
db 0f9h;1
db 0a4h;2
db 0b0h;3
db 099h;4
db 092h;5
db 082h;6
db 0f8h;7
db 080h;8
db 090h;9
end

『叁』 共阴数码管动态显示程序(汇编)

一、 MOV 30H,#0 MOV 31H,#1 MOV 32H,#2 MOV 33H,#3 ;预置显示数据为0,1,2,3 这样,30H到33H,4个地址的数据依次是0,1,2,3, MOV R0,#30H 是为了让@R0这个指针指向第一个数据0 二、你有4个组数码管,就是说要显示4位数,而你一次给P0传输的数据只能显示1位, 这就要用给P2传输的数据来指定要显示的位,#0FEH就是#11111110B,其中0的位置,就代表要显示的位,所以:MOV R1,#0FEH ;共阴初始位选码 三、INC R0,就是把@R0这个指针向后移一位 四、 RL A,循环右移,把要显示的位,也就是R1中的0,向右移一位,选定要显示的下一位。

『肆』 单片机 数码管动态显示代码

if(Countnum[3]++=9) 单片机里面判断是否相等是用==的而不是=
你应该写成if(Countnum[3]++==9)
而且你的写法和不规范,这个写法的意思是Countnum[3]是否等于9,然后Countnum[3]加1

其它的错误也是一样

『伍』 单片机定时器控制数码管动态显示程序

  1. 基本上不算消耗太多时间。

  2. 每个指令的消耗时间可以KEIL模拟仿真的时候可以大概算出时间。

  3. if(++t!=350)return,这句是没有达到350,就退出中断函数,到了中断时间载再进入就是另外一次了。

『陆』 单片机动态数码管显示程序

你想要做单片机有关的动态数码显示程序的话,你可以先下一个proce的破解版,你在上面可以做一个有关数码显示屏程序的一个相关的图。

阅读全文

与us数码管动态显示程序相关的资料

热点内容
境外电影网站 浏览:105
A电影哪里看 浏览:671
宝书网txt下载官网 浏览:340
国产tv网站 浏览:654
重生洗髓空间变美女 浏览:135
宝龙今天有什么电影 浏览:6
正品名牌衣服哪个网站好 浏览:778
老电影农村喜剧电影80年代 浏览:416
爱奇艺用微信买的会员 浏览:416
李彩潭演的性调查电影 浏览:237
工藤瞳演过 浏览:259
中文字幕好看的排行榜 浏览:220
dnf90版本佣兵地轨中心 浏览:5
好色小姨整本免费 浏览:6
重生到妖神记推到叶紫芸 浏览:236
男主叫林默的末世小说 浏览:996
手机怎么打开网络 浏览:293
主角收母家族的小说 浏览:425
梁家辉吃胎儿的电影 浏览:167
以肉为主yy小说收母 浏览:171

友情链接