用AT89S51單片機(jī)來制作的手動計(jì)數(shù)器
發(fā)布時(shí)間:2008/8/14 0:00:00 訪問次數(shù):1029
1. 實(shí)驗(yàn)任務(wù)
利用at89s51單片機(jī)來制作一個手動計(jì)數(shù)器,在at89s51單片機(jī)的p3.7管腳接一個輕觸開關(guān),作為手動計(jì)數(shù)的按鈕,用單片機(jī)的p2.0-p2.7接一個共陰數(shù)碼管,作為00-99計(jì)數(shù)的個位數(shù)顯示,用單片機(jī)的p0.0-p0.7接一個共陰數(shù)碼管,作為00-99計(jì)數(shù)的十位數(shù)顯示。
。。系統(tǒng)板上硬件連線
1.把“單片機(jī)系統(tǒng)”區(qū)域中的p0.0/ad0-p0.7/ad7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:p0.0/ad0對應(yīng)著a,p0.1/ad1對應(yīng)著b,……,p0.7/ad7對應(yīng)著h。
2.把“單片機(jī)系統(tǒng)”區(qū)域中的p2.0/a8-p2.7/a15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個數(shù)碼管的a-h(huán)端口上;
3.把“單片機(jī)系統(tǒng)”區(qū)域中的p3.7/rd端口用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的sp1端口上;
4. 程序設(shè)計(jì)內(nèi)容
1.單片機(jī)對按鍵的識別的過程處理
2.單片機(jī)對正確識別的按鍵進(jìn)行計(jì)數(shù),計(jì)數(shù)滿時(shí),又從零開始計(jì)數(shù);
3.單片機(jī)對計(jì)的數(shù)值要進(jìn)行數(shù)碼顯示,計(jì)得的數(shù)是十進(jìn)數(shù),含有十位和個位,我們要把十位和個位拆開分別送出這樣的十位和個位數(shù)值到對應(yīng)的數(shù)碼管上顯示。如何拆開十位和個位我們可以把所計(jì)得的數(shù)值對10求余,即可個位數(shù)字,對10整除,即可得到十位數(shù)字了。
4.通過查表方式,分別顯示出個位和十位數(shù)字。
。担 匯編源程序
count equ 30h
sp1 bit p3.7
org 0
start: mov count,#00h
next: mov a,count
mov b,#10
div ab
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,b
movc a,@a+dptr
mov p2,a
wt: jnb sp1,wt
wait: jb sp1,wait
lcall dely10ms
jb sp1,wait
inc count
mov a,count
cjne a,#100,next
ljmp start
dely10ms: mov r6,#20
d1: mov r7,#248
djnz r7,$
djnz r6,d1
ret
table: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
7. c語言源程序
#include <at89x51.h>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
count=0;
p0=table[count/10];
p2=table[count%10];
while(1)
{
if(p3_7==0)
{
delay10ms();
if(p3_7==0)
{
count++;
if(count==100)
{
count=0;
}
p0=table[count/10];
p2=table[count%10];
while(p3_7==0);
}
}
}
}
1. 實(shí)驗(yàn)任務(wù)
利用at89s51單片機(jī)來制作一個手動計(jì)數(shù)器,在at89s51單片機(jī)的p3.7管腳接一個輕觸開關(guān),作為手動計(jì)數(shù)的按鈕,用單片機(jī)的p2.0-p2.7接一個共陰數(shù)碼管,作為00-99計(jì)數(shù)的個位數(shù)顯示,用單片機(jī)的p0.0-p0.7接一個共陰數(shù)碼管,作為00-99計(jì)數(shù)的十位數(shù)顯示。
。。系統(tǒng)板上硬件連線
1.把“單片機(jī)系統(tǒng)”區(qū)域中的p0.0/ad0-p0.7/ad7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:p0.0/ad0對應(yīng)著a,p0.1/ad1對應(yīng)著b,……,p0.7/ad7對應(yīng)著h。
2.把“單片機(jī)系統(tǒng)”區(qū)域中的p2.0/a8-p2.7/a15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個數(shù)碼管的a-h(huán)端口上;
3.把“單片機(jī)系統(tǒng)”區(qū)域中的p3.7/rd端口用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的sp1端口上;
4. 程序設(shè)計(jì)內(nèi)容
1.單片機(jī)對按鍵的識別的過程處理
2.單片機(jī)對正確識別的按鍵進(jìn)行計(jì)數(shù),計(jì)數(shù)滿時(shí),又從零開始計(jì)數(shù);
3.單片機(jī)對計(jì)的數(shù)值要進(jìn)行數(shù)碼顯示,計(jì)得的數(shù)是十進(jìn)數(shù),含有十位和個位,我們要把十位和個位拆開分別送出這樣的十位和個位數(shù)值到對應(yīng)的數(shù)碼管上顯示。如何拆開十位和個位我們可以把所計(jì)得的數(shù)值對10求余,即可個位數(shù)字,對10整除,即可得到十位數(shù)字了。
4.通過查表方式,分別顯示出個位和十位數(shù)字。
5. 匯編源程序
count equ 30h
sp1 bit p3.7
org 0
start: mov count,#00h
next: mov a,count
mov b,#10
div ab
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,b
movc a,@a+dptr
mov p2,a
wt: jnb sp1,wt
wait: jb sp1,wait
lcall dely10ms
jb sp1,wait
inc count
mov a,count
cjne a,#100,next
ljmp start
dely10ms: mov r6,#20
d1: mov r7,#248
djnz r7,$
djnz r6,d1
ret
table: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
7. c語言源程序
#include <at89x51.h>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
count=0;
p0=table[count/10];
p2=table[count%10];
while(1)
{
if(p3_7==0)
{
delay10ms();
if(p3_7==0)
{
count++;
if(count==100)
{
count=0;
}
p0=table[count/10];
p2=table[count%10];
while(p3_7==0);
}
}
}
}
熱門點(diǎn)擊
- 51單片機(jī)8*8點(diǎn)陣LED顯示原理及程序
- 用AT89S51單片機(jī)來制作的手動計(jì)數(shù)器
- TEA5767收音機(jī)模塊的C51控制程序
- pic單片機(jī)的模擬I2C通信
- ST推出基于STM8內(nèi)核的STM8S系列8位
- 單片機(jī)相關(guān)常用名詞解釋
- 單片機(jī)C語言編程基礎(chǔ)
- 美國微芯推出低成本8位PIC單片機(jī)
- HOLTEK新推出HT46RS03/HT46
- 單片機(jī)與MMC卡的接口
推薦技術(shù)資料
- 硬盤式MP3播放器終級改
- 一次偶然的機(jī)會我結(jié)識了NE0 2511,那是一個遠(yuǎn)方的... [詳細(xì)]
- MOSFET 電感單片降壓開關(guān)模式變換器優(yōu)勢
- SiC MOSFET 和 IG
- 新型 電隔離無芯線性霍爾效應(yīng)電
- 業(yè)界超小絕對位置編碼器技術(shù)參數(shù)設(shè)計(jì)
- 高帶寬、更高分辨率磁角度傳感技術(shù)應(yīng)用探究
- MagAlpha 角度位置傳感
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究