刷卡機(jī)顯示應(yīng)答碼lk
網(wǎng)上關(guān)于刷卡機(jī)顯示應(yīng)答碼lk的刷卡知識(shí)比較多,也有關(guān)于刷卡機(jī)顯示應(yīng)答碼lk的問(wèn)題,今天第一pos網(wǎng)(www.cnksdq.com.cn)為大家整理刷卡常見(jiàn)知識(shí),未來(lái)的我們終成一代卡神。
本文目錄一覽:
刷卡機(jī)顯示應(yīng)答碼lk
學(xué)習(xí)目的了解數(shù)碼管分類、工作原理及驅(qū)動(dòng)電路的設(shè)計(jì)。掌握STC8A8K64D4系列單片機(jī)驅(qū)動(dòng)8位共陰數(shù)碼管的動(dòng)態(tài)顯示的軟件設(shè)計(jì)。數(shù)碼管概述數(shù)碼管是一種常用的顯示設(shè)備,他有著價(jià)格便宜、使用簡(jiǎn)單的特點(diǎn),在各個(gè)領(lǐng)域被廣泛的應(yīng)用,如空調(diào)、電子萬(wàn)年歷、冰箱等等。學(xué)習(xí)數(shù)碼管相關(guān)的編程之前,我們有必要了解一下數(shù)碼管的一些概念和操作方式。
數(shù)碼管也稱LED數(shù)碼管(led Segment Displays),其是由多個(gè)發(fā)光二極管封裝在一起組成。
數(shù)碼管的“段”常用的數(shù)碼管有七段數(shù)碼管和八段數(shù)碼管,如下圖所示。7段數(shù)碼管由七個(gè)條狀發(fā)光二極管組成,8段數(shù)碼管由七個(gè)條狀和一個(gè)點(diǎn)狀發(fā)光二極管,即8段數(shù)碼管比7段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn))。如果需要顯示帶小數(shù)的數(shù)據(jù),應(yīng)選用8段數(shù)碼管。開(kāi)發(fā)板上使用的是8段數(shù)碼管。
圖1:8段數(shù)碼管比7段數(shù)碼管
數(shù)碼管的“位”數(shù)碼管按能顯示多少個(gè)“8”可分為1位、2位、4位等數(shù)碼管,如下圖所示。開(kāi)發(fā)板上使用的是8位數(shù)碼管。
圖2:數(shù)碼管
共陰極和共陽(yáng)極數(shù)碼管數(shù)碼管按發(fā)光二極管單元連接方式分為共陰極數(shù)碼管和共陽(yáng)極數(shù)碼管,如下圖所示。
圖3:共陽(yáng)極和共陰極數(shù)碼管
共陽(yáng)極:正極連接在一起,作為公共端。負(fù)極單獨(dú)控制,施加低電平(邏輯0),對(duì)應(yīng)的“段”點(diǎn)亮,施加高電平(邏輯1),對(duì)應(yīng)的“段”熄滅。共陰極:負(fù)極連接在一起,作為公共端。正極單獨(dú)控制,施加低電平(邏輯0),對(duì)應(yīng)的“段”熄滅,施加高電平(邏輯1),對(duì)應(yīng)的“段”點(diǎn)亮。位選和段選一般地,操作數(shù)碼管時(shí),先執(zhí)行段選再執(zhí)行位選。位選是選擇待操作的數(shù)碼管,如開(kāi)發(fā)板上的是8位數(shù)碼管,位選就是選擇8位數(shù)碼管中的某一個(gè)。段選是選擇數(shù)碼管里面的LED燈,即通過(guò)選擇點(diǎn)亮響應(yīng)的LED燈以達(dá)到顯示需要的數(shù)據(jù)的目的。
段碼數(shù)碼管的段碼指的是數(shù)碼管在顯示不同的數(shù)據(jù)時(shí),段選信號(hào)對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。下圖是以8段共陰極數(shù)碼管顯示數(shù)字7為例來(lái)描述段碼。
圖4:共陰極數(shù)碼管顯示數(shù)字7時(shí)的段碼
對(duì)于共陰極數(shù)碼管來(lái)說(shuō),段的正極為高電平“邏輯1”時(shí),段點(diǎn)亮,段的正極為低電平“邏輯0”時(shí),段熄滅。如要顯示數(shù)字“7”,需要點(diǎn)亮段A、段B和段C,8個(gè)段的負(fù)極對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)為11100000,換算成16進(jìn)制即為0xE0。如果是共陽(yáng)極數(shù)碼管,正好和共陰極數(shù)碼管相反,8個(gè)段的正極對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)為00000111,換算成16進(jìn)制即為0x07。
由此,我們即可得出共陰極數(shù)碼管顯示的段碼表,如下表所示。
表1:共陰極數(shù)碼管顯示的段碼表
字形
A
B
C
D
E
F
G
DP
段碼(共陰)
0
1
1
1
1
1
1
0
0
FC H
1
0
1
1
0
0
0
0
0
60 H
2
1
1
0
1
1
0
1
0
DA H
3
1
1
1
1
0
0
1
0
F2 H
4
0
1
1
0
0
1
1
0
66 H
5
1
0
1
1
0
1
1
0
B6 H
6
1
0
1
1
1
1
1
0
BE H
7
1
1
1
0
0
0
0
0
E0 H
8
1
1
1
1
1
1
1
0
FE H
9
1
1
1
1
0
1
1
0
F6 H
A
1
1
1
0
1
1
1
0
EE H
B
0
0
1
1
1
1
1
0
3E H
C
1
0
0
1
1
1
0
0
9C H
D
0
1
1
1
1
0
1
0
7A H
E
1
0
0
1
1
1
1
0
9E H
F
1
0
0
0
1
1
1
0
8E H
小數(shù)點(diǎn)
0
0
0
0
0
0
0
1
01 H
不顯示
0
0
0
0
0
0
0
0
00 H
動(dòng)態(tài)顯示和靜態(tài)顯示數(shù)碼管的驅(qū)動(dòng)顯示方式有多種,大致可分為動(dòng)態(tài)顯示和靜態(tài)顯示。
動(dòng)態(tài)顯示其實(shí)就是利用LED的余輝效應(yīng)和人眼的視覺(jué)暫留效應(yīng)來(lái)實(shí)現(xiàn)的。動(dòng)態(tài)顯示方式外圍驅(qū)動(dòng)電路相對(duì)簡(jiǎn)單,占用單片機(jī)I/O較少,但是需要不斷刷新數(shù)碼管顯示,因此,占用CPU時(shí)間較長(zhǎng)。
靜態(tài)顯示是單片機(jī)發(fā)送數(shù)據(jù)之后,數(shù)據(jù)如何穩(wěn)定有效的顯示由外圍鎖存器件實(shí)現(xiàn),這樣可以大幅降低占用CPU的時(shí)間,但他會(huì)占用更多的I/O,并且外圍驅(qū)動(dòng)電路也相對(duì)復(fù)雜。
硬件設(shè)計(jì)IK-64D4開(kāi)發(fā)板上設(shè)計(jì)了8位共陰極數(shù)碼管顯示電路,該顯示電路中使用74HC138譯碼器實(shí)現(xiàn)數(shù)碼管的位選,74HC595芯片實(shí)現(xiàn)數(shù)碼管的段選,電圖原理圖如下。
圖5:數(shù)碼管顯示電路
數(shù)碼管顯示電路占用的STC8A8K64D4的引腳如下表:
表2:引腳分配
名稱
引腳
說(shuō)明
SCK
P3.2
和顯示屏接口共用
SI
P3.4
和顯示屏接口共用
RCK
P3.5
和顯示屏接口共用
A0
P4.0
和顯示屏接口共用
A1
P5.5
和顯示屏接口共用
A2
P4.4
和顯示屏接口共用
數(shù)碼管段選的實(shí)現(xiàn)數(shù)碼管的段選是通過(guò)74HC595芯片實(shí)現(xiàn)的,74HC595是一個(gè)8位串行輸入、并行輸出的位移緩存器。數(shù)碼管顯示電路中,為了節(jié)省GPIO,74HC595的使能控制端在硬件上設(shè)置為恒有效(/OE連接到GND,恒為低電平)。74HC595的Q0~Q7 八位數(shù)據(jù)并行輸出端并接到8個(gè)數(shù)碼管的段選信號(hào)線上,這樣,使用3個(gè)GPIO就可以向數(shù)碼管發(fā)送段選信號(hào)。這3個(gè)GPIO各自的作用如下表所示。
表3:74HC595驅(qū)動(dòng)信號(hào)
GPIO
連接(74HC595)
描述
P3.4
SI
發(fā)送串行數(shù)碼管段選數(shù)據(jù),經(jīng)74HC595轉(zhuǎn)為8位并行數(shù)據(jù)向數(shù)碼管提供段選信號(hào)。
P3.2
SCK
產(chǎn)生數(shù)據(jù)移位時(shí)鐘,上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位,Q0→Q1→Q2→Q3→...→Q7,下降沿移位寄存器數(shù)據(jù)不變。
P3.5
RCK
產(chǎn)生數(shù)據(jù)鎖存時(shí)鐘,上升沿時(shí)將8 位鎖存移位寄存器中的狀態(tài)值并行輸出,下降沿時(shí)存儲(chǔ)寄存器數(shù)據(jù)不變。
傳輸段碼時(shí),單片機(jī)的P3.4輸出8位串行段碼數(shù)據(jù),每傳輸一個(gè)數(shù)據(jù)位,P3.2產(chǎn)生一個(gè)上升沿時(shí)鐘將數(shù)據(jù)移位,8個(gè)上升沿移位時(shí)鐘后,8位段碼數(shù)據(jù)傳輸完成,之后,P3.5產(chǎn)生一個(gè)上升沿,段碼數(shù)據(jù)并行輸出,由此,完成數(shù)碼管的段選。
數(shù)碼管位選的實(shí)現(xiàn)數(shù)碼管顯示電路使用74HC138譯碼器產(chǎn)生位選信號(hào),同樣,為了節(jié)省GPIO,74HC138的使能控制端在硬件上均設(shè)置為恒有效(E1、E2連接GND,恒為低電平;E3連接VCC,恒為高電平)。因此,程序中操作數(shù)碼管時(shí)只需控制三個(gè)地址數(shù)據(jù)輸入端(A0、A1、A2)去選中8個(gè)數(shù)碼管中的待操作的數(shù)碼管即可。
三個(gè)地址數(shù)據(jù)輸入端(A0、A1、A2)是如何選中8個(gè)數(shù)碼管中的一個(gè)的,這就要看74HC138譯碼器的真值表了(74HC138譯碼器的真值表如下圖所示)。
H:高電平 L:低電平 X:任意電平
圖6:74HC138真值表
由74HC138譯碼器的真值表可以看出,當(dāng)74HC138使能后,A0、A1、A2的輸入電平?jīng)Q定了Y0~Y7的輸出(低電平有效),而且從Y0到Y(jié)7是和A2、A1、A0的值對(duì)應(yīng)的,因此,當(dāng)我們需要Y0~Y7中某個(gè)輸出端輸出低電平時(shí),輸入端A2、A1、A0輸入對(duì)應(yīng)的數(shù)值即可,如需要Y1輸出低電平,則A2、A1、A0輸入為001(16進(jìn)制:0x01)即可。電路中的8個(gè)數(shù)碼管是共陰極數(shù)碼管,8個(gè)數(shù)碼管的公共端依次連接到了Y7~Y0,由此,通過(guò)A0、A1、A2的“邏輯值”即可完成對(duì)待操作的數(shù)碼管的位選。
說(shuō)明:開(kāi)發(fā)板為了布線方便,8個(gè)數(shù)碼管中的第1位連接到Y(jié)7,第2位連接到Y(jié)6,以此類推,這一點(diǎn),在編程程序的時(shí)候需要注意一下。軟件設(shè)計(jì)數(shù)碼管動(dòng)態(tài)顯示程序結(jié)構(gòu)對(duì)于數(shù)碼管動(dòng)態(tài)顯示來(lái)說(shuō),主要考慮的有兩個(gè)方面:數(shù)碼管刷新和顯示數(shù)據(jù)更新。
數(shù)碼管刷新:因?yàn)槭莿?dòng)態(tài)顯示,所以要不斷刷新數(shù)碼管,利用人眼的視覺(jué)暫留效應(yīng)實(shí)現(xiàn)數(shù)碼管的顯示,并且刷新的速度不能過(guò)慢,否則,顯示會(huì)有閃爍。數(shù)碼管顯示內(nèi)容的更新:8位數(shù)碼管中每位數(shù)碼管都可以單獨(dú)更新數(shù)據(jù)。數(shù)碼管動(dòng)態(tài)顯示驅(qū)動(dòng)程序設(shè)計(jì)的方法很多,下面是一種基于定時(shí)器刷新的方法,供讀者借鑒。
數(shù)碼管驅(qū)動(dòng)程序原理如下圖所示,定義一個(gè)數(shù)組,該數(shù)組共有8個(gè)元素,分別用于保存8位數(shù)碼管的段碼,即數(shù)組中第1個(gè)元素用于保存8位數(shù)碼管中第1位數(shù)碼管的段碼,第2個(gè)元素用于保存第2位數(shù)碼管的段碼,以此類推。
使用一個(gè)定時(shí)器用于刷新數(shù)碼管顯示,在定時(shí)器中斷服務(wù)函數(shù)中從數(shù)組中取數(shù)碼管的段碼,完成對(duì)數(shù)碼管顯示的刷新。這樣,當(dāng)我們需要修改數(shù)碼管顯示內(nèi)容時(shí),只需要修改數(shù)組中的段碼即可。
圖7:數(shù)碼管軟件驅(qū)動(dòng)原理
定時(shí)器刷新數(shù)碼管顯示的流程圖如下,每次進(jìn)入定時(shí)器中斷服務(wù)函數(shù)后刷新8位數(shù)碼管中的一位。這里,定義一個(gè)變量“l(fā)edseg_nod”用于記錄數(shù)碼管的位,每次刷新后“l(fā)edseg_nod”加1,到達(dá)8時(shí),表示8位數(shù)碼管全部刷新,“l(fā)edseg_nod”的值設(shè)置為0,開(kāi)始新一輪刷新。
圖8:定時(shí)器刷新數(shù)碼管流程
數(shù)碼管顯示實(shí)驗(yàn)注:本節(jié)的實(shí)驗(yàn)是在“實(shí)驗(yàn)2-6-1:串口1數(shù)據(jù)收發(fā)實(shí)驗(yàn)”的基礎(chǔ)上修改,本節(jié)對(duì)應(yīng)的實(shí)驗(yàn)源碼是:“實(shí)驗(yàn)2-12-1:數(shù)碼管顯示實(shí)驗(yàn)”。實(shí)驗(yàn)內(nèi)容通過(guò)4個(gè)輕觸按鍵KEY1~KEY4控制數(shù)碼管顯示內(nèi)容,KEY1控制第1個(gè)和第2個(gè)數(shù)碼管,KEY2控制第3個(gè)和第4個(gè)數(shù)碼管,KEY3控制第5個(gè)和第6個(gè)數(shù)碼管,KEY4控制第7個(gè)和第8個(gè)數(shù)碼管。
程序復(fù)位運(yùn)行后,8個(gè)數(shù)碼管全部顯示數(shù)字0,每按動(dòng)一次按鍵,該按鍵控制的數(shù)碼管顯示內(nèi)容加1,加到F后再次按動(dòng)按鍵返回?cái)?shù)字0,如此反復(fù)。
代碼編寫(xiě)新建一個(gè)名稱為“l(fā)edseg.c”的文件及其頭文件“l(fā)edseg.h”并保存到工程的“Source”文件夾,并將“l(fā)edseg.c”加入到Keil工程中的“SOURCE”組。引用頭文件因?yàn)樵凇癿ain.c”文件中使用了“l(fā)edseg.c”文件中的函數(shù),所以需要引用下面的頭文件“l(fā)edseg.h”。
代碼清單:引用頭文件
//引用數(shù)碼管的頭文件 #include " ledseg.h" 定義段碼表和8個(gè)數(shù)碼管的段碼數(shù)組數(shù)碼管常用來(lái)顯示數(shù)字“0~9”和字符“A~F”,他們的段碼定義如下:
代碼清單:段碼表
//數(shù)碼管段碼 u8 SEG8_Code[] ={ 0xFC, // 0 0x60, // 1 0xDA, // 2 0xF2, // 3 0x66, // 4 0xB6, // 5 0xBE, // 6 0xE0, // 7 0xFE, // 8 0xF6, // 9 0xEE, // A 0x3E, // b 0x9C, // C 0x7A, // d 0x9E, // E 0x8E, // F };定義一個(gè)名稱為“SEG8_DispArray”的數(shù)組,用于存放8個(gè)數(shù)碼管顯示的段碼,初始化值均設(shè)置為數(shù)字“0”的段碼“0xFC”,數(shù)碼管刷新時(shí)從該數(shù)組讀取段碼,代碼清單如下。
代碼清單: 8位數(shù)碼管段碼存放數(shù)組
//存放8個(gè)數(shù)碼管顯示的段碼,初始值都為數(shù)字0的段碼。更新數(shù)碼管顯示內(nèi)容時(shí),只需更新該數(shù)組中的段碼即可 u8 SEG8_DispArray[8] ={0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC}; 數(shù)碼管初始化數(shù)碼管初始化主要包括引腳配置和數(shù)碼管初始顯示狀態(tài)的設(shè)置,代碼清單如下。這里要注意的是,如果需要改動(dòng)數(shù)碼管初始顯示內(nèi)容,修改數(shù)組SEG8_DispArray中的值即可,默認(rèn)值是顯示數(shù)字“0”。
代碼清單:數(shù)碼管初始化
/********************************************************************************** 功能描述:始化數(shù)碼管驅(qū)動(dòng)電路所用的GPIO 參 數(shù):無(wú) 返 回 值:無(wú) ***********************************************************************************/ void LEDseg_init(void) { P3M1 &= 0xCB; P3M0 |= 0x34; //設(shè)置P3.2,P3.4,P3.5為強(qiáng)推挽輸出 P4M1 &= 0xEE; P4M0 &= 0xEE; //設(shè)置P4.0,P4.4為準(zhǔn)雙向口 P5M1 &= 0xDF; P5M0 &= 0xDF; //設(shè)置P5.5為準(zhǔn)雙向口 SEG_A0=1; //74HC138第1引腳A0置高電平 SEG_A1=1; //74HC138第2引腳A1置高電平 SEG_A2=1; //74HC138第3引腳A2置高電平 SEG_LCLK=1; //74HC595第12引腳LCLK置高電平 SEG_SCK=0; //74HC595第11引腳SLK置低電平 SEG_DATA=0; //74HC595第14引腳DATA置低電平 } 發(fā)送段選和位選信號(hào)為了程序中操作方便,我們先用宏定義對(duì)8位數(shù)碼管中的各個(gè)位進(jìn)行編號(hào),讓數(shù)碼管和數(shù)組“SEG8_DispArray”關(guān)聯(lián)。這里要注意一下,開(kāi)發(fā)板為了布線方便,8位數(shù)碼管是反序連接到74HC138的輸出“Y0~Y7”的。
代碼清單:數(shù)碼管位定義
#define LEDSEG_1 7 #define LEDSEG_2 6 #define LEDSEG_3 5 #define LEDSEG_4 4 #define LEDSEG_5 3 #define LEDSEG_6 2 #define LEDSEG_7 1 #define LEDSEG_8 0程序中先發(fā)送段碼信號(hào),8位串行段碼經(jīng)過(guò)74HC595后并行輸出完成數(shù)碼管的段選,之后發(fā)送位選信號(hào),點(diǎn)亮數(shù)碼管,代碼清單如下。
代碼清單:發(fā)送段選和位選信號(hào)
/********************************************************************************** 功能描述:向指定的數(shù)碼管發(fā)送段選和位選信號(hào) 參 數(shù):nod[in]:數(shù)碼管,取值范圍:0~7 返 回 值:無(wú) ***********************************************************************************/ void LEDseg_write_data(u8 nod) { u8 dat,i; dat = SEG8_DispArray[nod]; //獲取段碼 for(i=0;i<8;i++) //循環(huán)發(fā)送8位段碼 { SEG_DATA=(dat>>i)&0x01; SEG_SCK=0; Delay10us(); SEG_SCK=1; } LEDseg_nodeSelect(nod); //發(fā)送數(shù)碼管位選信號(hào)}發(fā)送位選信號(hào)的函數(shù)代碼清單如下。
代碼清單:發(fā)送位選信號(hào)函數(shù)
/********************************************************************************** 功能描述:發(fā)送位選信號(hào),選擇指定的數(shù)碼管 參 數(shù):nod[in]:數(shù)碼管,取值范圍:0~7 返 回 值:無(wú) ***********************************************************************************/ void LEDseg_nodeSelect(u8 nod) { SEG_A0= nod&0x01; SEG_A1= (nod&0x02)>>1; SEG_A2= (nod&0x04)>>2; } 數(shù)碼管刷新本例中使用Timer2刷新數(shù)碼管,Timer2定時(shí)時(shí)間配置為2ms,每次中斷刷新一位數(shù)碼管。程序中使用變量“l(fā)edseg_nod”記錄數(shù)碼管的位,8位數(shù)碼管一輪刷新完成后,“l(fā)edseg_nod”復(fù)位(值設(shè)置為0),進(jìn)入新一輪的刷新,代碼清單如下。
代碼清單:定時(shí)器2中斷服務(wù)函數(shù)中刷新數(shù)碼管
/********************************************************************************** * 描 述 : 定時(shí)器2中斷服務(wù)函數(shù) * 入 參 : 無(wú) * 返回值 : 無(wú) **********************************************************************************/ void timer2_isr() interrupt 12 { LEDseg_write_data(ledseg_nod); //發(fā)送段碼 LEDseg_Refresh(); //發(fā)送 ledseg_nod++; if(ledseg_nod == 8)ledseg_nod = 0; //8位數(shù)碼管刷新完成,ledseg_nod復(fù)位 } 主函數(shù)主函數(shù)中完成相關(guān)的初始化之后,在主循環(huán)里面調(diào)用按鍵掃描函數(shù)buttons_scan()查詢是否有按鍵按下,如果有按鍵按下則更新數(shù)碼管顯示內(nèi)容,代碼清單如下。
代碼清單:主函數(shù)
/************************************************************************** 功能描述:主函數(shù) 入口參數(shù):無(wú) 返 回 值:int類型 **************************************************************************/ int main(void) { u8 temp; u8 disp_dat1 = 0,disp_dat2 = 0,disp_dat3 = 0,disp_dat4 = 0; //省略了初始化相關(guān)的代碼 while(1) { temp = buttons_scan(0); //獲取開(kāi)發(fā)板用戶按鍵檢測(cè)值,不支持連按 if(temp == BUTTON1_PRESSED) //按鍵KEY1按下 { led_toggle(LED_1); //用戶指示燈D1狀態(tài)翻轉(zhuǎn) disp_dat1++; if(disp_dat1 >0x0F)disp_dat1 = 0; LEDseg_DispUpdata(LEDSEG_1,disp_dat1,LEDSEG_DP_OFF);//更新第1個(gè)數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_2,disp_dat1,LEDSEG_DP_OFF);//更新第2個(gè)數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON2_PRESSED) //按鍵KEY2按下 { led_toggle(LED_2); //用戶指示燈D2狀態(tài)翻轉(zhuǎn) disp_dat2++; if(disp_dat2 >0x0F)disp_dat2 = 0; LEDseg_DispUpdata(LEDSEG_3,disp_dat2,LEDSEG_DP_ON);//更新第3個(gè)數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_4,disp_dat2,LEDSEG_DP_ON);//更新第4個(gè)數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON3_PRESSED) //按鍵KEY3按下 { led_toggle(LED_3); //用戶指示燈D3狀態(tài)翻轉(zhuǎn) disp_dat3++; if(disp_dat3 >0x0F)disp_dat3 = 0; LEDseg_DispUpdata(LEDSEG_5,disp_dat3,LEDSEG_DP_OFF);//更新第5個(gè)數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_6,disp_dat3,LEDSEG_DP_OFF);//更新第6個(gè)數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON4_PRESSED) //按鍵KEY4按下 { led_toggle(LED_4); //用戶指示燈D3狀態(tài)翻轉(zhuǎn) disp_dat4++; if(disp_dat4 >0x0F)disp_dat4 = 0; LEDseg_DispUpdata(LEDSEG_7,disp_dat4,LEDSEG_DP_OFF);//更新第7個(gè)數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_8,disp_dat4,LEDSEG_DP_OFF);//更新第8個(gè)數(shù)碼管顯示內(nèi)容 } } } 硬件連接按照下圖所示短接跳線帽,因?yàn)閿?shù)碼管和顯示屏復(fù)用了GPIO,因此,使用數(shù)碼管時(shí)不能安裝顯示屏。
圖9:跳線帽短接
實(shí)驗(yàn)步驟解壓“…\\第3部分:配套例程源碼”目錄下的壓縮文件“實(shí)驗(yàn)2-12-1:數(shù)碼管顯示實(shí)驗(yàn)”,將解壓后得到的文件夾拷貝到合適的目錄,如“D\\STC8”(這樣做的目的是為了防止中文路徑或者工程存放的路徑過(guò)深導(dǎo)致打開(kāi)工程出現(xiàn)問(wèn)題)。雙擊“…\\ledseg_disp\\Project”目錄下的工程文件“l(fā)edseg_disp.uvproj”。點(diǎn)擊編譯按鈕編譯工程,編譯成功后生成的HEX文件“l(fā)edseg_disp.hex”位于工程的“…\\ledseg_disp\\project\\Objects”目錄下。打開(kāi)STC-ISP軟件下載程序,下載使用內(nèi)部IRC時(shí)鐘,IRC頻率選擇:24MHz。程序運(yùn)行后,依次按下用戶按鍵KEY1、KEY2、KEY3和KEY4,可以觀察到每按一次按鍵,對(duì)應(yīng)的數(shù)碼管顯示內(nèi)容從“0~F”依次遞增。按下KEY1按鍵:第1、2位數(shù)碼管顯示內(nèi)容遞增。按下KEY2按鍵:第3、4位數(shù)碼管顯示內(nèi)容遞增。按下KEY3按鍵:第5、6位數(shù)碼管顯示內(nèi)容遞增。按下KEY4按鍵:第7、8位數(shù)碼管顯示內(nèi)容遞增。以上就是關(guān)于刷卡機(jī)顯示應(yīng)答碼lk的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于刷卡機(jī)顯示應(yīng)答碼lk的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)載請(qǐng)帶上網(wǎng)址:http://www.cnksdq.com.cn/shuaka/146864.html