|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机按键控制单个数码管显示变化数字源程序
, x+ U+ q+ |. \0 w# ^ U8 o; i
6 S8 W" H6 C, A% A' O3 P
; q% y% |9 J! |+ H2 M# R这是我单片机课程中按键控制单个数码管显示的程序
6 I4 Q2 ^. ~5 j) y2 Z C $ e$ q4 Y/ f8 e: Z! @" v
单片机源程序如下:( w' c9 g' O; v+ [
/*-----------------------------------------------
3 B+ D x" e6 B- u 名称:单个共阳数码管动态显示变化数字
0 E) t/ w- I* [# v' k! e2 a 修改:无# E* I9 f4 x/ G, P8 |# m+ f
内容:通过循环检测P1口按键输入值,然后用数码管输出,
( B2 H+ `' }/ Q* U 没有按键按下时原值不变
4 @( n8 Z8 S4 R5 ? S+ o------------------------------------------------*/
% {& i, b8 w! A5 M2 `#include<reg52.h> //包含头文件,一般情况不需要改动,
0 z/ J2 v5 ]# t" e$ f//头文件包含特殊功能寄存器的定义
5 Y/ J7 p0 ?* u6 x g/ S5 E+ U) N g w: u, {
. H6 n; }* c# ?# U1 k lunsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,* m6 U2 R8 \/ k9 a
0x92,0x82,0xf8,0x80,0x90,}; 7 E$ J+ M" J! w6 P- o; o
// 显示数值表0-9% u& Y6 p$ g: R
! n0 j$ W1 @ N( K; n% z6 g& C1 F1 {- s# i5 q
/*------------------------------------------------
9 l1 `7 V9 `+ [0 }: | 主函数
- |6 I/ R' X6 V% C3 m------------------------------------------------*/
7 a6 n9 \+ i$ X) {! ovoid main (void)" ]/ E, g/ P8 H& P
{
1 n( g& {; _4 R# T 3 `7 N# H4 b' m- J, H9 J
5 u6 k0 F) i: d$ {' Y1 l( }9 U. u7 q, G1 B
while (1) //主循环6 u* X4 M' @' A$ w2 M
{( @' Q1 D, z0 {& I; O! X
' V, F- y: ~9 T2 e, Q& s" w! q% E2 z5 ^- {% \: p+ n4 p9 U
switch(P3) //P3口作为独立按键输入端,检测端口电平并做如下判断 ( h! X/ P i, |2 m1 d$ h" N4 M
{
) V* s, E2 U# e/ Q case 0xfe 1=dofly_table[1];break;//0xfe = 1111 1110,2 H/ T+ f& e/ F# r* h0 j: b: E
//说明连接在P3.0端口的按键被按下,显示对应的数字然后跳出循环; m2 [3 `" H7 ?. D- x1 u% M! l
case 0xfd 1=dofly_table[2];break;//调用表中的第三个
% D- P8 X+ E4 Q: g, p. o6 `//元素 0xa4 下标 0 才表示数组中的第一个元素
3 ?% l3 B7 B( u$ @/ q2 ] case 0xfb 1=dofly_table[3];break;- n' h0 C" A* z) A) y3 o
case 0xf7:P1=dofly_table[4];break;
! h% a" D. a4 v s case 0xef:P1=dofly_table[5];break;
- y& c. H. G7 K: x& \. Y. Q! t' C case 0xdf:P1=dofly_table[6];break;
& |& [( z% F- W& h0 ^ case 0xbf:P1=dofly_table[7];break;! t3 _3 {/ @. `: D; b& o. k
case 0x7f:P1=dofly_table[8];break;& O1 o# E k) }, b; O
default:break; //如果都没按下,直接跳出
5 p; C2 m, G8 y6 U. F2 p8 X' ` }
) G m, S5 k% j" r1 U, c //主循环中添加其他需要一直工作的程序
% x6 b! `' l' P/ b+ j" K9 q
# H/ ?. Z! _4 g/ q \( Z7 E
) [" u( Z- s7 C, J4 H4 v% e5 _/ ~
9 ?/ f+ A9 P+ q6 B5 Y/ {) k
, m) q$ ?: o- c% |) j
; Z, b1 s$ F# h, n5 n4 U) i0 a |/ r…………限于本文篇幅 余下代码请从论坛下载附件…………( X' W. J: ^- Q: b
完整代码下载:
; j; X$ C: N9 `" K/ Z+ K
+ v. `9 t. A+ K. H0 J( ~3 E3 O# ?0 T
0 f5 j5 M8 d9 a- r |
|