|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机按键控制单个数码管显示变化数字源程序" r6 n+ g6 f n4 Y
! @' L8 M' d( y1 J$ c% j4 T7 ~: [, H4 Y2 K# Y1 n! s
这是我单片机课程中按键控制单个数码管显示的程序8 S1 ?0 s/ E/ W6 U2 q2 h" q
: R0 }& ~! ^/ v6 q, V% a q4 M
单片机源程序如下:1 X" B8 I, Q/ B- y
/*----------------------------------------------- n6 d4 P5 P, g- H1 ~6 J$ P" X
名称:单个共阳数码管动态显示变化数字
% F* X/ B! Q4 K 修改:无
0 W9 y6 U) Q" D$ t( l3 F: n 内容:通过循环检测P1口按键输入值,然后用数码管输出,
5 {$ D8 d+ D6 q, Q! w' C" u. r0 s5 d 没有按键按下时原值不变 & F9 V0 N, N" u4 u |& L ^1 X- i
------------------------------------------------*/
. j W) }% g1 C; M! W( U% G#include<reg52.h> //包含头文件,一般情况不需要改动,
4 y7 x9 l$ r2 b7 ?% B/ C: A//头文件包含特殊功能寄存器的定义
. ~ B; H' L* h+ N u
7 }' a: n* L1 T& n: d9 _7 t; C y) x$ f
unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,
J# q" J4 p7 }, ~7 O 0x92,0x82,0xf8,0x80,0x90,}; & L Z" t3 }5 a6 w' r
// 显示数值表0-9: E2 o3 C c, F" \+ S, g- ]
3 o& F* _& y" Y* t" r
8 `1 E* v4 s! m. [' e& U/*------------------------------------------------7 l" x! U% T r8 Z
主函数' w; f: K6 C0 h; b' X$ @- J! `
------------------------------------------------*/
4 A% m9 f" I4 R4 a, Tvoid main (void)
! W; c0 B, C" b) F! W{
0 C e5 L# D/ n! T3 {3 P
, w' j; D0 T5 F3 o7 ?9 V$ P @7 b
+ k! U' |! }5 `, e% q( awhile (1) //主循环: `+ a. c9 u2 @9 E6 U
{5 }- V& u) J4 @2 Z6 |+ [
5 u f P4 r% z# o6 Q' s C" q b. i) u) V
switch(P3) //P3口作为独立按键输入端,检测端口电平并做如下判断
- o5 R8 l+ @4 {9 T( { {1 t1 C* @: f& l. ?
case 0xfe 1=dofly_table[1];break;//0xfe = 1111 1110,0 \9 X9 d, S. A$ u3 c
//说明连接在P3.0端口的按键被按下,显示对应的数字然后跳出循环
1 v" h: z! n- q/ @ case 0xfd 1=dofly_table[2];break;//调用表中的第三个
; Z3 n8 f/ k1 Q* l" b8 i/ Y//元素 0xa4 下标 0 才表示数组中的第一个元素' ? Z/ s l$ L+ @
case 0xfb 1=dofly_table[3];break;
. X* h- y) s* r7 N* s2 Q case 0xf7:P1=dofly_table[4];break;2 ~6 x# f' Y3 N9 G% r
case 0xef:P1=dofly_table[5];break;
w9 k/ n) \5 D0 L case 0xdf:P1=dofly_table[6];break;
" F4 @6 n7 m+ M' x6 w0 f7 L9 l case 0xbf:P1=dofly_table[7];break;6 e& p3 B7 @ l) m+ K* `4 J3 ~
case 0x7f:P1=dofly_table[8];break;
s7 y8 v7 ^# m7 j' M default:break; //如果都没按下,直接跳出4 N) j5 g+ n! _5 t# ]: Q: E
}
6 u1 q s0 X# u/ G //主循环中添加其他需要一直工作的程序 r; N8 r- z5 `6 F* v4 F
3 Y9 U# ~4 z( \; }/ v* P# z; g, M6 ?
# F' d0 u! ^$ f/ P' H6 ]7 N5 M3 Z' A9 J7 e& H4 F2 L
; Z6 r! N) A0 h' c7 s3 {
1 [" \1 @7 Z! a- G
…………限于本文篇幅 余下代码请从论坛下载附件…………# t' }3 P# O8 z
完整代码下载:3 ^" u8 G6 R- i0 ^
7 R# H7 u, R9 W+ J
, n+ V- |% j) V6 u) D6 c) o: ^ |
|