单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档
51單片機數(shù)碼管顯示實驗
實驗內(nèi)容:
編寫程序讓8只數(shù)碼管初始顯示0,每隔大約1s加1顯示(可以用延時函數(shù)實現(xiàn)),到數(shù)碼管顯示9后,再從0開始顯示,如此循環(huán)反復(fù)。
C語言程序
#include
#define uint unsigned int
void display();
void num();
int i;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共陽極數(shù)碼管0-F編碼表
void delayms(uint);
void main()
{
while(1)
{
num();
display();
}
}
void display()
{
P2=0xff;//消隱 P0連接段選,P1節(jié)位選
P1=0x00;//8個數(shù)碼管同時顯示
P2=table[i];//數(shù)碼管顯示數(shù)碼0
delayms(1000);//延時5ms
}
void num()
{
if(i<9)
i++;
else
i=0;
}
void delayms(uint x)
{
uint i,j;
for(i=0;i
for(j=0;j<110;j++);
}
匯編語言:
ORG 0000H
LJMP MAIN
ORG 0100H
;P2連接段選,P1節(jié)位選
MAIN:MOV P1,#00H ;所有的數(shù)碼管都顯示
MOV R2,#00H ;從0開始顯示
LOOP:MOV A,R2 ;為下面的基址加變址寄存器尋址方式做準備
MOV DPTR,#TAB1 ;把數(shù)組的首地址賦給DPTR
MOVC A,@A+DPTR ;取數(shù)組中的數(shù)字
MOV P2,A ;把取得的值送給P0口顯示
ACALL DELAY ;延時一會
INC R2 ;為取下一個數(shù)加一
CJNE R2,#10,LOOP ;只要數(shù)小于10就繼續(xù)循環(huán)顯示
MOV R2,#00H ;如果加到10后重新從0開始
LJMP LOOP ;進入循環(huán)函數(shù)
;******************************************
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H; 數(shù)組
DB 92H,82H,0F8H,80H,90H
RET
;******************************************
DELAY:MOV R3,#3;延時函數(shù)
DE1:MOV R4,#0FFH
DE2:MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,DE2
DJNZ R3,DE1
RET
;*************************************************
END
(3)編寫程序?qū)W習(xí)數(shù)碼管的動態(tài)顯示,讓8只數(shù)碼管從從左往右顯示1、2、3……8。
C語言程序:
#include
#define uint unsigned int
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共陽極數(shù)碼管0-F編碼表
void delayms(uint x);
void zuoyi();
void main()
{
int i;
while(1)
{
P1=0xfe;
for(i=0;i<8;i++)
{
P2=table[i];
delayms(3);
zuoyi();
}
}
}
void delayms(uint x)
{
uint i,j;
for(i=0;i
for(j=0;j<110;j++);
}
void zuoyi()
{
int a;
a=~P1;
a=a<<1;
P1=~a;
}
匯編語言:
;數(shù)碼管動態(tài)顯示
ORG 0000H
LJMP MAIN
ORG 0100H
;P0連接段選,P1節(jié)位選
MAIN
總結(jié)
以上是生活随笔為你收集整理的单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTF SSTI模板注入详解
- 下一篇: “”中国制造“”高速数据采集卡