數碼管顯示實驗

2021-06-29 12:48:54 字數 1530 閱讀 5735

實驗目的:

通過實驗,掌握如何通過74hc595擴充套件io口,掌握如何運用動態掃瞄的方法驅動多位數碼管;

實驗內容:

判斷按鍵sw8(int1)是否按下,並對按鍵次數計數,顯示在數碼管之上;(微控制器剛啟動後,數碼管顯示為全0,當第一次按下sw8後,數碼管顯示0001,當第二次按下sw8後,數碼管顯示0002)

**實現:

// target : m16

// crystal: 7.3728mhz

#include #include #define clr_shclk() portb&=~(1<<1) //移位時鐘 sclk

#define set_shclk() portb|=(1<<1) //移位時鐘 sclk,上公升沿

#define clr_stclk() portb&=~(1<<0) //鎖存時鐘 rclk

#define set_stclk() portb|=(1<<0) //拉高鎖存時鐘,上公升沿

#define clr_ds() porta&=~(1<<0) //清零

#define set_ds() porta|=(1<<0) //置位

#define uchar unsigned char

#define uint unsigned int

//定義字元表

unsigned char led_7[14]=;

uchar led_buf[4]=;

unsigned int count=0;

void delay_ms(unsigned int time) //延時函式

time--;

}}

void port_init(void) //初始化io

void hc595send(unsigned char snddata)

else

clr_shclk(); //移位時鐘 sclk

set_shclk(); //移位時鐘 sclk,上公升沿

}clr_stclk();

set_stclk(); //拉高鎖存時鐘,上公升沿

}//call this routine to initialize all peripherals

void init_devices(void)

void handle_data(uint count,uchar led_buf) //處理資料

void display(void) 顯示函式

}void get_key(void) 按鍵函式 }}

int main(void)

return 0;

}

按鍵數碼管顯示實驗

要求 能夠實現本微控制器按下鍵盤,能夠在數碼管上顯示鍵盤值。連線 將片選cs0鏈結到key led cs。define ledlen 6 xdata unsigned char outbit at 0x8002 位控制口 xdata unsigned char outseg at 0x8004 段控...

數碼管顯示

數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...

數碼管顯示

一 區分數碼管的類別 共陰數碼管 即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,中該位置 1 共陽數碼管 即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,中該位置 0 二 單個數碼管顯示 a h 表示單個數碼管上面的8個led。根據共陰共陽的特性,點亮相應的led,...