1
㈠ L E D 程 序
L E D 流 水 灯 实 验
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
u c h a r L e d D a t a = 0 x 8 0 ;
/ / 延 时 子 程 序
v o i d D e l a y M s ( u i n t m s ) {
w h i l e ( m s - - ) {
f o r ( u i n t i = 0 ; i < 8 0 0 ; i + + ) ;
}
}
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
_ D I N T ( ) ; / / 关 闭 中 断
P 2 S E L = 0 x 0 0 ; / / P 2 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 2 D I R = 0 x F F ; / / P 2 口 所 有 引 脚 设 置 为 输 出 方 向
w h i l e ( 1 ) {
L e d D a t a > > = 1 ; / / 右 移 一 位
i f ( L e d D a t a = = 0 ) L e d D a t a = 0 x 8 0 ;
P 2 O U T = L e d D a t a ; / / P 2 口 输 出 数 据
D e l a y M s ( 4 0 0 ) ;
}
}
㈡ D S Y 数 码 管 显 示 实 验
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u c h a r u n s i g n e d c h a r
# d e f i n e u i n t u n s i g n e d i n t
/ / 共 阳 数 码 管 编 码 表
u c h a r C o d e [ 1 8 ] = { 0 x C 0 , 0 x F 9 , 0 x A 4 , 0 x B 0 , / / 0 , 1 , 2 , 3
0 x 9 9 , 0 x 9 2 , 0 x 8 2 , 0 x F 8 , / / 4 , 5 , 6 , 7
0 x 8 0 , 0 x 9 0 , 0 x 8 8 , 0 x 8 3 , / / 8 , 9 , A , b
0 x C 6 , 0 x A 1 , 0 x 8 6 , 0 x 8 E , / / C , d , E , F
0 x B F , 0 x F F } ; / / - , 全 灭
u c h a r B i t [ 8 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ; / / 数 码 管 各 位 显 示 的 数 字
u c h a r B i t C o d e = 0 x 8 0 ; / / 数 码 管 位 码 初 值
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
/ / 端 口 初 始 化 函 数
v o i d I n i t P o r t ( v o i d ) {
P 2 S E L = 0 x 0 0 ; / / P 2 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 4 S E L = 0 x 0 0 ; / / P 4 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 2 D I R = 0 x F F ; / / P 2 口 所 有 引 脚 设 置 为 输 出 方 向
P 4 D I R = 0 x F F ; / / P 4 口 所 有 引 脚 设 置 为 输 出 方 向
P 2 O U T = 0 x 0 0 ; / / P 2 口 先 输 出 低 电 平
P 4 O U T = 0 x F F ; / / P 4 口 先 输 出 低 电 平
P 5 S E L & = ~ B I T 7 ; / / P 5 . 7 设 置 为 一 般 的 I O 口
P 5 D I R | = B I T 7 ; / / P 5 . 7 设 置 为 输 出 方 向
P 5 O U T & = ~ B I T 7 ; / / P 5 . 7 输 出 低 电 平 来 使 能 7 4 H C 5 7 3 来 驱 动 数 码 管
}
/ / 延 时 子 程 序
v o i d D e l a y M s ( u i n t m s ) {
w h i l e ( m s - - ) {
f o r ( u i n t i = 0 ; i < 8 0 0 ; i + + ) ;
}
}
/ / 数 码 管 扫 描 显 示 程 序
v o i d D i s p l a y ( v o i d ) {
f o r ( u c h a r i = 0 ; i < 8 ; i + + ) {
P 4 O U T = B i t C o d e ; / / 输 出 位 码
P 2 O U T = C o d e [ B i t [ i ] ] ; / / 输 出 段 码
B i t C o d e > > = 1 ; / / 位 码 右 移 一 位
i f ( B i t C o d e = = 0 ) B i t C o d e = 0 x 8 0 ;
D e l a y M s ( 1 ) ; / / 延 时 1 m s
P 2 O U T = 0 x F F ;
}
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
I n i t P o r t ( ) ;
_ D I N T ( ) ; / / 关 闭 中 断
w h i l e ( 1 ) {
D i s p l a y ( ) ;
}
}
㈢ 4 * 4 矩 阵 键 盘 扫 描 实 验
功 能 : 在 数 码 管 上 显 示 输 入 的 值
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
u c h a r K e y V a l u e = 0 x F F ;
/ / 共 阳 数 码 管 编 码 表
u c h a r C o d e [ 1 8 ] = { 0 x C 0 , 0 x F 9 , 0 x A 4 , 0 x B 0 , / / 0 , 1 , 2 , 3
0 x 9 9 , 0 x 9 2 , 0 x 8 2 , 0 x F 8 , / / 4 , 5 , 6 , 7
0 x 8 0 , 0 x 9 0 , 0 x 8 8 , 0 x 8 3 , / / 8 , 9 , A , b
0 x C 6 , 0 x A 1 , 0 x 8 6 , 0 x 8 E , / / C , d , E , F
0 x B F , 0 x F F } ; / / - , 全 灭
u c h a r B i t [ 8 ] = { 1 6 , 1 6 , 1 6 , 1 6 , 1 6 , 1 6 , 1 6 , 1 6 } ; / / 数 码 管 各 位 要 显 示 的 数 字
/ / 键 值 编 码 表
u c h a r K e y C o d e [ 1 6 ] = { 0 x 7 7 , 0 x 7 B , 0 x 7 D , 0 x 7 E , / / 0 , 1 , 2 , 3
0 x B 7 , 0 x B B , 0 x B D , 0 x B E , / / 4 , 5 , 6 , 7
0 x D 7 , 0 x D B , 0 x D D , 0 x D E , / / 8 , 9 , A , b
0 x E 7 , 0 x E B , 0 x E D , 0 x E E } ; / / C , d , E , F
u c h a r B i t C o d e = 0 x 8 0 ; / / 数 码 管 位 码 初 值
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
/ / 端 口 初 始 化 函 数
v o i d I n i t P o r t ( v o i d ) {
P 1 S E L = 0 x 0 0 ; / / P 1 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 1 D I R = 0 x 0 F ; / / P 1 . 0 P 1 . 1 P 1 . 2 P 1 . 3 设 置 为 输 出 方 向
P 1 O U T = 0 x 0 0 ; / / P 1 口 先 输 出 低 电 平
P 1 I E = 0 x F 0 ; / / P 1 . 4 P 1 . 5 P 1 . 6 P 1 . 7 中 断 允 许
P 1 I E S = 0 x F 0 ; / / P 1 . 4 P 1 . 5 P 1 . 6 P 1 . 7 下 降 沿 触 发 中 断
P 2 S E L = 0 x 0 0 ; / / P 2 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 4 S E L = 0 x 0 0 ; / / P 4 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 2 D I R = 0 x F F ; / / P 2 口 所 有 引 脚 设 置 为 输 出 方 向
P 4 D I R = 0 x F F ; / / P 4 口 所 有 引 脚 设 置 为 输 出 方 向
P 2 O U T = 0 x 0 0 ; / / P 2 口 先 输 出 低 电 平
P 4 O U T = 0 x F F ; / / P 4 口 先 输 出 低 电 平
P 5 S E L & = ~ B I T 7 ; / / P 5 . 7 设 置 为 一 般 的 I O 口
P 5 D I R | = B I T 7 ; / / P 5 . 7 设 置 为 输 出 方 向
P 5 O U T & = ~ B I T 7 ; / / P 5 . 7 输 出 低 电 平 来 使 能 7 4 H C 5 7 3 来 驱 动 数 码 管
}
/ / 延 时 子 函 数
v o i d D e l a y ( v o i d ) {
f o r ( u c h a r i = 2 5 5 ; i > 0 ; i - - ) ;
}
/ / 按 键 分 析 程 序
v o i d K e y P r o c e s s ( v o i d ) {
u c h a r O u t D a t a = 0 x 0 7 ;
f o r ( u c h a r i = 0 ; i < 4 ; i + + ) { / / 扫 描 4 列
O u t D a t a | = 0 x F 0 ;
P 1 O U T = O u t D a t a ;
i f ( P 1 I N ! = O u t D a t a ) K e y V a l u e = P 1 I N ;
O u t D a t a > > = 1 ;
}
P 1 O U T = 0 x 0 0 ; / / 恢 复 原 来 的 值
}
/ / 端 口 1 中 断 处 理 程 序
# p r a g m a v e c t o r = P O R T 1 _ V E C T O R
_ _ i n t e r r u p t v o i d P o r t 1 I N T ( v o i d ) { 2
D e l a y ( ) ;
K e y P r o c e s s ( ) ;
P 1 I F G = 0 x 0 0 ; / / 清 除 中 断 标 志 位
}
/ / 延 时 子 程 序
v o i d D e l a y M s ( u i n t m s ) {
w h i l e ( m s - - ) {
f o r ( u i n t i = 0 ; i < 8 0 0 ; i + + ) ;
}
}
/ / 数 码 管 扫 描 显 示 程 序
v o i d D i s p l a y ( v o i d ) {
f o r ( u c h a r i = 0 ; i < 1 6 ; i + + ) { / / 查 找 键 值 对 应 的 数 字
i f ( K e y V a l u e = = K e y C o d e [ i ] ) {
B i t [ 0 ] = B i t [ 1 ] = B i t [ 2 ] = B i t [ 3 ] = B i t [ 4 ] = B i t [ 5 ] = B i t [ 6 ] = B i t [ 7 ] = i ; / / 显 示 键 值 对 应 的
数 字
b r e a k ;
}
}
f o r ( u c h a r i = 0 ; i < 8 ; i + + ) {
P 4 O U T = B i t C o d e ; / / 输 出 位 码
P 2 O U T = C o d e [ B i t [ i ] ] ; / / 输 出 段 码
B i t C o d e > > = 1 ; / / 位 码 右 移 一 位
i f ( B i t C o d e = = 0 ) B i t C o d e = 0 x 8 0 ;
D e l a y M s ( 1 ) ; / / 延 时 1 m s
P 2 O U T = 0 x F F ;
}
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
I n i t P o r t ( ) ;
_ E I N T ( ) ; / / 打 开 中 断
w h i l e ( 1 ) {
D i s p l a y ( ) ;
}
}
㈣ 定 时 器 A 中 断 实 验
功 能 : 定 时 器 A 中 断 , L E D 右 移 1 位
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
u c h a r L e d D a t a = 0 x 8 0 ;
u c h a r n u m = 1 0 ;
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
/ / 定 时 器 A 初 始 化
v o i d I n i t T i m e r A ( v o i d ) {
T A C T L = T A S S E L 1 + I D 1 + I D 0 + M C 0 + T A C L R ; / / 选 择 1 / 8 S M C L K 增 计 数 清 除
T A R
C C T L 0 = C C I E ; / / C C R 0 中 断 允 许 比 较 模 式
C C R 0 = 1 0 0 0 0 ; / / 时 间 间 隔 1 0 m s
}
/ / 定 时 器 A 中 断
# p r a g m a v e c t o r = T I M E R A 0 _ V E C T O R
_ _ i n t e r r u p t v o i d T i m e r A I N T ( v o i d ) {
n u m - - ;
i f ( n u m = = 0 ) {
L e d D a t a > > = 1 ; / / 右 移 一 位
i f ( L e d D a t a = = 0 ) L e d D a t a = 0 x 8 0 ;
P 2 O U T = L e d D a t a ; / / P 2 口 输 出 数 据
n u m = 1 0 ;
}
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
I n i t T i m e r A ( ) ;
_ E I N T ( ) ; / / 关 闭 中 断
P 2 S E L = 0 x 0 0 ; / / P 2 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 2 D I R = 0 x F F ; / / P 2 口 所 有 引 脚 设 置 为 输 出 方 向
w h i l e ( 1 ) ;
}
㈤ 蜂 鸣 器 报 警 实 验
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
# d e f i n e S P K _ H I G H P 5 O U T | = B I T 6
# d e f i n e S P K _ L O W P 5 O U T & = ~ B I T 6
u c h a r F l a g = 0 ;
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
/ / m s 级 延 时 子 程 序
v o i d D e l a y M s ( u i n t m s ) {
w h i l e ( m s - - ) {
f o r ( u i n t i = 0 ; i < 8 0 0 ; i + + ) ;
}
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
_ E I N T ( ) ; / / 关 闭 中 断
P 5 D I R | = B I T 6 ; / / P 5 . 6 引 脚 设 置 为 输 出 方 向
w h i l e ( 1 ) {
S P K _ H I G H ;
D e l a y M s ( 1 5 0 ) ;
S P K _ L O W ;
D e l a y M s ( 1 5 0 ) ;
} ;
}
㈥ D S 1 8 B 2 0 温 度 测 量 实 验
功 能 : 在 数 码 管 上 显 示 当 前 D S 1 8 B 2 0 测 到 的 温 度
小 数 部 分 为 4 位 , 温 度 为 负 时 , 最 高 位 显 示 " - "
测 量 范 围 : - 5 5 ℃ ~ + 1 2 5 ℃
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
# d e f i n e D Q _ O U T P 3 D I R | = B I T 0
# d e f i n e D Q _ I N P 3 D I R & = ~ B I T 0
# d e f i n e D Q _ L O W P 3 O U T & = ~ B I T 0
# d e f i n e D Q _ H I G H P 3 O U T | = B I T 0
# d e f i n e D Q _ D A T A P 3 I N & B I T 0
/ / 共 阳 数 码 管 编 码 表
u c h a r C o d e [ 1 8 ] = { 0 x C 0 , 0 x F 9 , 0 x A 4 , 0 x B 0 , / / 0 , 1 , 2 , 3
0 x 9 9 , 0 x 9 2 , 0 x 8 2 , 0 x F 8 , / / 4 , 5 , 6 , 7
0 x 8 0 , 0 x 9 0 , 0 x 8 8 , 0 x 8 3 , / / 8 , 9 , A , b
0 x C 6 , 0 x A 1 , 0 x 8 6 , 0 x 8 E , / / C , d , E , F
0 x B F , 0 x F F } ; / / - , 全 灭
u c h a r B i t [ 8 ] = { 1 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ; / / 数 码 管 各 位 显 示 的 数 字
u c h a r B i t C o d e = 0 x 8 0 ; / / 数 码 管 位 码 初 值
u c h a r M S B ; / / 温 度 高 字 节
u c h a r L S B ; / / 温 度 低 字 节
i n t t 1 = 0 ; / / 温 度 整 数 部 分 数 值
u i n t t 2 = 0 ; / / 温 度 小 数 部 分 数 值
u c h a r f l a g ; / / 负 温 度 标 志
/ / 时 钟 初 始 化 函 数
v o i d I n i t C l o c k ( v o i d ) {
B C S C T L 1 = R S E L 2 + R S E L 1 + R S E L 0 ; / / X T 2 开 启 L F X T 1 工 作 在 低 频 模 式 A C L K
不 分 频 最 高 的 标 称 频 率
D C O C T L = D C O 2 + D C O 1 + D C O 0 ; / / D C O 为 最 高 频 率
d o {
I F G 1 & = ~ O F I F G ; / / 清 除 振 荡 器 失 效 标 志
f o r ( u i n t i = 2 5 5 ; i > 0 ; i - - ) ;
} w h i l e ( I F G 1 & O F I F G ) ; / / 判 断 X T 2 是 否 起 振
B C S C T L 2 = S E L M 1 + S E L S ; / / M C L K S M C L K 时 钟 源 为 T X 2 C L K 不 分 频
}
/ / 端 口 初 始 化 函 数
v o i d I n i t P o r t ( v o i d ) {
P 2 S E L = 0 x 0 0 ; / / P 2 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 4 S E L = 0 x 0 0 ; / / P 4 口 所 有 引 脚 设 置 为 一 般 的 I O 口
P 2 D I R = 0 x F F ; / / P 2 口 所 有 引 脚 设 置 为 输 出 方 向
P 4 D I R = 0 x F F ; / / P 4 口 所 有 引 脚 设 置 为 输 出 方 向 3
P 2 O U T = 0 x 0 0 ; / / P 2 口 先 输 出 低 电 平
P 4 O U T = 0 x F F ; / / P 4 口 先 输 出 低 电 平
P 5 S E L & = ~ B I T 7 ; / / P 5 . 7 设 置 为 一 般 的 I O 口
P 5 D I R | = B I T 7 ; / / P 5 . 7 设 置 为 输 出 方 向
P 5 O U T & = ~ B I T 7 ; / / P 5 . 7 输 出 低 电 平 来 使 能 7 4 H C 5 7 3 来 驱 动 数 码 管
}
/ / m s 级 延 时 子 程 序
v o i d D e l a y M s ( u i n t m s ) {
w h i l e ( m s - - ) {
f o r ( u i n t i = 0 ; i < 8 0 0 ; i + + ) ;
}
}
/ / 数 码 管 扫 描 显 示 程 序
v o i d D i s p l a y ( v o i d ) {
f o r ( u c h a r i = 0 ; i < 8 ; i + + ) {
P 4 O U T = B i t C o d e ; / / 输 出 位 码
i f ( i = = 3 ) { / / 输 出 段 码 , 如 果 第 三 位 显 示 小 数 点
P 2 O U T = C o d e [ B i t [ i ] ] & 0 x 7 F ;
} e l s e {
P 2 O U T = C o d e [ B i t [ i ] ] ;
}
B i t C o d e > > = 1 ; / / 位 码 右 移 一 位
i f ( B i t C o d e = = 0 ) B i t C o d e = 0 x 8 0 ;
D e l a y M s ( 1 ) ; / / 延 时 1 m s
P 2 O U T = 0 x F F ;
}
}
/ / 1 0 u s 级 延 时 子 程 序
v o i d D e l a y u s ( u i n t u s ) {
w h i l e ( u s - - ) {
f o r ( u i n t i = 0 ; i < 8 ; i + + ) ;
}
}
/ / 初 始 化 D S 1 8 B 2 0
v o i d D S 1 8 B 2 0 I n i t ( v o i d ) {
D Q _ O U T ; / / 设 置 为 输 出 方 向
D Q _ L O W ; / / 拉 低 总 线
D e l a y u s ( 5 0 ) ;
D Q _ H I G H ; / / 释 放 总 线
D e l a y u s ( 6 ) ;
D Q _ I N ; / / 设 置 为 输 入 方 向
w h i l e ( D Q _ D A T A ) ; / / 等 待 应 答 信 号
w h i l e ( ~ D Q _ D A T A ) ; / / 等 待 释 放 总 线
}
/ / 读 一 个 字 节
u c h a r R e a d B y t e ( v o i d ) {
u c h a r i ;
u c h a r R e a d D a t a = 0 ;
f o r ( i = 0 ; i < 8 ; i + + ) {
D Q _ O U T ;
D Q _ L O W ;
R e a d D a t a > > = 1 ;
D Q _ H I G H ;
D e l a y u s ( 1 ) ;
D Q _ I N ;
i f ( D Q _ D A T A ) R e a d D a t a | = 0 x 8 0 ;
D e l a y u s ( 6 ) ;
}
r e t u r n R e a d D a t a ;
}
/ / 写 一 个 字 节
W r i t e B y t e ( u c h a r W r i t e D a t a ) {
u c h a r i ;
u c h a r t m p D a t a ;
f o r ( i = 0 ; i < 8 ; i + + ) {
t m p D a t a = W r i t e D a t a & 0 x 0 1 ;
W r i t e D a t a > > = 1 ;
D Q _ O U T ;
D Q _ L O W ;
i f ( t m p D a t a ) {
D Q _ H I G H ;
} e l s e {
D Q _ L O W ;
}
D e l a y u s ( 5 ) ;
D Q _ H I G H ;
}
}
/ / 温 度 计 算 程 序
v o i d G e t T ( ) {
i f ( ( M S B & 0 x F 0 ) > 0 ) { / / 判 断 是 否 为 负 温 度
f l a g = 1 ;
} e l s e {
f l a g = 0 ;
}
i f ( f l a g ) { / / 如 果 为 负 温 度 取 反 加 1
M S B = ~ M S B ;
L S B = ~ L S B + 1 ;
}
t 1 = M S B < < 4 ; / / 得 到 温 度 整 数 部 分
t 1 | = ( L S B > > 4 ) ;
t 2 = ( L S B & 0 x 0 F ) * 0 . 0 6 2 5 * 1 0 0 0 0 ; / / 得 到 温 度 小 数 部 分 并 扩 大 1 0 0 0 0 倍
/ / 计 算 各 位 数 码 管 要 显 示 的 数 值
i f ( f l a g ) {
B i t [ 1 ] = 1 6 ; / / 如 果 为 负 温 度 则 显 示 " - "
} e l s e {
B i t [ 1 ] = t 1 / 1 0 0 ;
}
B i t [ 2 ] = t 1 % 1 0 0 / 1 0 ;
B i t [ 3 ] = t 1 % 1 0 ;
B i t [ 4 ] = t 2 / 1 0 0 0 ;
B i t [ 5 ] = t 2 % 1 0 0 0 / 1 0 0 ;
B i t [ 6 ] = t 2 % 1 0 0 / 1 0 ;
B i t [ 7 ] = t 2 % 1 0 ;
}
v o i d m a i n ( ) {
W D T C T L = W D T P W + W D T H O L D ; / / 关 闭 看 门 狗
I n i t C l o c k ( ) ;
I n i t P o r t ( ) ;
_ D I N T ( ) ; / / 关 闭 中 断
w h i l e ( 1 ) {
D S 1 8 B 2 0 I n i t ( ) ;
W r i t e B y t e ( 0 x C C ) ; / / 跳 过 R O M 配 置
W r i t e B y t e ( 0 x 4 4 ) ; / / 启 动 温 度 转 换
D S 1 8 B 2 0 I n i t ( ) ;
W r i t e B y t e ( 0 x C C ) ;
W r i t e B y t e ( 0 x B E ) ; / / 读 温 度 寄 存 器
L S B = R e a d B y t e ( ) ; / / 读 温 度 数 据 低 字 节
M S B = R e a d B y t e ( ) ; / / 读 温 度 数 据 高 字 节
G e t T ( ) ; / / 计 算 温 度
D i s p l a y ( ) ;
}
}
㈦ D S 1 3 0 2 实 时 时 钟 实 验
功 能 : 在 数 码 管 上 显 示 从 D S 1 3 0 2 读 取 的 时 间 日 期 星 期 数 据
时 间 格 式 : 时 - 分 - 秒
日 期 格 式 : 年 月 日 - 星 期
C 键 : 选 择 显 示 时 间 还 是 日 期
D 键 : 循 环 选 择 所 要 编 辑 的 位
E 键 : 编 辑 的 位 的 数 值 加 1
F 键 : 编 辑 的 位 的 数 值 减 1
# i n c l u d e " m s p 4 3 0 x 1 4 x . h "
# d e f i n e u i n t u n s i g n e d i n t
# d e f i n e u c h a r u n s i g n e d c h a r
# d e f i n e S C L K _ H I G H P 3 O U T | = B I T 3
# d e f i n e S C L K _ L O W P 3 O U T & = ~ B I T 3
# d e f i n e R S T _ H I G H P 3 O U T | = B I T 1
# d e f i n e R S T _ L O W P 3 O U T & = ~
本文档为【msp430基础程序集合】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。